Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
задания день 2 С++.doc
Скачиваний:
1
Добавлен:
06.09.2019
Размер:
89.6 Кб
Скачать

День 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 є:

!☻ пропуск фігурних дужок для позначення блоку виконуючих операторів;

!☻ використання в умовних конструкціях оператора присвоювання замість оператора порівняння (= замість = =).