| Главная страница | Образовательный портал Как узнать результаты егэ Стихи про летний лагерь 3агадки для детей |
|
|
![]() Методичка_Ч1. Методичні вказівки до лабораторного практикуму та самостійної роботи з дисципліни Програмування для студентів напрямів підготовки
Операції над даними логічного типуДля даних типу bool визначені дві бінарних операції – «і» (&&) та «або» ( || ). Результати застосування цих операцій до можливих комбінацій логічних операндів наведені в таблиці 4.2. Цю таблицю слід знати, так само як і таблицю множення. Крім бінарних, визначена одна унарна операція - «ні». У мові С ця операція позначається знаком оклику (!). Операція змінює значення логічної змінної на протилежне. Наприклад, результатом обчислення виразу !(2> 3) буде true, а результат обчислення виразу !(sin (3.1416 / 2) <> 0) буде false.
Логічні виразиВирази, в яких використовуються операнди логічного типу та операції над ними, називаються логічними. Результатом обчислення такого виразу може бути тільки true або false. Частинами логічного виразу можуть бути арифметичні вирази, які беруть участь в операціях порівняння. Записуючи логічні вирази слід враховувати старшинство операцій. Пріоритети операцій, які можуть брати участь в логічних виразах, наведені в таблиці 4.3. .
Якщо доводиться в першу чергу обчислювати операції які мають найнижчий пріоритет, то такі операції беруться в дужки. Слід також брати до уваги, що логічні операції в С не обов’язково обчислюються повністю. Як тільки результат стає однозначним, подальші обчислення припиняються. 4.1.2 Алгоритми з розгалуженнямиУ повсякденному житті ми часто зустрічаємося з такими видами алгоритмів. Наприклад, якщо йде дощ, ми беремо парасольку, а якщо мороз, надягаємо теплу куртку. Таким чином, у алгоритмі, що має розгалуження, деякі дії можуть виконуватися тільки за певних умов. При розробці алгоритмів, що розгалужуються, корисно зображувати схеми алгоритмів, використовуючи спеціальні позначення. Схема алгоритму являє собою як би план написання програми. Складання таких схем не вимагає багато часу, але істотно підвищує продуктивність праці програміста. Деякі умовні позначення, що використовуються при складанні схем алгоритмів, наведені в таблиці 4.4. При зображенні алгоритму окремі блоки нумеруються і з'єднуються лініями. Стрілки використовуються тільки для зворотних напрямків (вгору і ліворуч). Таблиця 4.4 - Умовні позначення для схем алгоритмів
В якості прикладу розглянемо схеми алгоритму розв’язання квадратного рівняння ax2 + bx + c = 0. На рисунку 4.1 зображено схему алгоритму, де аналізується перший коефіцієнт рівняння і приймається рішення, чи є рівняння квадратним, або воно лінійне. У першому випадку буде викликана процедура вирішення квадратного рівняння, у другому - процедура рішення лінійного рівняння. ![]() Рисунок 4.3- Схема алгоритму аналізу коефіцієнтів квадратного рівняння На рисунку 4.2 зображена схема алгоритму рішення лінійного рівняння. У цьому алгоритмі аналізуються значення решти коефіцієнтів. Якщо обидва вони дорівнюють нулю, то рівняння 0х + 0 = 0 задовольняє будь-яке значення х. Якщо ж b дорівнює 0, а c не дорівнює 0, то рівняння рішення не має. В інших випадках корінь рівняння визначається за формулою r =-c / b. ![]() Рисунок 4.4 – Схема алгоритму розв'язання лінійного рівняння Схему алгоритму розв'язання квадратного рівняння, що повинен виконуватися, якщо коефіцієнт «а» не дорівнює 0, слід скласти самостійно і привести в звіті. Алгоритм повинен передбачати аналіз дискримінанта та виведення значень дійсних або комплексних коренів. 4.1.3 Програмування розгалуженьОператор розгалуження if…elseОператор if ... else дозволяє вибрати один з двох можливих варіантів виконання програми. Синтаксис запису цього оператора представлений на рисунку 4.3. ![]() Рисунок 4.5– Синтаксис оператора if … else Виконується цей оператор наступним чином:
Як приклад використання цього оператора можна привести програмну реалізацію схеми алгоритму зображеного на рисунку 4.4. void test_koef(float a, float b, float c) { if (a==0) // Звернення до функції рішення лінійного lin_riv(b,c); else // Звернення до функції рішення квадратного рівняння kv_riv(a,b,c); } Рисунок 4.4 – Програмна реалізація алгоритму аналізу коефіцієнтів квадратного рівняння Якщо замість одного оператора потрібно виконати декілька, їх слід об’єднати у блок за допомогою фігурних дужок. У цьому випадку крапка з комою після закриваючої дужки не ставиться. У деяких випадках, при невиконанні умови, що перевіряється, робити нічого не треба, тобто <оператор 2> не потрібен. У цьому випадку оператор if можна застосовувати в скороченій формі. Синтаксис скороченої форми має вигляд, представлений на рисунку 4.5. ![]() Рисунок 4.5– Скорочена форма оператора if Оператор if, як повний так і скорочений, може бути вкладений у інший оператор if. При цьому слід пам’ятати, що кожна else-частина пов’язується з найближчим if. Якщо ж else-частина відноситься до одного з попередніх if, то слід застосовувати фігурні дужки. Приклад використання вкладених операторів if наведено на рисунку 4.6. Стандарт мови С гарантує можливість 15 рівнів вкладення для оператора if. Проте не слід цим зловживати. Вкладені оператори if виглядають зазвичай досить заплутано і часто є причиною виникнення логічних помилок. ![]() Рисунок 4.6– Приклад використання вкладених операторів if Більш зручними і наочними є ланцюжки повних операторів if, в яких після кожного слова else (за винятком останнього) знову йде повний оператор if, рисунок 4.7. Такі ланцюжки зручно використовувати при вирішенні багатоваріантних задач. Вони досить легко аналізуються, за структурою подібні до розглянутого нижче оператору swith, і їх можна застосовувати, на відміну від нього, для перевірки будь-яких умов. ![]() Рисунок 4.7– Приклад ланцюжка повних операторів if Умовна операціяЦю операцію називають ще теренарною операцією. Вона виконується над трьома операндами і записується так, як показано на рисунку 4.8. Рисунок 4.8– Скорочена форма оператора if Тут умова - це вираз, результат якого приводиться до логічного типу. Якщо результат обчислення умови приймає значення “true”, то результатом операції буде значення виразу 1. Якщо результат обчислення умови приймає значення “false”, то результатом операції буде значення виразу 2. На рисунку 4.9 наведено приклад використання вкладеного теренарного оператора у функції для розрахунку стипендії. .Рисунок 4.9– Приклад використання теренарного оператора Оператор вибору swithКонструкція swith дозволяє ефективно реалізувати численні розгалуження у тих випадках, коли вибір визначається значеннями змінної порядкового типу (int, char). Синтаксис оператору swith представлено на рисунку 4.10. ![]() Рисунок 4.10 – Синтаксис оператора swith У цьому описі < вираз > - це вираз, значення якого визначає подальше виконання оператора. В окремому випадку < вираз > може бути просто змінною. Результат обчислення виразу може бути тільки ціле число або символ. <константа > – це мітка даного варіанту, яка може бути константою або виразом. Значенням константи або результатом обчислення виразу також має бути ціле число або символ. Порядок запису міток довільний, але вони мають бути різними. Останній варіант, що починається словом default, не є обов’язковим. Мітка відділяється від оператора двокрапкою. < оператор > визначає дії, які повинні бути виконані, якщо < вираз > приймає значення константи. В якості оператора може використовуватися і складений оператор. Порядок виконання оператора swith описаний нижче:
В якості прикладу (рисунок 4.11) розглянемо функцію, що опрацьовує номер варіанту вибраного з меню і відповідно до цього задає коефіцієнти квадратного рівняння. Ця функція може стати у нагоді під час тестування програми обчислення коренів квадратного рівняння. Внаслідок того, що кожний із варіантів виконується окремо і не пов'язаний з іншими, виникає необхідність кожен варіант завершувати оператором break. Варіант default у цьому прикладі не використовується. ![]() Рисунок 4.11 – Приклад використання оператора swith 4.1.4Оператор переходу gotoЦей оператор забезпечує перехід до іншого оператора, що позначений заданою міткою. Мітка, до якої відбувається перехід може бути розташована як до так і після оператора goto. Синтаксис оператора goto наведено на рисунку 4.12. ![]() Рисунок 4.12– Синтаксис оператора goto Оператор goto використовується рідко, тому що він заплутує програму і робить її малозрозумілою. 3> перейти в каталог файловОбразовательный портал
Как узнать результаты егэ
Стихи про летний лагерь
3агадки для детей | |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||