Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_Ч1(программирование).doc
Скачиваний:
52
Добавлен:
01.03.2016
Размер:
1.83 Mб
Скачать

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

Конструкція swith дозволяє ефективно реалізувати численні розгалуження у тих випадках, коли вибір визначається значеннями змінної порядкового типу (int, char).

Синтаксис оператору swith представлено на рисунку 4.10.

Рисунок 4.10 – Синтаксис оператора swith

У цьому описі < вираз > - це вираз, значення якого визначає подальше виконання оператора. В окремому випадку < вираз > може бути просто змінною. Результат обчислення виразу може бути тільки ціле число або символ.

<константа > – це мітка даного варіанту, яка може бути константою або виразом. Значенням константи або результатом обчислення виразу також має бути ціле число або символ. Порядок запису міток довільний, але вони мають бути різними. Останній варіант, що починається словом default, не є обов’язковим. Мітка відділяється від оператора двокрапкою.

< оператор > визначає дії, які повинні бути виконані, якщо < вираз > приймає значення константи. В якості оператора може використовуватися і складений оператор.

Порядок виконанняоператораswithописанийнижче:

  • спочаткуобчислюється значення виразу;

  • далі,отримане значенняпослідовнопорівнюється зі значеннямиконстант;

  • якщо значення виразу збігається з однією із міток, то виконується оператор цього варіанту і усі наступні за ним, включаючи default, якщо раніше не зустрівся оператор переривання break;

  • якщозначеннявиразуне збігається з жодною із міток,товиконуєтьсяоператорпіслясловаdefaul, якщо ця частина присутня.

В якості прикладу (рисунок 4.11) розглянемо функцію, що опрацьовує номер варіанту вибраного з меню і відповідно до цього задає коефіцієнти квадратного рівняння. Ця функція може стати у нагоді під час тестування програми обчислення коренів квадратного рівняння. Внаслідок того, що кожний із варіантів виконується окремо і не пов'язаний з іншими, виникає необхідність кожен варіант завершувати оператором break.

Варіант default у цьому прикладі не використовується.

Рисунок 4.11 –Приклад використання оператора swith

      1. Оператор переходу goto

Цей оператор забезпечує перехід до іншого оператора, що позначений заданою міткою. Мітка, до якої відбувається перехід може бути розташована як до так і після оператора goto. Синтаксис оператора goto наведено на рисунку 4.12.

Рисунок 4.12– Синтаксис оператора goto

Оператор goto використовується рідко, тому що він заплутує програму і робить її малозрозумілою.

Реализація проекту«if_switch»

У цьому проекті студент повинен реалізувати алгоритм розв'язання квадратного рівняння. Необхідно передбачити обробку будь-яких комбінацій значень коефіцієнтів рівняння. Проект має також передбачати тестування усіх можливих варіантів роботи алгоритму.

      1. Початковий інтерфейс проекту

Після запуску програми на консолі має з’явитися перелік варіантів роботи з програмою і пропозиція користувачеві (prompt) вибрати один із варіантів. На рисунку 4.13 наведено вигляд консолі після запуску програми.

Рисунок 4.13 – Вигляд консолі після запуску програми

Наведений перелік варіантів надає можливість протестувати реалізацію різних гілок алгоритму розв’язання квадратного рівняння і порівняти отримані результати з розрахунковими.

      1. Допоміжні файли

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

Рисунок 4.14 – Директиви #include програмного файлу

Файл iostream забезпечує реалізацію обміну інформацією з консоллю.

Файл cmathзабезпечує доступ до математичних функцій.

Файл cstdlib забезпечує доступ до функції exit().

      1. Прототипи функцій

На рисунку 4.15 наведено перелік функцій, які будуть використовуватися у файлі програми.

Рисунок 4.15 – Прототипи функцій програмного файлу

Функція run_variant(int) опрацьовує номер варіанту вибраного з меню і відповідно до цього задає коефіцієнти квадратного рівняння. Текст цієї функції наводився вище, як приклад використання оператору switch.

Функція user_koef() забезпечує введення з консолі довільних значень коефіцієнтів квадратного рівняння.

Функція test_koef(float, float, float) забезпечує аналіз коефіцієнтів квадратного рівняння та прийняття рішення про виклик функцій розв’язання або квадратного рівняння, або лінійного.

Функція kv_riv(float, float, float) забезпечує розв’язання квадратного рівняння.

Функція lin_riv(float, float) забезпечує розв’язання лінійного рівняння.