ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 20.08.2024
Просмотров: 11
Скачиваний: 0
Технологія створення програм
Лабораторна робота №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 Це задовільно!
Це добре!
Це відмінно!
Немає такої оцінки!
В цьому випадку виконалися оператори на всіх гілках, починаючи з тієї, яка помічена константою 3.
Можливі завдання, в яких такий порядок виконання гілок оператора вибору може виявитися корисним. У наступному фрагменті програми відбувається піднесення дійсного числа х до цілого ступеня n, де n змінюється в діапазоні від 1 до 5.
-
:
-
Рис розфасований в два пакети. Маса першого — t кг, другого, — n кг Скласти програму, що визначає:
-
який пакет важчий — перший або другий;
-
масу важчого пакету.
В. Напісать програму, яка аналізує дані про вік і відносить людину до однієї з чотирьох груп: дошкільник, учень, працівник, пенсіонер. Вік вводиться з клавіатури.
С. До фіналу конкурсу кращого по професії «Фахівець електронного офісу» були допущені троє: Іванов, Петров, Сидоров. Змагання проходили в три тури. Іванов в першому турі набрав t1 балів, в другому — n1, в третьому — р1. Петров — t2, n2, р2 відповідно; Сидоров — t3, n3, р3. Скласти програму, що визначає, скільки балів набрав переможець.
2.
Дано три числа а, b, с. Визначити, яке з них рівне d. Якщо жодне не рівне d, то знайти max(d — а, d —b, d —с).
Дано чотири точки А1(х1, у1), А2(x2,у2), А3(x3, у3), А4(х4, у4). Визначити, чи будуть вони вершинами паралелограма.
Дано три крапки А1(х1, у1), B(х2, у2), і C(х3, у3). Визначити, чи будуть вони розташовані на одній прямій. Якщо ні, то обчислити площу ABC.
Дані дійсні числа а, b, с. Подвоїти ці числа, якщо а >= b >= c, і замінити їх абсолютними значеннями, якщо це не так.
3.
-
Написати програму для вирішення системи лінійних рівнянь
-
Дано три позитивні числа. Визначити, чи можна побудувати трикутник із сторонами, довжини яких дорівнюють цим числам. Якщо можливо, то відповісти на питання, чи є він гострокутним.
-
Дана крапка А(х, в). Визначити, чи належить вона трикутнику з вершинами в крапках (х1, у1), (х2, у2), (x3, y3).
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.
В кожному випадку повинні виводитися відповідне рішення або повідомлення.
Література
-
Подбельский В.В. Язык Cu ++: Учебное пособие. - М.: Финансы и статистика,1995, - 560 с.
-
Страуструп Б. Язык программирования Сг ++. - М.: Радио и связь, 1991. - 352 стр.
-
Собоцинский В.В. Практический курс Turbo Cu ++. Основы объктно- ориентированного программирования. - М.: Свет, 1993. - 236 с.