Тема: Програмування. Основні етапи розробки прикладних програм

Вид материалаДокументы

Содержание


Begin For a:=false to true do Begin
Подобный материал:
1   2   3   4   5   6   7   8   9   ...   14

Var


i, S:integer;

S:=0;

For i:=1 to 10 do S:=S+i;

Writeln(S);

End.
  1. Програма друкування символів a’..’z.

Var c:char;

Begin


For c:=’a’ to ‘z’ do write(c:3);

End.

  1. Програма побудови таблиці істинності для and.

Var a,b: Boolean;

Begin


For a:=false to true do

Begin


For b:=false to true do

Write (a and b :6);

Writeln


End;

End.

Цей оператор циклу ще називають оператором циклу з параметром for to, він передбачає повторення із збільшенням параметру. Оскільки в Turbo Pascal не можна керувати кроком зміни параметра, то для реалізації повторення із зменшенням параметра використовують інший варіант циклу for downto.

FOR<параметр> : = <початкове значення> DOWNTO <кінцеве значення> DO <тіло циклу>;

Після виконання кожного етапу циклу параметр зменшується на 1 одиницю типу.

Зауваження. У випадку необхідності вийти з тіла циклу достроково, тобто до досягнення параметру кінцевого значення не бажано користуватися оператором безумовного переходу, а також аналітичним йому підпрограм типу exit, halt(1).

Для виконання виходу краще змінити значення параметру в тілі циклу.

б) Оператор циклу з передумовою. Якщо кількість повторень деякої послідовності команд алгоритму не є визначеною наперед, або повторення повинні припинитися у різних випадках, то оператор циклу з параметром не завжди дозволяє виконати це. Також можливі ситуації, коли алгоритм взагалі не оперує якимось параметром, а повторення продовжується до певної логічної умови. В таких випадках використовується інший варіант циклу. Фактично їх два. Один із них називається циклом з передумовою.

WHILE <логічний вираз> DO <тіло циклу> ;

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

Очевидно, що тіло циклу повинно містити якісь дії, що приводять до зміни логічного виразу від true до false.

Наприклад

Дано мішок картоплі, яка вся різної маси. Найменша картоплина важить 50 г. Крок маси 5 г . Скільки картоплин вміститься в 10 кг відрі, якщо їх класти в порядку зростання маси.

Var m, dm, S: real;

i: integer;

begin

m:=0.05;

dm:=0.005;

S:=0; i:=0;
While S<=10 do

Begin


S:=S+m; i:=i+1;

m:=m+dm

end;

writeln(кількість картоплин‘’,i-1)

end.

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

REPEAT <тіло циклу> UNTIL <логічний вираз> ;

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

Не потрібно об’єднувати тіло циклу операторними дужками.

Наприклад

Відрахувати кількість картоплин, що у відрі, якщо остання повинна важити не менше півкіло.

...

begin

m:= 0.05;

dm:= 0.005;

i:=0;

repeat i:=i+1;

m:=m+dm

until m>=0.5;

writeln(кількість картоплин‘’,i+1)

end.

Зауваження. Використання операторів циклу з передумовою і післяумовою дозволяє забезпечити достроковий вихід з циклу при певній умові без конструкції типу exit або goto. Для цього достатньо в логічний вираз включити складену умову, яка є кон’юнкцією, диз’юнкцією умов покорення та умови дострокового виходу.

Наприклад

Підрахувати кількість картоплин у відрі, поки не буде покладена 0.5 кг, якщо при цьому вони вміщатимуться у відро.



begin

m:=0.05;

dm:=0.005;

S:=0; i:=0;

While (S<=10) and(m<0.5) do

Begin S:=S+m; m:=m+dm; i:=i+1

End;

If S>10 then writeln(‘відро переповнилося’) else writeln(‘0ю5 кг картоплина під №’,i);

End.
  1. Оператор вибору варіанту. Оператор варіанту подібний до оператора розгалуження, оскільки передбачає виконання однієї з декількох послідовності команд в залежності від значення спеціального параметра.

Відмінність від оператора розгалуження полягає у тому, що кількість можливих альтернативних варіантів може бути значно більшою ніж 2. Вибір варіанту визначається не значенням логічного виразу, а значенням параметра, що є величиною одного із порядкових типів. Загальна структура:

CASE <параметр> OF

<значення1> : <оператор>;

<значення2> : <оператор2>;

...

<значення п> : <оператор п>

END

ELSE <оператор п+1> ;

Параметр може бути або константою, або змінною, або виразом деякого порядкового типу.

Значення 1, 2... – деякі можливі значення відповідного порядкового типу, яких може набувати параметр. В залежності від значень параметра виконується один з операторів.

Якщо реальне значення параметра не співпадає ні з жодним значенням, то виконується альтернативна частина else. Оскільки вона не обов’язкова, то її відсутність означає не виконання жодної дії.

Зафіксовані значення параметрів можуть бути не лише окремими зображеннями відповідного типу, а цілими, інтервальними або переліком декількох значень.

Наприклад

Вивести на екран повідомлення про вид символа, що вводиться з клавіатури.

Var c:char;