|
Умовний оператор IF та його опис мовою програмування.
На попередньому занятті ми розглянули, як можна розв’язувати задачі за допомогою комп’ютера та мови програмування і навіть спробували написати кілька так званих лінійних програм. Та на практиці використання знайдеться досить мало випадків коли лінійного програмування буде достатньо для рішення поставлених задач. Універсальна програма не тільки повинна оператори, але й інколи відмовлятися від їх виконання або вибирати найкращій з запропонованих. Саме для цих цілей використовується оператор вибору або як його називають умовний оператор.
З умовним оператором мі вже зустрічалися у графічному представленні програми і як ви пам’ятаєте він може бути представлений у двох графічних формах:
Перша форма повна(мал 1.1): при застосуванні такої форми програма перевіряє поставлену умову і при її виконанні( істинності) виконує оператор№1, у випадку не виконання умови(хибності умови) програма виконує оператор №2.
Друга форма коротка або неповна (мал 1.2): в даному блоці оператор виконується тільки за умови істинності, тобто коли умова виконується в іншому випадку оператор просто пропускається і продовжується виконання програми.
Як у графічній формі так і на мові програмування даний оператор має місце на існування і виглядає він таким чином:
Повна форма запису:
If умова then оператор№1 else оператор№2;
Коментар: перед службовим словом else кома з крапкою не ставиться.
Коротка форма запису:
If умова then оператор№1;
Коментар: при вказані умови слід пам’ятати, що логічний запис повинен представлятися тільки у простому вигляді.
Наприклад :
Х = 0 – умова правильна;
0 < X < 10 – умова не зрозуміла програмі.
Складні умови необхідно представляти у вигляді простих за допомогою логічних зв’язок. У мові програмування Pascal (Delphi) передбачено дві основні логічні зв’язки:
And – всі складові частини умови повинні виконуватись для виконання умови;
OR – хоча б одна з складових умов повинна виконуватись для виконання умови в цілому.
Ну що ж перейдемо від слів до діла розглянемо декілька програм з використанням умовного оператора.
Задача №1.
изначити фізичний стан води за її температурою:
Розв’язок
Відомо що у води три фізичних стана:
T<0 –лід;
t>100 – пара;
0<=t<=100 – рідина.
Останню умову потрібно представити у вигляді двох простих умов пов’язавши їх між собою логічною зв’язкою: (t>=0)and(t<=100). Температура величена дійсна тому і клітинку пам’яті для неї виділяємо типу real. Всі дані відомі можна власне і починати писати программу.
Begin
Write(‘Введіть t= ’);
Readln(t);
If t<0 then write (‘ЛІД’);
If (t>=0)and(t<=100) then write(‘РІДИНА’);
If t>100 then write(‘ПАРА’);
Readln;
End.
З трьох можливих варіантів програма вибирає один вірний варіант з трьох заявлених і виконає відповідний оператор, виводячи на екран з повідомленням-відповіддю.
Задача №2
За кількістю набраних студентом балів оцінити його успішність навчання у даному семестрі. Бали визначають успішність наступним чином:
50 <= bal <= 70 – задовільно
71 <= bal <= 87 – добре
88 <= bal <= 100 – відмінно
Кількість балів визначається цілими числами у проміжку від 0 до 100 балів, робимо висновок, що типом змінної для збереження балів буде byte.
Begin
Write (‘введіть бал успішності студента:’);
Readln(bal);
If (bal >= 0) and (bal <= 49) then write(‘НЕЗАДОВІЛЬНО’);
If (bal >= 50) and (bal <= 70) then write(‘ЗАДОВІЛЬНО’);
If (bal >= 71) and (bal <= 87) then write(‘ДОБРЕ’);
If (bal >= 88) and (bal <= 100) then write(‘ВІДМІННО’);
Readln;
End.
Інколи оператори не обмежуються однією дією, а це викликає суперечку з формою запису, там чітко вказано, що оператор повинен бути тільки один. Тому для рішення таких задач використовуються операторні дужки:
…
End;
Розглянемо приклад:
Задача№3
На одному маленькому квадратному безлюдному острові зі стороною К м(ціле число) мешкали Р потерпілих корабельну аварію Робінзонів. Чи не порушені їхні права на житло, якщо на кожного робінзона повинно припадати S м(ціле число)? Скільком Робінзонам ще вистачить місця на острові, якщо поблизу трапиться нова аварія.
Розв’язок
Для початку визначаємо площу острова на якому мешкають Робінзони: Plostr:=K*K;. Друга дія, що повинна виконуватись – наявність вільного місця на острові VSostr:=Plostr-S*P, і на останок, якщо вільне місце буде то розраховуємо кількість Робінзонів яка б могла розміститися на острові у випадку аварії корабля поблизу острова: KP:=VSostr div P. Визначаємо типи змінних. Так як за умовою задачі сторона острова та площі мають бути цілими числами більшими за нуль але не обмеженими по величині виберемо для них тип integer, кількість людей, що проживають на острові також число ціле і воно може бути більше ніж 255(тип byte) то залишається обрати також тип integer. В результаті ми також отримуємо числа цілі але можливо там будуть і від’ємні значення тому тип змінних визначаємо як integer.
Begin
Write (‘введіть кількість проживаючих на острові Робінзонів:’);
Readln(P);
Write (‘введіть довжину острова у метрах:’);
Readln(K);
Write (‘введіть площу, яка визначена законом для проживання одного Робінзона:’);
Readln(S);
Plostr:=K*K;
VSostr:=Plostr-S*P;
If VSostr < 0 then write(‘Права Робінзонів порушені, так як площі острова не достатньо’)
Else
Begin
If Vostr=0 then write (‘На острові місця вистачить тільки для тих Робінзонів, які там вже проживають’)
Else
Begin
KP:=VSostr div P;
If KP>0 then write(‘ На острові можуть бути поселені ще ’,KP,’ Робінзон(ів)’)
Else write(‘На острові місця вистачить тільки для тих Робінзонів, які там вже проживають ’);
End;
End;
Readln;
End.
Як бачимо з тексту програми, будова програми значно збільшилася і стала складнішою для аналізу та пошуку помилок. Для полегшення її опрацювання можна застосувати полегшений вибір. Саме про це ми поговоримо з вами у наступній статті.
А доти прошу вас закріпити викладений матеріал розв’язком наступних завдань:
Задача №4
Розробити програму виведення інформації про день тижня, – вихідний він чи робочий, якщо задано його номер від 1 до 7 (1 – понеділок).
Задача №5
Дано ціле число N(1<=N<=3) та дійсне число Х. за даним значенням змінної N, яка є номером функції, визначити:
- Sin(X);
- Cos(X);
- Tg(X).
Задача №6
Розробити програму видачі номеру кварталу, до якого відноситься місяць, заданий числом від 1 до 12 (1 – січень), або просто за його назвою.
Якщо ж у вас виникнуть запитання або проблеми з викладеним вище матеріалом прошу написати мені, буду радий допомогти надсилайте повідомлення за допомогою поштової форми нашого сайту з поміткою: «програмування». /написати можна тут/
Related posts:
Автор: Nevedimka |