С помощью циклов типа пока
можно запрограммировать любые
повторяющиеся фрагменты алгоритмов. Но на
практике цикл типа пока
чаще всего используют в двух следующих
случаях:
Число повторений заранее
не известно (например, цикл до
достижения требуемой точности
результата, цикл до первого
отрицательного элемента массива и т.п.).
Такой цикл называется циклом типа пока
с прерыванием.
Число повторений заранее
известно, но шаг параметра цикла не равен
1 (в школьном АЯ) или
1, -1 (в Pascal). Такой
цикл называется циклом типа пока
без прерывания.
Цикл типа пока
с прерыванием
Язык
Пример
Пояснения
Школьный АЯ
i:=1; Flag:="Нет"
нц пока (i<=N) и (Flag="Нет")
если A[i]<0
то Flag:="Да"; k:=i
иначе i:=i+1
все
кц
Решается задача:
определить номер первого
отрицательного элемента массива A(N). Здесь
Flag — "управляющая" переменная литерного
типа (можно с успехом использовать
также логический или целый типы)
Pascal
i:=1; Flag:=FALSE;
While (i<=N) and not Flag do
If A[i]<0
then begin
Flag:=TRUE; k:=i
end
else i:=i+1;
Здесь Flag — переменная логического
типа, принимающая значение ТRUE (истина)
или FALSE (ложь), and - операция 'и', not - операция
'не'
Цикл типа пока
без прерывания
Язык
Пример
Пояснения
Школьный АЯ
i:=1; S:=0
нц пока i<=N
S:=S+A[i]
i:=i+2
кц
Вычисляется сумма
элементов массива A(N) с нечетными индексами.
Число таких элементов заранее известно.
Шаг параметра цикла равен двум
Pascal
i:=1; S:=0;
While i<=N do
begin S:=S+A[i];
i:=i+2
end;
QВasic
Лучше использовать
цикл FOR:
S=0
FOR I=1 TO N STEP 2
S=S+A(I) NEXT I
Для организации циклов
типа пока можно
также использовать:
в языке Pascal оператор
цикла с постусловием Repeat...until:
Repeat тело
цикла until<условие
завершения>
Повторять тело цикла до
тех пор, пока не выполнится условие
завершения цикла.
Содержание:
Пример
4.1. Определить, является ли
заданная последовательность чисел...
Пример
4.2. Задано множество точек на
плоскости. Oпределить, принадлежит ли
хотя бы одна точка множества внутренней
области круга с центром в точке (a, b) и
радиусом R.
Пример
4.3. Определить, имеется ли среди
элементов главной диагонали заданной
целочисленной матрицы A(N, N) хотя бы один
положительный нечётный элемент.
Пример
4.4. Вычислить сумму всех чисел
Фибоначчи, которые не превосходят
заданного натурального числа М.
Пример
4.5. Включить заданное число D в
массив A(N), упорядоченный по возрастанию,
с сохранением упорядоченности.