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

Технологія створення програм

Лабораторна робота №2_5

Для програмування алгоритмів, що розгалужуються, в мові Сі є декілька різних засобів. До них відносяться розглянута вище операція умови?:, умовний оператор if і оператор вибору switch.

Умовний оператор. Формат умовного оператора наступний:

if (выражение) оператор!; else оператор2;

Це повна форма оператора, що програмує структуру повного розгалуження. Звичайний вираз — це деяка умова, що містить операції відношення і логічні операції. Значення виразу наводиться до цілого і інтерпретується відповідно до правила: дорівнює нулю — брехня, не дорівнює нулю — істина. Якщо вираз достеменний, виконується оператор1, якщо помилково — оператор2.

Необхідно звернути увагу на наступні особливості синтаксису умовного оператора:

• вираз записується в круглих дужках;

• крапка з комою після оператора 1 ставиться обов'язково.

Можливе використання неповної форми умовного оператора

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

Ось приклад використання повної форми умовного оператора для знаходження більшого значення з двох змінних а и b:

if(a>b) max=a; else max=b;

Те ж саме завдання може бути вирішене з використанням неповного галуження таким чином:

max=a; if(b>a) max=b;

Це ж завдання можна вирішити за допомогою операції «умова».

Тепер розглянемо приклади програмування вкладених структур, що розгалужуються. Потрібно обчислити функцію sign(x) — значення х, яка визначена таким чином:

Приклад 1. Алгоритм з повними вкладеними розгалуженням:

Приклад 2. Алгоритм з неповним розгалуженням:

Приклад 3. Упорядкувати за збільшенням значення в двох змінних а, b:

У даному прикладі використаний складений оператор — послідовність операторів, ув'язнений у фігурні дужки. У Сі фігурні дужки виконують роль операторних дужок.

Звернете увагу на те, що перед закриваючою фігурною дужкою крапку з комою треба ставити обов'язково, а після дужки крапка з комою не ставиться.

У наступному прикладі повернемося до завдання обчислення площі трикутника по довжинах трьох сторін. Додамо в програму перевірку умови правильності вихідних даних: а, b, з мають бути позитивними, а сума довжин кожної пари сторін трикутника має бути більше довжини третьої.

Приклад 4.

Оператор вибору (перемикач). Формат оператора вибору:

switch (цілочисельне вираження) { case константа!: список_операторов;

case константа2: список_операторов;

default: список операторів;

Останній рядок (default) може бути відсутнім. Виконання оператора відбувається в наступному порядку:

1. Обчислюється вираження.

2. Набутого значення послідовно порівнюється з константами, поміщеними після службового слова case; при першому збігу значень виконуються оператори, що стоять після двокрапки.

3. Якщо ні з однією з констант збігу не сталося, то виконаються оператори після слова default.

Для того, щоб «обійти» виконання операторів на подальших гілках, потрібно прийняти спеціальні заходи, використовуючи операторів виходу або переходу.

Розглянемо фрагмент програми, який переводить числову оцінку знань учня в її словесний еквівалент. Згідно вузівській системі: 5 — «відмінно», 4 — «добре», 3 — «задовільно», 2 — «незадовільно».

Приклад 5.

Тут використовується ще один новий для нас оператор break — оператор виходу. Його виконання завершує роботу оператора вибору, тобто відбувається «обхід» інших гілок. Ось два варіанти результатів виконання цієї програми:

Введіть оцінку: 3    Це задовільно!

Введіть оцінку: 7    Немає такої оцінки!

Якщо на всіх гілках прибрати оператора break, то результат може виглядати таким чином:

Введіть оцінку: 3    Це задовільно!

Це добре!

Це відмінно!

Немає такої оцінки!

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

Можливі завдання, в яких такий порядок виконання гілок оператора вибору може виявитися корисним. У наступному фрагменті програми відбувається піднесення дійсного числа х до цілого ступеня n, де n змінюється в діапазоні від 1 до 5.

  1. :

  1. Дано три позитивні числа а, b, с. Перевірити, чи будуть вони сторонами трикутника. Якщо так, то обчислити площу цього трикутника.

  2. Написати програму знаходження суми більшого і меншого з трьох чисел.

  3. Знайти max{min(а, b), min(з, d)}

  4. Дано три числа а, b, с. Визначити, яке з них рівне d. Якщо жодне не рівне d, то знайти max(d — а, d —b, d —с).

2.

Обчислити значення функції:

3.

Обчислити значення функції:

4.

  1. Дано три позитивні числа. Визначити, чи можна побудувати трикутник із сторонами, довжини яких дорівнюють цим числам. Якщо можливо, то відповісти на питання, чи є він гострокутним.

  2. Дано дійсне число h. З'ясувати, чи має рівняння ax2 + bx + с = 0 дійсного коріння, якщо

Знайти дійсне коріння або повідомити про їх відсутність.

Контрольні питання

1. Скласти програму впорядкування за збільшенням значень в трьох змінних.

2. Скласти програму, яка виводить на екран меню:

1. Перше

2. Друге

3. Третє

і залежно від вибраного пункту видає один з написів: «Отримаєте суп», «Отримаєте картоплю», «Отримаєте компот», «Залишайтеся голодним». Написати два варіанти програми: з використанням умовного оператора if і з використанням перемикача.

3. Скласти програму вирішення квадратного рівняння ах2 + bx + з = 0, що враховує всі можливі варіанти вихідних даних:

1) а = 0, b = 0, с = 0;

2) a = 0, b = 0, с ≠ 0;

3) а = 0, b ≠ 0;

4) а ≠ 0, D ≥ 0 (D — дискримінант);

5) а ≠ 0, D < 0.

В кожному випадку повинні виводитися відповідне рішення або повідомлення.

Література

  1. Подбельский В.В. Язык Cu ++: Учебное пособие. - М.: Финансы и статистика,1995, - 560 с.

  2. Страуструп Б. Язык программирования Сг ++. - М.: Радио и связь, 1991. - 352 стр.

  3. Собоцинский В.В. Практический курс Turbo Cu ++. Основы объктно- ориентированного программирования. - М.: Свет, 1993. - 236 с.

7

Соседние файлы в папке Лабораторні роботи