Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
3
Добавлен:
30.05.2020
Размер:
148.99 Кб
Скачать

Лабораторна робота № 3

Тема: Реалізація алгоритмів, що розгалужуються.

Мета: вивчити операції порівняння, логічні операції, оператори передачі управління if, switch, break, навчитися користуватися простими компонентами організації перемикань (СheckBox, RadioGroup). Написати і відлагодити програму з розгалуженнями.

Теоретична частина Оператор умовної передачі управління if

Для вибору однієї з гілок обчислень застосовується оператор умовного переходу :

if (вираз) оператор 1;

else оператор 2;

обчислюється вираз, і якщо його значення не дорівнює 0 (істинно), то виконується оператор 1, інакше - оператор 2,

наприклад:

if(x>y) max = x;

else max = y;

Якщо оператори 1, 2 містять більше одного оператора, то вони полягають у фігурні дужки { }, тобто застосовується блок.

Конструкція else може бути відсутня і таку форму називають скороченою, тоді у разі помилковості умови управління передається на оператор, що йде за if.

Якщо оператори 1, 2 у свою чергу є операторами if, то такий оператор називають вкладеним, при цьому ключове слово else належить найближчому передуванню if.

Наприклад, знайти найбільше значення з трьох чисел x, y, z:

if (x>y)

if (x>z) max=x;

else max=z;

else if(y>z) max=y;

else max=z;

Операції порівняння : < (менше) <= (менше або рівно) > (більше) >= (більше або рівно) != (не рівно) = = (рівно). Пари символів розділяти не можна.

Операції порівняння бінарні, їх загальний вигляд:

Операнд 1 знак операції Операнд 2

Операндами операцій порівняння можуть бути дані будь-яких базових типів, значення яких перед порівнянням перетворяться до одного типу.

Логічні операції використовуються в якості умов при складанні складніших виразів. Приведемо їх перелік в порядку спадання пріоритету :

! (заперечення або логічне НЕ - унарна операція) && (кон'юнкція або логічне І) || (диз'юнкція або логічне АБО).

Наприклад:(x<=100)

((!x((z==1)&&(k>0))

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

Тернарная (умовна) операція ?:

Її загальна форма:

Операнд 1 ? Операнд 2: Операнд 3

Якщо значення операнда 1 істинно (не рівне 0), то результатом операції є операнд 2, інакше - операнд 3.

Наприклад, знайти найбільше з двох чисел: max = a>b ? a: b;

Оператор вибору switch

Загальна форма оператора вибору (перемикача) :

switch(вираз){

case const_1: оператори; break;

case const_N: оператори; break;

default: оператори;

}

Обчислюється вираз і перевіряється, чи співпадає його результат зі значенням однієї з констант. При збігу виконуються оператори цього блоку case. Значеннями const_1,., const_N можуть бути тільки цілі або символьні константи. Конструкція default виконується, якщо результат виразу не співпав ні з однією з констант, і може бути відсутнім. Оператор break виконує достроковий вихід з switch (після виконання гілки case усі інші будуть опущені). Якщо оператор break в case не записаний, то виконуватимуться оператори наступних гілок case до появи оператора break, або до завершення оператора switch.

Наприклад:

switсh(i){

case 1: f=pow(x, 2); break;

case 2: f=fabs(x); break;

case 3: f=sqrt(x); break;

default: printf("Помилка"!); exit(1);

}

f=f+5;