Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Теоретическая часть. Оператор цикла REPEAT



Оператор цикла 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...