Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Оператор цикла REPEAT
Организует выполнение цикла, состоящего из любого числа операторов, с неизвестным заранее числом повторений. Выход из цикла при истинности логического выражения.
repeat
<инструкция1>;
<инструкция2>;
…
<инструкцияN>;
until S;
где <инструкцияi> - операторы, в совокупности представляющие тело цикла;
S – логическое выражение, истинность которого проверяется в конце каждой итерации. Тело цикла выполняется до тех пор, пока не выполнится условие S. Поэтому тело цикла выполнится хотя бы один раз.
Цикл REPEAT относится к циклам с постусловием (см. пример 3).
Пример 3:
var X: Integer; begin repeat write('Введите целое отрицательное число:'); readln(X); until X<0; end. |
Программа будет выполняться до тех пор, пока число X не будет введено отрицательным.
Оператор цикла WHILE
Организует выполнение одного оператора с заранее неизвестным количеством итераций. Выход из цикла осуществляется при ложности логического выражения.
while S do
<инструкция>;
Здесь:
S – логическое выражение, истинность которого проверяется перед каждой итерацией. Такие циклы называются циклами с предусловием. Пока условие S истинно, тело цикла выполняется (см. пример 4).
<инструкция> - единственный выполняемый оператор цикла, который может быть составным.
Пример 4:
var X: Real; begin X:= 20; while X > 2 do X:= X/2; writeln('X=',X); end. |
В приведенном примере тело цикла состоит из единственного оператора, осуществляющего уменьшение числа в 2 раза.
Оператор цикла FOR
Организует выполнение одного оператора с заранее заданным числом итераций. Используется в двух вариантах:
· for i:=Start to Finish do
<инструкция>;
· for i:=Start downto Finish do
<инструкция>;
Здесь:
i – параметр цикла (обычно называется счетчиком цикла), являющийся переменной порядкового типа;
Start – начальное значение параметра цикла;
Finish – конечное значение параметра цикла;
В первом варианте переменная i последовательно принимает значения от Start до Finish с шагом 1, во втором - с шагом -1 (см. пример 5).
Пример 5:
var i: Char; begin for i:= 'Z' downto 'A' do write(i); end. |
В примере в качестве счетчика цикла использована переменная символьного типа. Результатом работы программы является вывод букв латинского алфавита в обратном порядке.
Стандартные процедуры Break и Continue
Break – досрочный выход из цикла, не дожидаясь выполнения условия выхода.
Continue – позволяет начать новую итерацию цикла, даже если предыдущая не завершена.
Пример 6:
var i: Integer; begin for i:= 1 to 5 do if i>3 then break else write(i,' '); end. |
В примере 6 как только i станет равным 4, программа выйдет из цикла. Результат работы программы:
1 2 3 |
Пример 7:
var i: Integer; begin for i:= 1 to 5 do begin if i<3 then continue; write(i, ' '); end; end. |
В примере 7 до тех пор, пока i<3 не будет выполняться write. Результат работы программы:
3 4 5 |
Варианты заданий
Вычислить сумму первых N членов арифметической прогрессии двумя способами: с помощью цикла for и цикла repeat. | |
Вычислить факториал числа с использованием цикла for и цикла repeat. | |
Выполнить табуляцию значений функции f(x)=x2+sin(x) на заданном отрезке [a, b] | |
Организовать ввод строковых значений до тех пор, пока пользователь не введет слово "хватит". При этом выводить длину введенных строк. | |
Найти сумму ряда 1/x с заданной точностью e. | |
Организовать ввод букв с клавиатуры до тех пор, пока не будет нажата клавиша Escape. Подсчитать количество согласных и гласных букв. | |
Найти путем подбора корни квадратного уравнения ax2+bx+c=0 на заданном интервале [x1, x2] с заданной точностью е. | |
Найти наибольший общий делитель двух чисел с помощью цикла for. | |
Найти наибольший общий делитель двух чисел с помощью цикла repeat. | |
Найти наименьшее общее кратное двух чисел с помощью цикла while. | |
Найти наименьшее общее кратное двух чисел с помощью цикла repeat. | |
Вывести на экран таблицу умножения чисел. | |
Определить, является ли данное натуральное число простым. | |
Вывести все простые натуральные числа на отрезке [N1, N2] | |
Найти сумму первых N членов ряда 1+x/3-x2/4+x3/5-… с помощью цикла for и цикла repeat. | |
Найти сумму ряда 1+x/2!-x2/4!+x3/6!-… (x из отрезка [-0.5, 0.5]) с заданной точностью e. | |
Организовать ввод чисел в цикле до тех пор, пока не будет введено число 0. Найти наименьшее из отрицательных. | |
Организовать ввод чисел в цикле до тех пор, пока не будет введено число 0. Подсчитать сколько раз последовательность введенных чисел меняет знак на противоположный. |
Требования к оформлению отчета приведены в разделе "Содержание и оформление отчета".
Дата публикования: 2015-04-07; Прочитано: 316 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!