Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
08_Лекция_стУ.doc
Скачиваний:
3
Добавлен:
23.11.2019
Размер:
103.42 Кб
Скачать
  1. Вміст тіла циклу має обов’язково впливати на умову циклу для уникнення за циклювання (в середині тіла циклу має бути зміна параметру циклу);

  2. Про попередню коректність умови, як у випадку циклу с while турбуватися не обов’язково (до початку циклу необов’язкові початкові установки змінних які управляють умовою циклу).

program Celsius_Repeat_Until;

{$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);

T:=C_f;

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

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

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

repeat

K:=T+273.15;

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

T:=Shag+T;

Until T>C_L;

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

readln

end.

Якщо умова в тілі циклу не змінюється, цикли while, repeat перетворюються в нескінченні цикли, наприклад:

while true do ;

repeat until false;

Ці цикли пусті і ніколи не закінчуються. Перервати цикл можна спеціальними операторами або додатковими умовами.

Порівняння роботи операторів while, repeat и for

Відмітимо відмінності та особливості гарного стиля роботи с циклічними операторами

Цикл з передумовою

while

(поки умова істинна)

Цикл з постумовою

repeat ... until

(доти, доки умова істинна)

Цикл з лічильником

for

1

До початку циклу мають бути зроблені початкові установки змінних, що керують умовою циклу, для коректного входу в цикл

До початку циклу необов’язкові початкові установки змінних, що керують умовою циклу

Початкова установка лічильника циклу до заголовку не потребується

2

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

Зміна в тілі циклу лічильника не допускається

3

Цикл працює, поки умова істина (поки True)

Цикл працює, доки умова хибна ( поки False)

Кількість ітерацій циклу незмінна і точно визначена значеннями нижньої і верхньої межі і кроку циклу

4

Цикл завершується, коли умова стає хибною (до False)

Цикл завершується, коли умова стає істинною (до True)

5

Цикл може не виконатися жодного разу, якщо початкове значення умови на вході в цикл дорівнює False

Цикл обов’язково виконується щонайменше одноразово

Цикл може не виконатися жодного разу, якщо крок циклу буде змінювати значення лічильника від нижньої межі в напрямку протилежному верхній межі

6

Якщо в тілі циклу більше за один оператор, треба використовувати операторні дужки

Незалежно від кількості операторів в тілі циклу використання операторних дужок не потребується

Якщо в тілі циклу більше за один оператор, треба використовувати операторні дужки

7

Нормальний хід роботи циклу може бути порушений спеціальними операторами (наприклад, процедурами Break або Continue)

Розглянемо наступні завдання.

Задача 1. Визначити значення змінної P після виконання наступних операторів:

P:=1; j:=1; while j<6 do j:=j+1; P:=P*j;

Вірна відповідь 6

Задача 2. Визначити значення змінної P після виконання наступних операторів:

P:=1; j:=2; while j>2 do begin P:=P+j; j:=j–1 end;

Вірна відповідь 1

Задача 3. Визначити значення змінної P після виконання наступних операторів:

P:=1; j:=6; while j>6 do j:=j–1; P:=P*j;

Вірна відповідь 6

Задача 4. Визначити значення змінної P після виконання наступних операторів:

P:=1; j:=2; repeat P:=P*j; j:=j–1 until j<=1;

Вірна відповідь 2

Задача 5. Визначити значення змінної P після виконання наступних операторів:

P:=0; K:=–2; For i:=2 to K do P:=P+i;

Вірна відповідь 0

Задача 6. Визначити значення змінної P після виконання наступних операторів:

P:=1; n:=2; For i:=2 downto n do P:=P*i;

Вірна відповідь 2

Задача 7. Вкажіть номер рядка в якому є помилка. Поясніть свою відповідь.

{01} var k, i :integer; y:real;

{02} begin

{03} k:= 0; y:=1;

{04} for i:=–1 to cos (k) do y:=2*y; //cos(0)=1

{05} writeln(y);

{06} end.

Вірна відповідь: Помилка в рядку 04. За визначенням циклу For, у якості кінцевого значення параметру циклу не може бути використаний вираз cos (k), тому що тип його результату Extended не є порядковим

Задача 8. Вкажіть номер рядка в якому є помилка. Поясніть свою відповідь.

{01} var j, i :integer;

{02} begin

{03} j:=0;

{04} for i:=j-1 to j+4 do i:= i+1;

{05} writeln(j);

{06} end.

Вірна відповідь: Помилка в рядку 04. Забороняється змінювати параметр циклу For зсередини тіла циклу

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]