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

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

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

Для програмування алгоритмів, що розгалужуються, в мові Сі є декілька різних засобів. До них відносяться розглянута вище операція умови?:, умовний оператор 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. Дано три дійсні числа. Звести в квадрат ті з них, значення яких позитивні, і в четверту ступінь — негативні.

  2. Дані дійсні числа х і в, не рівні один одному. Менше з цих двох чисел замінити половиною їх суми, а більше — їх подвоєним добутком.

  3. Послуги телефонної мережі оплачуються за наступним правилом: за розмови до А хвилин в місяць — B крб., а розмови понад встановлену норму оплачуються з розрахунку C крб. за хвилину. Написати програму, що обчислює плату за користування телефоном для введеного часу розмов за місяць.

2.

  1. Написати програму, яка по заданих трьох числах визначає, чи є сума яких-небудь двох з них позитивною.

  2. Відомо, що з чотирьох чисел a1, а2, a3 і а4 одне відмінне від трьох інших, рівних між собою; привласнити номер цього числа змінної n.

  3. Скласти програму, яка перевіряла б, чи не наводить підсумовування двох цілих чисел А і В до переповнювання (тобто до результату більшому чим 32 767). Якщо буде переповнювання, то повідомити про це, інакше вивести суму цих чисел.

3.

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

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

4.

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

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

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.

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

Література

7

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