double arrow

Цикл WHILE … WEND

Циклы

В языке BASIC предусмотрено два основных способа организации циклов:

§ повторение блока команд заданное количество (число) раз (цикл со счетчиком);

§ циклическое повторение блока команд, пока выполняется (или не выполняется) некоторое условие.

Цикл со счетчиком (FOR…NEXT)

Этот оператор используется, когда некоторый блок команд необходимо выполнить заданное число раз.

Формат

FORсчетчик=E1TOE2[STEPE3]

Блок команд

NEXTсчетчик

счетчик (параметр)- числовая переменная;

E1 - начальное значение счетчика;

E2 - конечное значение счетчика;

E3 - шаг изменения счетчика. По умолчанию этот шаг равен 1;

Блок команд - набор операторов, предназначенных для повторения.

Выполнение. Если E3 >0, то цикл продолжается все время, пока счетчик < или = E2. Если E3 <0, то цикл продолжается все время, пока счетчик > или = E2.

Примеры

1) FOR I=1 TO 5

PRINT I;

NEXT I

Результат: 1 2 3 4 5

Тело цикла будет выполняться 5 раз. Шаг изменения счетчика по умолчанию равен 1.

2) FOR I=1 TO 5 STEP 2

PRINT I;

NEXT I

Результат: 1 3 5

3) Обратный цикл

FOR I=5 TO 1 STEP -1

PRINT I;

NEXT I

Результат: 5 4 3 2 1

4) FOR I=5 TO 1

PRINT I;

NEXT I

Проверка выхода из цикла производится в начале цикла, поэтому цикл не выполнится ни разу.

Ограничения при использовании оператора цикла FOR … NEXT:

1. Не изменяйте значение параметра цикла внутри цикла

FOR I=1 TO 5

I=I+1 ' НЕЛЬЗЯ!

NEXT I

2. Никогда не передавайте управление внутрь цикла, это может привести к непредсказуемым результатам.

GOTO 10 ' НЕЛЬЗЯ!

FOR I=1 TO 5

10 INPUT A

S=S+A

NEXT I

Досрочный выход из цикла

Для цикла FOR предусмотрена возможность безусловного выхода из цикла ( до его завершения). Управление передается команде, следующей за NEXT.

Формат команды выхода:

EXIT FOR

Например

FOR I=1 TO 10

INPUT "Введите значение параметра";F

IF F=100 THEN EXIT FOR

S=S+F

NEXT I

PRINT "Значения "

Подсчет:

Сумма Количество Произведение
S=0 K=0 P=1
S=S+A K=K+1 P=P*A

Пример1. Подсчитать сумму 10 значений переменной A.

S=0

FOR I=1 TO 10

INPUT "Введите значение переменной";A

S=S+A 'Подсчет суммы значений переменной A

NEXT I

PRINT "Сумма ="; S

Пример 2. Подсчитать количество положительных чисел и произведение отрицательных чисел из N введенных.

INPUT “Введите количество значений”;N

К=0

P=1

FOR I=1 TO N

INPUT "Введите значение переменной";A

IF A>0 THEN K=K+1

IF A<0 THEN P=P*A

NEXT I

PRINT"Количество положительных чисел =";K

PRINT"Произведение отрицательных чисел =";P

Домашнее задание:

1. Подсчитать сумму положительных элементов, не превышающих значения 10 из N введенных.

2. Подсчитать количество мальчиков, рост которых превышает 165 см и количество девочек, рост которых не превышает 165.

Практическое занятие

Пример 1. Рассчитать и вывести на печать значения функции Y=5/X при изменении аргумента X от -5 до 5 с шагом 2.

FOR X=-5 TO 5 STEP 2

Y= 5/X

PRINT "X=";X, "Y=";Y

NEXT X

Пример 2. Дан ряд чисел 100, 55, -1000, 20, 5, 8, 33, 48. Найти количество пар чисел квадрат разности которых <100.

DATA 100, 55, -1000, 20, 5, 8, 33, 48

K=0

FOR I=1 TO 8 STEP 2

READ A,B

IF (A-B)^2 < 100 THEN K=K+1

NEXT I

PRINT "Количество пар чисел квадрат разности которых <100 =";K

Пример 3. Найти максимальное значение из N введенных. Вывести максимальное значение и его индекс.

INPUT "Введите количество значений";N

INPUT "Введите первое значение";A

MAX=A : IN=1

FOR I=2 TO N

PRINT "Введите "; I; "-ое значение"

INPUT A

IF A>MAX THEN MAX=A : IN=I

NEXT I

PRINT "Максимальное значение =";MAX

PRINT “Индекс максимального значения =”; IN

Домашнее задание:

  1. Определить максимальное значение среди положительных элементов из N введенных.
  2. Подсчитать значения функции f(x)=Ö1-х2 на заданном интервале [-0,5; 0,5] с шагом 0,1.

Формат

WHILEлогическое выражение

Блок команд


Сейчас читают про: