Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Pascal розгал прогр.DOC
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
204.29 Кб
Скачать

Обчислювальна техніка та програмування Лекція

Тема: Програми з розгалуженнями. Логічні вирази мови Turbo Pascal.

План лекції:

  1. Актуалізація опорних знань:

  • Програми, мови програмування. Компіляція.

  • Складові програми.

  • Базові конструкції мови Турбо Паскаль:

  • Структура Паскаль - програми:

  • Арифиетичні вирази мовою Турбо Паскаль

  • Оператор, процедура, їхні параметри, формати, виконання;

  • Оператор «Обчислити і присвоїти»;

  • Організація введення-виведення в Turbo Pascal;

  • Приклади лінійних програм;

  1. Новий матеріал:

  • Логічні змінні, константи, вирази;

  • Приклади логічних виразів;

  • Оператор розгалуження;

  • Приклади розгалужених програм.

  1. Контрольні питання:

  • Навіщо потрібен розділ оголошень в програмі?

  • В якому вікні відбувається діалог програми з користувачем7?

  • Як виконується процедура Read? Readln?

  • Що в програмі виконує роль умови розгалуження?

  • Що може бути гілкою розгалуження?

Теоретичні основи

Часто при розрахунках виникають ситуації, коли подальші дії виконуються по різним правилам, формулам залежно від того, чи виконуються певні співвідношення величин. Наприклад, при розв’язку квадратного рівняння спочатку знаходимо дискримінант, а потім, залежно від того, яке він має значення, додатне, нульове чи від’ємне, далі знаходимо або 2 корені, або один, або взагалі нічого не розраховуємо, а пишемо в відповідь „Рівняння не має дійсних коренів”. Маємо 3 різні гілки розрахунків, але виконуватись буде одна. Для визначення розгалуження в алгоритмі використовуємо конструкцію: ЯКЩО <УМОВА> ТО <ГІЛКА 1> АБО <ГІЛКА>;

Умовою може бути логічний вираз, або змінна, якій заздалегідь присвоєний логічний вираз. Найпростіший логічний вираз може мати вигляд співвідношення величин на знаки , , , , , . Логічний вираз може мати одне з двох значень: ІСТИНА (так, умова виконується), або ПОХИБКА (ні, умова не виконується). Іноді треба перевірити кілька співвідношень, в цьому випадку поєднуємо їх союзами І, АБО, що відповідає операціям кон’юнкції та диз’юнкції з логічними виразами.

На мові Turbo Pascal не існує символів , , , бо їх не існує на клавіатурі, тому в логічних виразах їх аналогами є комбінації: >= (), <= (), <> (). Для поєднання кількох виразів в один використовуються службові слова and (також), or (або), not (не). Розглянемо логічні висловлювання, які можуть бути умовою розгалуження і їх подання на мові Turbo Pascal:

  1. Для дійсного x[-2; 5], i x0 - на мові Turbo Pascal: (x>=-2) and (x<=5) and (x< >0);

  2. Для цілого z20 кратного 3 - на мові Turbo Pascal: (z>=20) and (z mod 3 = 0);

  3. Для дійсного x[-2; 5] - на мові Turbo Pascal: (x>5) or (x<-2).

Логічний вираз може мати одне з значень: TRUE (ІСТИНА) або FALSE (ПОХИБКА). Значення логічної змінної чи виразу можна друкувати, але не можна вводити.

Розглянемо докладніше логічні операції:

A

Табл.1

nd (також) – логічний добуток або кон’юнкція двох виразів. Операція передбачає одночасне виконання кожного виразу, які вона поєднує і результатом кон’юнкції буде

A

B

A and B

false

false

false

false

true

false

true

false

false

true

true

true

TRUE (ІСТИНА), тільки якщо такі значення має кожен вираз – множник.

Я

Табл.2

кщо позначити два вирази А і В, то таблиця значень операції кон’юнкції матиме такий вигляд.

A

B

A or B

false

false

false

false

true

true

true

false

true

true

true

true

O

Табл.1

r
(або) – логічне додавання або диз’юнкція передбачає виконання хоча б одного з виразів, що поєднані операцією. Таблиця істинності операції свідчить про те, що результатом операції буде TRUE, якщо таке значення мають хоча б одне з додатних.

Not (не) – протиріччя, або інверсія, перетворює значення виразу на зворотнє.

Якщо в вираз входять кілька з вказаних операцій послідовно, то їх виконання має такий пріоритет: Впершу черзу виконується інверсія, потім кон’юнкція, і останньою – диз’юнкція.

Спробуємо визначити значення логічних виразів:

  1. (z>=20) and (z mod 3 = 0); для z = 40 значення виразу z>=20 буде true, але значення z mod 3 = 0 буде false, тому і результат згідно табл.1 буде мати значення false.

  2. (x>=-2) and (x<=5) and (x< >0) ; для х = 1 виконується кожне з співвідношень, то ж результат буде мати значення true. А для х = 6 виконується перше і третє співвідношень, а друге має значення false. Тому і весь вираз має значення false.

  3. (x>5) or (x<-2); для х = 6 значення виразу x>5 буде true, а значення виразу x<-2 буде false, згідно табл.2 їх диз’юнкція має значення true.

Program prim2;

Uses crt;

Var y,c: integer; a,b,z: real; p,name: string;

f: boolean;

Begin Write (‘Ваше имя? ’); readln (name);

p:=’здравствуй, ’+name +’!’; Writeln(p);

Write (‘Введи 2 действ. числа:’); readln(a,b);

Write (‘Введи 1 целое:’); readln (c);

f:= ((c<a) or (c>b)) and (c mod 3 =0);

Writeln; Writeln (‘значеня ЛВ = ’,f); Readln;

End.

Маємо програму опрацювання логічної та текстової інформації: Перевірити, чи серед 3-х чисел виконуються співвідношення: с [a;b] і с – ділиться на 3 . Початкові дані a, b - дійсні, с – ціле.

Внесіть в програму зміни, які дозволять перевірити логічні вирази згідно Вашого варіанту. Діалог створіть на свій смак.:

Завдання 1. Визначити самостійно значення приведених виразів для вказаних значень аргументів:

Логічна функція

a

b

F(a, b)

a

b

F(a, b)

1,7,13,21,20

((a >0) and (b>0)) or ((a <0) and (b<0))

-3

2

8

1

2,8,14,22,27

((a>0) or (a<-5)) and (b mod 2 = 0)

-4

6

7

8

3,9,15,23,28

(a>=3) and (b<0) and (a<b) or (a=b)

3

-2

0

0

4,10,16,24

not ((a>=b) and (a>=0) and (b<=0))

3

-3

2

8

5,11,17,25

((a>b) and (a>0)) or (not(a=b))

-2

-2

-2

1

6,12,18,26

((a>1) and (a<=8)) or (not (a<>b)

1

1

4

6

Завдання 2. Запишіть вирази мовою Turbo Pascal: Серед змінних цілого типу X, Y, Z –

  1. лише одне з них додатне, а 2 – від’ємні;

  2. всі мають однакові знаки і не дорівнюють 0;

  3. одне з них кратне 5 і всі – не дорівнюють 0;

  4. Х найбільше за значенням;

  5. є рівні за значенням;

  6. не всі однакові за знаком.

  7. є з різними знаками;

  8. мають однакові знаки і є рівні;

  9. одне з них кратне 3, але не 3;

  10. найменшіше за значенням Х і всі додатні;

  11. тільки 2 з них рівні за значенням;

  12. не всі однакові за знаком.

  13. всі парні, але не рівні;

  14. всі мають однакові знаки, але не рівні;

  15. одне з них кратне 5, а 2 інші - 0;

  16. найбільше за значенням Х, а У найменше;

  17. не має рівних;

  18. не всі однакові за знаком.

  19. всі кратні 5 і не рівні;

  20. всі мають однакові знаки і не 0;

  21. одне з них кратне 5 і всі – не 0;

  22. найбільше за значенням У і всі додатні;

  23. тільки 2 з них рівні за значенням;

  24. всі однакові за знаком.

  25. лише одне з них парне, від’ємне;

  26. всі мають однакові знаки і не дорівнюють 0;

  27. одне з них кратне 10, а інші - ні;

  28. 2 з них в сумі дорівнюють третьому;

  29. добуток більше суми, всі не 0;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]