Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Оператор циклу з передумовою While, з постумовою REPEAT




Цикли while і repeat є недетермінованими.

Це означає, що кількість ітерацій не обов’язково має бути відомою до початку виконання циклу.

Цикли whilе і repeat можна також використовувати замість for в ролі детермінованих.

Таким чином, кожний цикл 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;

{$APPTYPE CONSOLE}

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.




Поделиться с друзьями:


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


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



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




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