Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Таким образом, каждый цикл for можно заменить эквивалентным ему циклом while или repeat, но не наоборот

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

На рисунке приведена блок-схема цикла while. Синтаксис цикла while имеет вид:

while Условие do Оператор;

где while, do – ключевые слова;

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

Оператор – это оператор, который выполняется в цикле и определяет тело цикла.

Фраза от слова while до слова do является заголовком цикла

 

Согласно синтаксису оператора While тело цикла есть одним оператором.

Если в цикле выполняется группа операторов, ее следует превратить в один составной оператор с помощью операторных скобок begin... end.

Конструкция while Условие do Оператор; переводится как «пока условие истинное, выполнять операторы тела цикла».

 

Действие оператору. Сначала, при входе в цикл вычисляется Условие, которое записано в его заголовке. Если оно истинно, то происходит вход в цикл и одноразовое выполнение операторов его тела. После этого управление снова передается на его заголовок, где снова вычисляется Условие. Если значение Условия все еще истинное, то тело цикла выполняется еще один раз, и так далее. Как только очередное вычисление Условия цикла дает ложное значение, работа цикла завершается и управление передается оператору, который следует непосредственно за оператором тела цикла. Если при первом вычислении значение Условия окажется ошибочным, то Оператор не выполнится ни разу.

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

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

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

Решим задачу. Нужно написать программу для перевода значения температуры, заданной по шкале Цельсия, в значение по шкале Кельвина. В шкале Кельвина за точку отсчета принятый абсолютный нуль, это –273,15 °С, а цена деления совпадает с ценой деления шкалы Цельсия. Используем для решения этой задачи цикл while .. do. В случае этого цикла нет ограничений на тип параметра цикла и шаг его увеличения. Поэтому построим таблицу с шагом 0,5 градуса.

Обозначим начальное значение температуры (first temperature) в Цельсии - C_F, а конечное значение (last temperature) - C_L. Температуру в Кельвинах - K. Параметр цикла обозначим сменной T. Шаг цикла - переменная shag.

Обратите внимание на присваивание T:=C_f перед циклом. Без него значение T может быть любым, и условие в заголовке цикла может быть некорректным. Значение T изменяется внутри цикла. При этом безопаснее так писать тело цикла, чтобы оператор, который влияет на условие, был последним в теле.

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 может быть любым, и условие может быть некорректным}

T:=C_f;

While T<=C_L do

begin

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, с постусловием REPEAT | Результат работы программы. Цикл While может содержать в своем теле другие, вложенные циклы (вложенные циклы могут влиять на параметр цикла)
Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 1038; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.015 сек.