Оператор цикла WHILE с предусловием
Структура оператора имеет вид: WHILE <условие> DO <оператор>; WHILE, DO – зарезервированные слова (WHILE – пока; DO – выполнить); <условие> – выражение логического типа; <оператор> – произвольный оператор Турбо Паскаля. Если выражение <условие> имеет значение TRUE, то выполняется <оператор>, после чего вычисление выражения <условие> и его проверка повторяются. Если <условие> имеет значение FALSE, оператор WHILE прекращает свою работу. Пример: Переписать фрагмент примера с циклом While…do, используя оператор цикла с предусловием. Решение: Фрагмент программы с оператором цикла запишется в виде: s:=0; i:=1; while i<=10 do Begin s:=s+i; i:=i+1; End; Writeln(‘s=’, s); В примере рассматривается составной оператор цикла, тело цикла заключено в операторные скобки. Оператор цикла REPEAT…UNTIL с постусловием Структура оператора имеет вид: REPEAT <тело_цикла> UNTIL <условие>; REPEAT, UNTIL – зарезервированные слова (повторять до тех пор, пока не будет выполнено условие); <тело_цикла> – произвольная последовательность операторов Турбо Паскаля; <условие> – выражение логического типа. Операторы, входящие в <тело_цикла>, выполняются хотя бы один раз, после чего вычисляется выражение <условие>: если его значение есть FALSE, операторы <тело_цикла> повторяются, в противном случае оператор REPEAT…UNTIL завершает свою работу. Пример: Переписать фрагмент примера с циклом While…do, используя оператор цикла с постусловием. Решение: Фрагмент программы с оператором цикла запишется в виде: s:=0; i:=1; repeat s:=s+i; i:=i+1; Until i>10; Writeln(‘s=’,s); В пример цикл выполняется пока переменная i£10, при i>10 цикл закончится. Пример: Написать программу циклического алгоритма рис.11.
В цикле вычислить значение функции z= x*y при условии, что одна из переменных - x меняется в каждом цикле, а другая переменная- у не меняется и может быть любым целым числом. Решение: Программа алгоритма цикла со счётчиком имеет вид: PROGRAM PR5; Var x, y, z, i, n:integer; begin {циклический алгоритм} writeln (‘ввести x, y, количество циклов-n’); readln (x, y, n); for i:=1 to n do {оператор цикла с параметрами} begin z:=x*y; Writeln (‘x= ’, x, ‘ y= ’, y, ‘ z= ’, z); x:=x+1; End; {конец оператора цикла с параметрами} End. Если неизвестно количество циклов, то следует выбрать любой из двух операторов цикла: с предусловием или с постусловием. Пример: Пока y>x вычислить у=у-x,, если y=30, x=4. Вывести на экран количество циклов и значения переменной y в цикле. Алгоритм этой задачи представлен в виде блок-схемы рис.12. Решение: Программа алгоритма цикла с предусловием имеет вид: PROGRAM PR6; Var i, x, y: integer; begin {циклический алгоритм} x:=4; y:=30; i:=0; {оператор цикла с предусловием} while y>x do begin y: = y – x; i:=i+1; readln (‘i=’, i, ‘x= ’, x, ‘y= ’, y); end; {конец оператора} end. В примере используется оператор цикла с предусловием, который работает при условии y>x. Условие проверяется при входе в цикл. Пример: Составитьпрограмму для алгоритма, представленного на рисунке 13, используя оператор цикла с постусловием. Цикл выполняется при условии y>x, но в конце оператора проверяется условие выхода из цикла (y<=x). Решение: Программа алгоритма цикла с постусловием имеет вид: PROGRAM PR7; Var i, x, y: integer; begin {циклический алгоритм} x:=4; y:=30; i:=0; {оператор цикла с постусловием} repeat y: = y – x; i:=i+1; readln (‘i=’, i, ‘x= ’, x, ‘y= ’, y); until y<=x; {конец оператора} end.
Читайте также: Hardly worth while to go to Jersey. She was surprised to receive a letter one Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|