Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
экз по паскалю.doc
Скачиваний:
13
Добавлен:
06.09.2019
Размер:
334.85 Кб
Скачать

56. Операторы цикла с предусловием (while)

Оператор цикла с предусловием (начинающийся с ключевого сло-

ва while) содержит в себе выражение, которое управляет повторным

выполнением оператора (который может быть составным оператором).

┌─────┐ ┌─────────┐ ┌──┐ ┌────────┐

оператор ───>│while├──>│выражение├──>│do├──>│оператор├──>

while └─────┘ └─────────┘ └──┘ └────────┘

Выражение, с помощью которого осуществляется управление пов-

торением оператора, должно иметь булевский тип. Вычисление его

производится до того, как внутренний оператор будет выполнен.

Внутренний оператор выполнятся повторно до тех пор, пока выраже-

ние принимает значение Тruе. Если выражение с самого начала при-

нимает значение False, то оператор, содержащийся внутри оператора

цикла с предусловием, не выполняется.

Примерами операторов цикла с предусловием могут служить сле-

дующие операторы:

while Data[I] <> X do I := I + 1;

While I > 0 do

begin

if Odd(I) then Z := Z * X;

I := I div 2;

X := Sqr(X);

end;

while not Eof(InFile) do

begin

Readln(InFile,Line);

Process(Line);

end;

55. Цикл в Паскале. При решении задач может возникнуть необходимость повторить одни и те же действия несколько или множество раз. В программировании блоки кода, которые требуется повторять не единожды, оборачиваются в специальные конструкции – циклы. У циклов выделяют заголовок и тело. Заголовок определяет, до каких пор или сколько раз тело цикла будет выполняться. Тело содержит выражения, которые выполняются, если в заголовке цикла выражение вернуло логическую истину (True, не ноль). После того как достигнута последняя инструкция тела, поток выполнения снова возвращается к заголовку цикла. Снова проверяется условие выполнения цикла. В зависимости от результата тело цикла либо повторяется, либо поток выполнения переходит к следующему выражению после всего цикла.

В языке программирования Паскаль существует три вида циклических конструкций.

53.

 Оператор выбора (вариант, переключатель) реализует выбор одной из возможных альтернатив, т.е. вариантов продолжения программы.

Формат записи:

Case S of        K1:  OP1;       K2:  OP2;           . . .      Kn:  OPn;       Else  OP; End;

    где:       Case – выбор, вариант;       of      - из;       S     – селектор, выражение порядкового типа;       Ki – константы выбора, константа, тип которой совпадает с типом селектора;      OPi     – любой оператор в том числе пустой; Оператор выбора реализует следующую конструкцию:

Работа оператора выбора в Паскале: Вычисляется  выражение селектора. Вычисленное значение последовательно сравнивается с константами альтернатив и передается управление оператору константа выбора, которого совпадает с вычисленным значением селектора.  Выполняется  оператор и передается управление  за пределы оператора выбора. Если вычисленное значение селектора не совпадает ни с одной из констант, то управление передается на ветвь Else, наличие которой, не обязательно в этом случае управление передается  за пределы оператора выбора.

 

Рис. 9.6. Структурная схема оператора выбора.

 

Структуру оператора выбора можно реализовать с помощью вложенных условных операторов, но это ухудшает наглядность программы. Рекомендуется не более 2-3 уровней вложений. Пример 9.6.  Составить программу вычисления функции  y для заданного значения x.

     где:   a=2,8;   ;  0?x<0,5;  Dx=0,01.

 

Текст программы

program gcase; uses crt; var a,b,x,y   :real; n         :integer; begin clrscr; a:=2.8; b:=5.1E-2; writeln('Результат':20); writeln('n':3,'x':10,'y':15); x:=0; repeat n:=trunc(10*x+1); write(n:3); case n of 1:y:=1+exp(a*x); 2:y:=a+ln(a+b); 3:y:=b*sqr(x); 4:y:=a-sqrt(abs(a*b/2)); 5:y:=1+a*b*x; end; writeln(' ':10,x:5:3,' ':5,y:9); x:=x+0.05; until x>=0.5; Readln; end.