Результат работы программы

Begin

Действие операторa.

1) При входе в цикл вычисляется Условие которое записано в заголовке.

2) Если Условие=true, то выполняем однократно операторы в теле цикла.

3) Переходим на заголовок цикла и снова вычисляем Условие.

4) Если Условие=true, то опять выполняем однократно операторы в теле цикла.

5) Если получим в заголовке Условие=false,

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

Если при первом вычислении значение Условия окажется ошибочным, то Оператор не выполнится ни разу.

Следует помнить:

1. Содержимое тела цикла должно обязательно влиять на условие цикла для избегания зацикливания (в середине тела цикла должно быть изменение параметра цикла);

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


Решим задачу. Нужно написать программу для перевода значения температуры, заданной по шкале Цельсия, в значение по шкале Кельвина.

 

Обозначения:

C_F – начальное значение температуры (first temperature) в Цельсии,

C_L – конечное значение (last temperature) в Цельсии;

K – температура в Кельвинах;

T – параметр цикла;

shag – шаг цикла.


program Celsius_While;

var C_f, C_L, T, K, shag : real;

i:integer;

begin

writeln('Enter first temperature');

readln(C_f);

writeln('Enter last temperature');

readln(C_L);

writeln('Enter shag');

readln(shag);

For i:=1 to 20 do write('*');

writeln;

writeln('* Celcius *','Kelvin':7,'*':2);

For i:=1 to 20 do write('*');

writeln;

T:=C_f;

While T<=C_L do

K:=T+273.15;

writeln('*', T:6:1, '*':4, K:7:2, '*':2);

T:=Shag+T;

end;

For i:=1 to 20 do write('*');

writeln;

readln

end.

 


 

Цикл While может содержать в своем теле другие, вложенные циклы (вложенные циклы могут влиять на параметр цикла).

i:=1;

while i<=6 do

begin

j:=i+1;

while j<=6 do

begin

i:=j+1;

j:=j+1;

end;

end;


Оператор цикла с постусловием разрешает многократно выполнять одни и те же действия, которые находятся между ключевыми словами repeatи until. Условие завершенияцикла указывается после слова until.

 

Синтаксис цикла repeatимеет вид:

repeat

Оператор1;

Оператор2;

...

ОператорN

until Условие;

 

Где repeat, until– ключевые слова;

Условие–константа, переменная или выражение логического типа;

Оператор1, Оператор2, ..., ОператорN – тело цикла.

 

Дословно эта языковая конструкция переводится так: «Повторять последовательность операторов до тех пор, пока не выполнится условие».

 

Оператор repeat не нуждается в использовании составного оператора, когда в теле цикла используется более чем один оператор, так как ключевые слова repeatи until выполняют функции операторных скобок.

 

Символ «;» после последнего оператора тела цикла также является не обязательным, что делает возможным запись цикла с пустым телом.

 

Кроме того, оператор repeat является не таким универсальным, как while,поскольку его Условие расположенное в конце цикла и операторы тела будут, в отличие от циклаwhile, всегда выполняться как минимум единожды.