Програма записується в окремому exe-файлі. Таким чином, програма це алгоритм, який призначається для виконання комп'ютером. Двійкове подання команд комп'ютера називається

Вид материалаУрок

Содержание


Програмування складних розгалужених алгоритмів. Оператор варіанта
У короткій формі
Цикл із передумовою
Цикл із післяумовою
Подобный материал:
1   2   3   4   5   6   7   8   9

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


Для зручного запису розгалужень з багатьма альтернативами в мову програмування Паскаль введено оператор варіанта. Існують дві форми оператора варіанта: повна і коротка. Повна форма має вигляд: case <вираз> of

<набір_значень_1> : <оператор1>;

<набір_значень_2> : <оператор2>;

<набір_значень_№> : <оператор№>;

else <оператор>;

end;

(case — у перекладі з англійської означає «випадок», «варіант»),

де <вираз> — це арифметичний вираз, значенням якого є величина цілого або символьного типу даних (іноді <вираз> називається селектором від англійського select — вибирати), <на-бір_значень> — це одна або декілька величин відповідного типу, розділених комами; у наборі можна також указувати діапазони значень через дві крапки,наприклад:

1, 2, 6. .9, 20 — до цього набору значень входять числа 1, 2, 6, 7, 8, 9, 20;

'a', .'d', 'x'. ,'z' - до цього набору значень входять символи «a», «b», «c», «d», «x», «у», « z ».

Значення з наборів мають бути унікальними, тобто в різних наборах не може бути двох збіжних значень.

Принцип роботи: значення <виразу> обчислюється і шукається серед <наборів_значень>. Якщо значення знаходиться у деякому <наборі_значень>, то виконується відповідний оператор, інакше виконується оператор, який стоїть після слова else. Оскільки значення в наборах не можуть збігатися, то виконується тільки один із операторів.

Для того, щоб виконувався не один, а декілька операторів, їх треба взяти в операторні дужки.

У короткій формі оператора варіанта else-гілка опускається, і, якщо значення <виразу> не збігається з жодним значенням із наборів, то відразу виконується оператор, який стоїть після оператора варіанта.

Приклади використання оператора варіанта:

a)case і of

0..9 : writeln ('Число однозначне/); 10.. 9 9 : writeln ('Число двозначне.'); 100.. 9 99 : writeln ('Число тризначне.'); 1000..9999 :

writeln ('Число чотиризначне.'); end;

б) write ('Котра.година?');

readln(h); case h of

6.. 11 : writeln ('Зараз ранок.');

12..17 : writeln ('Зараз день.');

18..22 : writeln ('Зараз вечір.');

23,0..5 : writeln ('Зараз ніч.');

else

writeln ('Неправильно введено час.'); end;

в) case c of

'а', 'о' /е' /і', У, 'й': writeln ('Буква голосна.'); else writeln('Буква приголосна.'); end;

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


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

Оператор циклу з передумовою записується таким чином:

while <умова> do

<оператор>;

У перекладі з англійської while означає «поки», do — «робити».

Принцип роботи:

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

<0ператор> називається тілом циклу. Якщо тіло циклу містить понад один оператор, їх треба взяти в операторні дужки begin ... end.

Некоректне використання оператора while може призвести до «зависання» комп'ютера. Це може статися у разі, коли виконання тіла циклу не буде впливати на <умову>.

Наприклад:

while a
Приклади циклів з передумовою:

а)і:=1;

while i<10 do

begin

write('*');

і:=і+1;

end;

Змінна і пробігає значення від 1 до 10, на екран буде виведено 9 зірочок (для і=10 зірочка не виводиться).

б)і:=1;

readln(m);

while i
i:=i*2;

writeln(i);

Змінна і множиться на 2 до тих пір, поки не перевищить значення заданого числа f. Інакше кажучи, наприкінці цього фрагмента програми .значення і дорівнюватиме найменшому степеню числа 2, що перевищує f. Наприклад, якщо f дорівнює 1000, то на екран виведеться число 1024 (210),

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


Для програмування циклічних алгоритмів, в яких перевірка умови виконується після виконання тіла циклу, в мові програмування Паскаль використовується цикл з післяумовою. Оператор циклу з післяумовою записується так: repeat

<серія операторів>; until <:умова>;

. У перекладі з англійської repeat означає «повторювати», until — «до тих пір». Принцип роботи:

Виконується <серія оііераторів>, після чого перевіряється <умова>; Якщо <умова> виконується, відбувається вихід з циклу, інакше — повернення до виконання <серії операторів>.

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

Тілом циклу є саме серія, тобто послідовність операторів, і її (на відміну від циклу з передумовою) не треба брати в оператори! дужки, тому що роль дужок відіграють службові слова repeat — until.

Приклади використання оператора циклу з •післяумовою:

а)і:=1;

repeat write(.'*');

і:=і+1;

until i=11;

. Результат роботи: змінна і пробігає значення від 1 до 11, на екран буде виведено десять зірочок.

б) repeat

readln(n);

until (n>9) and (n<100);

Результат роботи: програма запрошуватиме введення цілого числа до тих пір, поки не буде введене двозначне число, воно і стане остаточним значенням змінної n.