Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП_Лаб_Гриф.doc
Скачиваний:
7
Добавлен:
14.11.2019
Размер:
2.81 Mб
Скачать

4.4 Питання для контролю і самостійної роботи

  1. Які вирази можна використовувати в операторі циклу ?

  2. Як інтерпретуються значення Виразів 1, 2, 3 операторів циклу ? Якого типу можуть бути ці Вирази ?

  3. Чи можна записати наступні оператори: for( ; ; ); while(); do {…} while(i - -); for( ; i && j; i++, j - -); for( int i, k; ; i += 2) j++; k -=5; ? Поясніть чому можна чи не можна ?

  4. Поясніть результати роботи приведених операторів.

  5. У чому різниця в роботі операторів із передумовою і з постумовою ?

  6. Яке призначення виразів в операторі for ?

  7. Навіщо використовуються складені оператори (операторні дужки) ?

  8. Назвіть порядок обчислення й інтерпретації виразів в операторі for.

  9. Поясніть роботу операторів у прикладах.

  10. За допомогою якого оператора можна припинити виконання поточної ітерації в циклі ?

  11. За допомогою яких операторів можна достроково завершити виконання операторів циклу ?

5 Заняття № 5

Розгалуження обчислювального процесу.

Оператори, які реалізують розгалуження: if... Else, switch,

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

(2 години)

Ціль роботи: вивчити реалізацію в мові С обчислювальних процесів, які реалізують розгалуження; навчитися писати програми, використовуючи оператори: розгалуження if...else, переключення switch у сукупності з оператором розриву break та оператором переходу goto, а також тернарну умовну операцію ( ? : ).

5.1 Теоретичні відомості

Обчислювальний процес, що розгалужується, застосовується в тих випадках, коли необхідно зробити вибір одного з варіантів подальших дій чи обчислень у залежності від поточних значень перемінних і логічних умов. Наприклад, коли необхідно зробити обчислення з однієї чи з іншої формули.

Оператор if…else (якщо…інакше)

Формат оператора if…else приведений нижче:

If (<Вираз>) <Оператор_1> [else <Оператор_2>]

Дії оператора залежать від значення виразу. Реалізація різних можливостей виконується такими способами: якщо <Вираз> у дужках не дорівнює (“Істина”), то буде виконуватись <Оператор_1>, у противному випадку, якщо зазначений <Вираз> дорівнює (“Неправда”), то буде виконуватися <Оператор_2> у блоці else, якщо він присутній (таблиця 5.1).

У тілі оператора if може знаходитися один чи більше операторів. Якщо повинні виконуватися два чи більше операторів, то необхідно використовувати операторні дужки { … }. <Вираз> являє собою запис логічної умови чи умов.

Таблиця 5.1- Приклади застосування оператора if…else

Приклади

Приклади

1

if( i <= j)...;

4

if( a ){…} else{…};

2

if( size = = a)...;

5

if( !a ){…} else{…}

3

if( t > 10 && v <3 ) ..;

6

if( !t || v >5 ) ..;

У першому випадку <Вираз> є “Істина”, якщо значення перемінної i буде меншим чи дорівнювати значенню перемінної j. У другому випадку умова буде істинною, якщо значення перемінних size і a будуть рівними. У третьому випадку істина буде дотримуватися, коли перемінна t буде більше десяти “ І ” (&&) перемінна v буде менше трьох. У четвертому випадку перший блок буде виконуватися при довільних а не рівних , у противному випадку виконується блок після else. У п'ятому виконуються дії, які є зворотними зазначеним в четвертому варіанті.

Замість перемінних можна використовувати вирази, що будуть безпосередньо обчислюватися, наприклад if((i + 2) / 3 < 4 * j ).

Основні операції відношення, що ставляться між перемінними, які порівнюються приведені в таблиці 5.2. Більш повна інформація приведена в занятті № 6.

Таблиця 5.2 – Операції відношення

Назва операції

Назва операції

= = - операція "дорівнює"

(Не плутати з присвоюванням "=")

<= - операція "менше чи дорівнює"

! = - операція "не дорівнює"

> - операція "більше"

< - операція "менше"

> = - операція "більше чи дорівнює"

Основні логічні операції, що ставляться між виразами, які порівнюються (якщо їх два, як у прикладі 3, чи більше), приведені в таблиці 5.3.

Таблиця 5.3 – Логічні операції

Назва операції

Приклади

! - операція "НЕ"

if( !(num%2) )...; //Істина, якщо num не є парною

&& - операція "І"

if( j >= 10 && !v ) ...;

|| - операція "АБО"

if( i + n*2 < с || i%2 = 0 )...;

Детально логічні операції будуть розглянуті в наступній роботі. Нижче приведений фрагмент програми, що виконує наступні дії: запитує на введення три числа і видає в результаті порівняння найменше з них. Оператор if…else допускає можливість вкладеності при розгалуженні, що забезпечує гнучкість реалізації логіки і компактність запису операторів.

Приклад застосування оператора if…else

...

printf("Ввести три числа через пробіл: ");

scanf(" %d%d%d ", &a, &b, &c);

if (a<=b && a<=c) printf("\ n Найменше: %d", a);

else

if (b<=a && b<=c) printf("\ n Найменше: %d", b);

else printf("\ n Найменше: %d", c);

...