![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Основные сведения. Алгоритм называется циклическим, если он содержит многократное выполнение одних и тех же ветвей при различных значениях промежуточных данных.
Алгоритм называется циклическим, если он содержит многократное выполнение одних и тех же ветвей при различных значениях промежуточных данных. Различают циклы с параметрами (циклы ДЛЯ) и циклы с условием (циклы ПОКА). Для программирования циклов с параметром в Паскале используют оператор FOR. Следует помнить, что в качестве управляющей переменной должна быть переменная дискретного типа. ОПЕРАТОР ОРГАНИЗАЦИИ ЦИКЛОВ FOR Операторы повтора используются при организации циклов. Цикл – это последовательность операторов, которая может выполняться более одного раза. Форматы оператора FOR: 1. for < параметр цикла>: = < S1> to < S2> do < оператор>; 2. for < параметр цикла>: = < S1> downto < S2> do < оператор>; С помощью FOR..TO < оператор> выполняется S2 - S1 + 1 раз, с FOR..DOWNTO - S1-S2 раз. Например, оператор~ FOR I: = 1 to 20 do write('*'); 20 раз выведет на экран в одной строке символ " *". Параметр цикла, его начальное и конечное значения должны принадлежать одному и тому же типу данных. Вещественные типы запрещены. Если используются типы integer, byte и интервальный, то значение параметра цикла последовательно увеличивается (при for.. to) или уменьшается (при for.. downto) на единицу на каждом шаге. Оператор Результат for I: = 10 to 14 do write (I: 3); 10 11 12 13 14 for I: = 14 downto 10 do write(I: 3); 14 13 12 11 10 for Ch: ='a' to 'e' do write (Ch: 2); a b c d e for Ch: ='e' downto 'a' do write (Ch: 2); e d c b a Программист не должен сам изменять параметр цикла, это вызовет ошибку.
ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ ОПЕРАТОРА FOR FOR I: =1 TO 10 DO Read(X); ввод с клавиатуры в цикле 10 значений
FOR I: =1 TO 80 DO Write('*'); строка из 80 символов '*'
FOR I: =1 TO 24 DO Writeln('*'); столбик из символов '*'
ОПЕРАТОР ПОВТОРЕНИЯ REPEAT Оператор повтора REPEAT состоит из заголовка (REPEAT), тела и условия окончания (UNTIL). Формат: REPEAT < оператор; > < оператор; > ... < оператор> UNTIL < условие>; Условие - выражение булевского типа. При написании условия допустимы булевские операции и операции отношения. Операторы, заключенные между словами repeat и until, являются телом цикла. Вначале выполняется тело цикла, затем проверяется условие выхода из цикла. Если результат булевского выражения False, тело цикла активизируется еще раз, если результат True - происходит выход из цикла. В некоторых случаях из цикла выходят с помощью оператора GOTO, не дожидаясь подходящего условия в UNTIL. Для этого внутри REPEAT производят операцию сравнения и при ее истинности уходят на метку вне оператора REPEAT.
PROGRAM Demo_REPEAT; - заголовок программы Var I, Sum: integer; - объявление переменных BEGIN - начало раздела операторов I: = 0; Sum: = 0; - обнуление I, Sum REPEAT - начало оператора REPEAT Writeln('I= ', I); - вывод текущего значения I Sum: = Sum + I; - наращивание суммы I: = I + 2 - увеличение I (0, 2, 4, 6, 8, 10) UNTIL (I > 10); - конец оператора REPEAT writeln('Сумма четных чисел= ', Sum) - вывод результата END. - конец программы
ОПЕРАТОР ПОВТОРЕНИЯ WHILE Оператор WHILE аналогичен оператору REPEAT, но проверка условия выполнения тела цикла производится в самом начале выполнения оператора. Формат: WHILE < условие> DO < тело цикла>; Условие - булевское выражение, а тело цикла - простой или составной оператор. Перед каждым выполнением тела цикла вычисляется значение выражения условия. Если результат равен True, тело цикла выполняется и снова вычисляется выражение условия. Если результат равен False, происходит выход из цикла и переход к первому после WHILE оператору. Если перед первым выполнением цикла значение выражения было False, тело цикла вообще не выполняется и происходит переход на следующий оператор. П р и м е р. WHILE True DO write ('Бесконечный цикл'); WHILE 1 = 1 DO wRite ('Бесконечный цикл'); {очевидно, что результат выражения 1=1 всегда равен True}
Оператор WHILE, как и другие операторы организации циклов, может быть вложенным. Досрочный выход из WHILE можно осуществить по GOTO. PROGRAM Demo_WHILE; - заголовок программы Var I, Sum: integer; - объявление переменных BEGIN - начало раздела операторов I: = 0; Sum: = 0; - обнуление I, Sum WHILE I < 12 DO BEGIN - начало оператора WHILE Writeln('I= ', I); - текущее значение I Sum: = Sum + I; - наращивание суммы I: = I + 2 - увеличение I (0, 2, 4, 6, 8, 10) END; - конец оператора WHILE writeln('Сумма четных чисел= ', Sum) - вывод результата END. - конец программы
ПРИМЕР 1: Приписать к 523*** три такие цифры справа, чтобы полученное шестизначное число делилось на 7, на 8, на 9.
|