День 2
Тема: створення, введення і виконання програм розгалуженої структури із використанням операторів if, if-else, switch.
Мета роботи: сформувати навички написання програм розгалуженої структури з використанням умовного оператора if, вміння використовувати умовні оператори if, if-else, ?: , switch при розв’язуванні практичних завдань; знання основних відмінностей в реалізації цих структур на мовах С/С++ та Pascal.
Обладнання: IBM - сумісні ПК.
Програмне забезпечення: ОС Windows, CП Borland C++ 5.02.
Теоретичні відомості:
Всі розглянуті раніше приклади програм виконувалися у порядку слідування операторів, що виконуються послідовно одна за одною винятково по одному разу. Однак на практиці можливості подібних лінійних алгоритмів дуже обмежені. Більшість задач потребує від програми прийняття рішення в залежності від різних ситуацій в певних умовах. Для здійснення керування порядком виконання окремо взятих частин програми використовують так звані умовні оператори.
Як і Паскаль, так і Сі підтримують дві конструкції виконання за умовою: оператор if/then/else (Паскаль) та оператор case (Паскаль).
Дана практична робота присвячена вивченню конструкції if/else. Тому спочатку розглянемо один з умовних операторів та його особливості в мові Сі - if/else.
Оператор if/then/else дуже простий в обох мовах:
Паскаль: |
Сі: |
if <булево выраж> then <оператор> else <оператор> |
if (<выраж>) <оператор>; else <оператор>; |
І в Паскалі, і в Сі else (інакше)- необов’язкова частина, а <оператор> може бути заміненим блоком, як описано в попередній лекції.
Однак існують декілька важливих розбіжностей:
►в Сі <выраж> повинно бути у круглих дужках;
►в Сі відсутній then;
►в Сі після оператора обов’язково ставиться крапка з комою.
Наведемо декілька прикладів на Паскалі та на Сі:
Паскаль: |
Сі: |
if B=0 then Writeln (‘C is undefined’) else begin C:=A div B; Writeln (‘C= ’,C) end; C:=A*B; if C<>0 then C:=C+B else C:=A |
if (b==0) puts (“c is undefined”); else { c=a/b; printf (“c=%d\n”,c); } if ((c=a*b)!=0) c+=b; else c=a; |
Оператор if
Оператор if призводе до виконання певних гілок програми в залежності від результату перевірки деякої умови на істинність:
If (умова)
оператор1;
оператор2;
Умова може бути будь-яким виразом, але найчастіше вона містить оператори порівняння. Якщо умова приймає істинне значення (true) виконується оператор1. В противному випадку () виконання програми переходить до оператору2. В конструкціях мови С++ оператори можуть бути блочними. Це означає, що в залежності від прийнятого рішення виконується не один оператор, а цілий блок операторів (блок виокремлюється фігурними дужками {}).
Оператор if-else
Оператор if з ключовим словом else має наступний вигляд:
If (умова)
оператор1;
else
оператор2;
оператор3;
Якщо умова виконується, здійснюється перехід до оператору1 з наступним переходом до оператору3. У випадку, коли умова приймає хибне значення, програма виконує гілку, яка містить оператор2, а потім переходить до оператору3.
Одними з типових помилок при використанні оператора if є:
!☻ пропуск фігурних дужок для позначення блоку виконуючих операторів;
!☻ використання в умовних конструкціях оператора присвоювання замість оператора порівняння (= замість = =).