ОП_Лекція_03

Содержание

Слайд 2

Розгалуженим називається алгоритм, в якому вибирається один з декількох можливих варіантів обчислювального

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

 

K=K+1, якщо X>0

Слайд 3

Оператор if

Оператор if дозволяє перевірити умову і виконати оператор коду лише у

Оператор if Оператор if дозволяє перевірити умову і виконати оператор коду лише
випадку, якщо умова буде істинною (у випадку скороченої форми запису).
Якщо умова буде хибною, можна виконати інший оператор (у випадку повної форми).

Слайд 4

Синтаксис оператора if (скорочена форма):

Наприклад:

if (a > b) printf("A більше ніж B");

умова

оператор

Синтаксис оператора if (скорочена форма): Наприклад: if (a > b) printf("A більше ніж B"); умова оператор

Слайд 5

Приклад:

if (a > b) printf("A більше ніж B");

Можна записувати і так:

if (a

Приклад: if (a > b) printf("A більше ніж B"); Можна записувати і
> b) printf("A більше ніж B");

А так не правильно:

Слайд 6

Оператор if може містити частину else (повна форма):

if

(

умова

)

оператор1;

else

оператор2;

виконається, якщо умова істинна

виконається, якщо

Оператор if може містити частину else (повна форма): if ( умова )
умова хибна

Слайд 7

Приклад:

if (a > b) printf("A більше ніж B");
else printf("A не більше

Приклад: if (a > b) printf("A більше ніж B"); else printf("A не
В");

Можна записувати і так:

if (a > b)
printf("A більше ніж B");
else
printf("A не більше B");

Слайд 8

При записі умов використовуються
операції порівняння:

При записі умов використовуються операції порівняння:

Слайд 9

Складена команда

Складена команда (якщо є потреба декілька команд трактувати як одну) -

Складена команда Складена команда (якщо є потреба декілька команд трактувати як одну)
це конструкція виду:
{
<команда 1>;
...
<команда N>;
}

Слайд 10

Розв’язання:
Ввести A, B, C
Обрахувати дискримінант
Якщо D>0, то обчислити x1 та x2. Вивести

Розв’язання: Ввести A, B, C Обрахувати дискримінант Якщо D>0, то обчислити x1
x1 та x2.
Інакше, якщо D==0, то обчислити x. Вивести x.
Інакше (якщо D<0), то вивести повідомлення “коренів немає”

Приклад.
Завдання: знайти корені квадратного рівняння, якщо дано його коефіцієнти.

?

Слайд 12

float a, b, c, D, x1, x2, x;
printf("Введіть коефіцієнти a b c");
scanf("%f

float a, b, c, D, x1, x2, x; printf("Введіть коефіцієнти a b
%f %f", &a, &b, &c);
D = b*b - 4 * a*c;
if (D > 0)
{
x1 = (-b + sqrt(D)) / (2 * a);
x2 = (-b - sqrt(D)) / (2 * a);
printf("x1 = %f\nx2 = %f", x1, x2);
}
else
if (D == 0)
{
x = -b / (2 * a);
printf("x = %f\n", x);
}
else printf("Коренів немає\n");

Слайд 13

Операції порівняння дають в результаті значення:
1, якщо умова істинна
0, якщо

Операції порівняння дають в результаті значення: 1, якщо умова істинна 0, якщо умова хибна
умова хибна

Слайд 14

Приклад:

int x = 10, y = 15;
printf("x>y -> %d\n", x > y);
printf("x

Приклад: int x = 10, y = 15; printf("x>y -> %d\n", x
-> %d\n", x < y);

Результат:

x>y -> 0 x 1

Отже, результатом операції є
ціле число 0 або 1

Слайд 15

Тому замість умови можна використовувати будь-який вираз:

А значенням виразу є число (ціле

Тому замість умови можна використовувати будь-який вираз: А значенням виразу є число (ціле або дробове)
або дробове)

Слайд 16

У мові С під поняттям «істина» вважається будь-яке не нульове значення.

А поняттю

У мові С під поняттям «істина» вважається будь-яке не нульове значення. А
«хиба» відповідає значення нуль.

Слайд 17

Якщо в оператор if замість умови передавати вираз, то

Якщо в оператор if замість умови передавати вираз, то

Слайд 18

Приклад:

Приклад:

Слайд 19

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

Завдання: Дано числовий проміжок від a до b. Визначити чи входить

Логічні операції Завдання: Дано числовий проміжок від a до b. Визначити чи
число c у цей проміжок.

Математичний запис: a < c < b

Це має такий зміст: a < c і с < b

В мові С для запису і використовується
операція &&

Слайд 20

Математичний запис: a < c < b

У мові С таку умову можна

Математичний запис: a У мові С таку умову можна записати так: еквівалентний:
записати так:

еквівалентний: b > c > a

1) a < c && с < b

2) c > a && с < b

3) a < c && b > c

4) c > a && b > c

всі ці виразі еквівалентні

if (a < c && b > c) printf("a < c < b");

Слайд 21

Математичний запис: a < b < c < d

У мові С таку

Математичний запис: a У мові С таку умову можна записати так: if
умову можна записати так:

if (a < b && b < c && c < d)
printf("a < c < b < d");

int day;
printf("Введіть номер дня тижня:");
scanf("%d", &day);
if (day > 0 && day < 8)
...
else
printf("Помилка. Такого дня не існує");

Ще один приклад:

Слайд 22

Логічні вирази та логічні операції

Логічний вираз – це засіб записування умов у

Логічні вирази та логічні операції Логічний вираз – це засіб записування умов
задачах відшукання даних, що задовольняють деякий критерій.
Логічний вираз може набувати значення true (істинність) або false (хибність).
Логічні вирази бувають прості і складені.
Простий – це два арифметичні вирази, з’єднані символом відношення (операцією порівняння), а складений – це прості логічні вирази, з’єднані між собою логічними операціями:
1) ! – не,
2) && - і,
3) || - або.

Слайд 23

При записі складних умов можна використовувати логічні операції:

При записі складних умов можна використовувати логічні операції:

Слайд 24

Кожна логічна операція має свою таблицю істинності.

Кожна логічна операція має свою таблицю істинності.

Слайд 25

Операція || (логічне або) дає 1, якщо хоча б один операнд є

Операція || (логічне або) дає 1, якщо хоча б один операнд є
істиною

Операція && (логічне і) дає 1 тільки у випадку, коли обидва операнди є істиною

Слайд 26

Приклад. Розглянемо деякі логічні операції та їхні значення. Нехай а=1, b=7.

Приклад. Розглянемо деякі логічні операції та їхні значення. Нехай а=1, b=7.

Слайд 27

Приклад.
Написати фрагмент коду, який для дійсного x обчислює значення f(x) та присвоює

Приклад. Написати фрагмент коду, який для дійсного x обчислює значення f(x) та
його дійсній змінній y.
Перепишемо формулу обчислення f(x) у еквівалентному вигляді:

Слайд 28

Безпосередньо за формулою запишемо такий фрагмент коду:
if (x<=-5) y=0;
if (-5

Безпосередньо за формулою запишемо такий фрагмент коду: if (x if (-5 if
x<3) y=2*x;
if (3<=x && x<=7) y=x;
if (7

Цей код є правильним, але неоптимальним за кількістю виконуваних операцій.

Отже, модифікуємо фрагмент коду наступним чином:
if (x<=-5) y=0;
else if (-5else if (3<=x && x<=7) y=x;
else if (7

Слайд 29

Цей код є правильним, але неоптимальним за кількістю виконуваних операцій.
Отже, модифікуємо фрагмент

Цей код є правильним, але неоптимальним за кількістю виконуваних операцій. Отже, модифікуємо
коду наступним чином:
if (x<=-5) y=0;
else if (x<3) y=2*x;
else if (x<=7) y=x;
else y=x+2;
Имя файла: ОП_Лекція_03.pptx
Количество просмотров: 17
Количество скачиваний: 0