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

Операції над даними логічного типу

Для даних типу bool визначені дві бінарних операції – «і» (&&) та «або»( || ). Результати застосування цих операцій до можливих комбінацій логічних операндів наведені в таблиці 4.2. Цю таблицю слід знати, так само як і таблицю множення.

Крім бінарних, визначена одна унарна операція - «ні». У мові С ця операція позначається знаком оклику (!). Операція змінює значення логічної змінної на протилежне. Наприклад, результатом обчислення виразу !(2> 3) буде true, а результат обчислення виразу !(sin (3.1416 / 2) <> 0) буде false.

Таблиця 4.2 – Результати виконання логічних операцій

Перший операнд

Другий операнд

Логічі операції

&&

(і)

||

(або)

true

true

true

true

true

false

false

true

false

true

false

true

false

false

false

false

Логічні вирази

Вирази, в яких використовуються операнди логічного типу та операції над ними, називаються логічними. Результатом обчислення такого виразу може бути тільки true або false. Частинами логічного виразу можуть бути арифметичні вирази, які беруть участь в операціях порівняння.

Записуючи логічні вирази слід враховувати старшинство операцій. Пріоритети операцій, які можуть брати участь в логічних виразах, наведені в таблиці 4.3.

.

Таблиця 4.3 – Пріоритети операцій

Операції

Пріоритет

* / %

3

+ -

4

<< >>

5

< > <= >=

6

= = !=

7

& ^ | && ||

8,9,10,11,12

Якщо доводиться в першу чергу обчислювати операції які мають найнижчий пріоритет, то такі операції беруться в дужки.

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

      1. Алгоритми з розгалуженнями

У повсякденному житті ми часто зустрічаємося з такими видами алгоритмів. Наприклад, якщо йде дощ, ми беремо парасольку, а якщо мороз, надягаємо теплу куртку. Таким чином, у алгоритмі, що має розгалуження, деякі дії можуть виконуватися тільки за певних умов.

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

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