Розгалуження в pascal

Визначення. Розгалужуються називається такий алгоритм, в якому вибирається один з декількох можливих варіантів обчислювального процесу. Кожен подібний шлях називається гілкою алгоритму.

Ознакою разветвляющегося алгоритму є наявність операцій перевірки умови. Розрізняють два види умов - прості і складні.

Простим умовою (ставленням) називається вираз, складене з двох арифметичних виразів або двох текстових величин (інакше їх ще називають операндами), пов'язаних одним із знаків:
<- меньше, чем.
> - більше, ніж.
<= - меньше, чем. или равно
> = - більше, ніж. або дорівнює
<> - не дорівнює
= - одно


У загальному випадку повна форма конструкції умовного оператора має вигляд:

if <логическое выражение> then <оператор 1> else <оператор 2>

Умовний оператор працює за наступним алгоритмом.

Спочатку обчислюється значення логічного виразу, розташованого за службовим словом IF. Якщо його результат істина. виконується <оператор 1>, розташований після слова THEN, а дії після ELSE пропускаються; якщо результат брехня. то, навпаки, дії після слова THEN пропускаються, а після ELSE виконується <оператор 2>.

Завдання.
Вивести на екран більше з двох даних чисел.

Можна також використовувати і скорочену (неповну) форму запису умовного оператора.
Ця форма використовується тоді, коли в разі невиконання умови нічого робити не треба.

Неповна форма умовного оператора має наступний вигляд.

if <логическое выражение>
then

Тоді якщо вираз, розташоване за службовим словом IF. в результаті дає істину, виконуються дії після слова THEN, в іншому випадку ці дії пропускаються.

Керуюча структура if може здатися негнучкою, так як їх дії можуть бути описані тільки одним оператором. Іноді може знадобитися виконання послідовності операторів. В цьому випадку хотілося б укласти всю послідовність в уявні дужки. У Паскалі передбачений цей випадок.

Якщо в якості оператора повинна виконатися серія операторів, то вони полягають в операторні дужки begin-end. Конструкція Begin. End називається складовим оператором.

if <логическое выражение>
then

оператор 1;
оператор 2;
.
end
else
begin

оператор 1;
оператор 2;
.
end;

Визначення. Складовою оператор - об'єднання декількох операторів в одну групу. Група операторів усередині складеного оператора полягає в операторні дужки (begin-end).

оператор 1;
оператор 2;

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

Скласти програму, яка пропонує Івану-Царевичу вибрати правильний напрямок шляху.
У Івана-Царевича є три варіанти подальшого шляху:
направо, - «Коня втратиш»
наліво, - «Голову складеш»
вперед. - «Наречену знайдеш»


Var p: string;
Begin
WriteLn ( 'Куди йдеш?');
ReadLn (p);
If p = 'направо' then writeLn ( 'Коня втратиш');
If p = 'наліво' then writeLn ( 'Голову складеш');
If p = 'прямо' then writeLn ( 'Наречену знайдеш');
ReadLn;
End.
приклад виконання програми

Куди йдеш?
прямо
наречену знайдеш
Куди йдеш?
направо
коня втратиш

Задані довжини сторін трикутника, визначити, чи є цей трикутник прямокутним.

Program sum3;
Var a, b, c: real;
Begin
Readln (a, b, c);
If a * a + b * b = c * c then writeln ( 'трикутник прямокутний')
else writeln ( "не прямокутний ');
Readln;
End.

приклад виконання програми


Довжина першої сторони
3
Довжина другої сторони
4
Довжина третьої сторони
5
трикутник прямокутний

При вирішенні завдань часто доводиться розглядати не два, а більшу кількість варіантів. Це можна реалізувати, використовуючи кілька умовних операторів. У цьому випадку після службових слів Then і Else записується новий умовний оператор.
Отже, коли оператор if з'являється всередині іншого оператора if, вони вважаються вкладеними. Таке вкладення використовується для зменшення числа необхідних перевірок. Цей метод часто забезпечує більшу ефективність, проте одночасно він зменшує наочність програми. Не рекомендується використовувати більше одного-двох рівнів вкладення if. За другим рівнем вкладення стає важко відновити послідовність перевірки умов кожним умовним оператором.

Снаряд повинен потрапити в проміжок між 30 і 40 км.
Якщо він потрапляє в даний проміжок то з'являється напис «Потрапив», інакше якщо не долетів «Недоліт» або «Переліт»

if x> = 30 then
if x <= 40 then
writeln ( 'Потрапив') - вкладений умовний оператор

else writeln ( 'Переліт')

else
writeln ( 'Недоліт');

v ar a, b: integer;
imya. string;
d: char;
begin
Writeln ( 'Як тебе звати?');
Readln (imya);
Writeln ( 'Чим займемося', imya, 'складанням або множенням?');
Readln (d);
If d = '+' then
begin
Writeln ( 'Введіть перше число');
Read (a);
Writeln ( 'Введіть друге число');
Read (b);
Writeln ( 'Сума чисел =', a + b);
end
else
begin
Writeln ( 'Введіть перше число');
Read (a);
Writeln ( 'Введіть друге число');
Read (b);
Writeln ( 'Твір чисел =', a * b);
end;
end.

Діалог з комп'ютером


Комп'ютер. "Як тебе звати?"
Користувач: «Вася»
Комп'ютер: Чим займемося Вася складанням або множенням? »
Користувач вводить знак «+» або «*»
Якщо «+»:
Комп'ютер: «Введіть перше число»
а
Комп'ютер: «Введіть друге число»
b
Комп'ютер: Сума чисел = ...... »
Якщо «*»:
Комп'ютер: «Введіть перше число»
а
Комп'ютер: «Введіть друге число»
b
Комп'ютер: Твір чисел = ...... »

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


VAR Otmetka: Integer;

WriteLn ( 'Яку позначку ти отримав по краснопису?');
ReadLn (Otmetka);
CASE otmetka OF
1,2: WriteLn ( 'Кошмар!');
3: WriteLn ( 'Неважливо');
4: WriteLn ( 'Непогано');
5: WriteLn ( 'Молодець!');
ELSE WriteLn ( 'Таких відміток не буває')
END

Основою програми є оператор варіанту CASE (читається "Кейс", перекладається "випадок"). Привід OF Новомосковскется "ев". Весь оператор CASE потрібно розуміти так:

У РАЗІ ЯКЩО відмітка дорівнює
1 або 2 друкуй 'Кошмар!'
3 друкуй 'Неважливо'
4 друкуй 'Непогано'
5 друкуй 'Молодець!'
ІНАКШЕ друкуй 'Таких відміток не буває'
КІНЕЦЬ оператора case


В процесі виконання оператора case комп'ютер порівнює значення змінної Otmetka по черзі з усіма значеннями, перерахованими перед двокрапкою. Натрапивши на збігається значення, він виконує оператор, що стоїть після двокрапки. На цьому виконання оператора case завершується. Якщо ж збігається значення так і не знайшлося, то виконується оператор, що стоїть після слова else (в нашій програмі він корисний на той випадок, якщо учень, хворий на манію величі і вводить число 6). Після else може стояти і ланцюжок операторів, записаних через крапку з комою.
У оператора case є істотне обмеження - змінна, що стоїть після слова case, повинна бути так званого порядкового типу.

в якості змінної-селектора можна використовувати змінну цілого (integer) або символьного (char) типу.

Введіть суму покупки 1200
Вам надається знижка 10%
Сума покупки з урахуванням знижки: 1080.00 руб

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

Введіть два цілих числа
34 67
34 менше 67.

3. Фірма набирає співробітників від 25 до 40 років включно. Ввести вік людини і визначити, чи підходить він фірмі (вивести відповідь до 25 років - «Ще молодий», старше 40 - «Пора на спокій», 25 - 40 - «Ви нас влаштовуєте».)

4. Написати алгоритм, який за номером дня тижня - цілому числу від 1 до 7
видавати в якості результату
назва уроків в класі в відповідний день.