Міністерство освіти і науки України
Вінницький національний технічний університет
Факультет інформаційних технологій і комп'ютерної інженерії
Кафедра комп'ютерних наук
Лабораторна робота №4
з дисципліни: "Алгоритмізація та програмування"
Тема:
підготовка і розв’язання на пк задач з розгалуженнями
Мета:
набути практичні навики з підготовки, відладки та виконання програм з розгалуженнями
Хід роботи:
Алгоритми виконання й синтаксис операторів if, if/else, switch/case і умовної операції ?:
Алгоритм — це скінченна послідовність команд, виконання яких приводить до розв’язання поставленої задачі.
Алгоритми створюють люди. А виконують їх люди або різні пристрої, якими керують люди — комп'ютери, роботи, верстати, супутники, складна побутова техніка, дитячі іграшки. Наприклад, прання білизни за допомогою пральної машини, зображеної на малюнку, можливе за умови виконання людиною й машиною вказаних алгоритмів:
Команди алгоритмів можна умовно об'єднати у блоки — алгоритмічні структури. Для кожної структури для зручності вводять свої графічні позначення, за допомогою яких будь-який алгоритм можна подати наочно. Якщо команди виконуються послідовно, кожна наступна розпочинається після завершення попередньої і виконується тільки один раз, — маємо алгоритмічну структуру слідування. Таку структуру графічно позначають у вигляді послідовності прямокутників, у кожному з яких прописується команда або набір команд для отримання певного результату. У свою чергу, кожну задачу, для виконання якої складатиметься алгоритм, також можна подати у вигляді прямокутника. Наприклад, алгоритм початку гри в шахи можна подати так:
Подана структура слідування має стрілку на вході й на виході. Це тому, що кожна задача, для розв'язування якої складається алгоритм, може складатися не лише з підзадач, але й сама, у свою чергу, може бути підзадачею.
Наприклад, якщо формально виконати алгоритм: задумати число -> додати до нього 3 -> від того, що вийшло, відняти 1-> до того, що вийшло, додати 2 -> до того, що вийшло, додати 1-> до того, що вийшло, додати 2 -> від того, що вийшло, відняти задумане число -> назвати отримане число, то отримаємо число 7.
Синтаксис операторів
Складений оператор – конструкція мови програмування, яка необхідна для організації інших операторів у послідовності, але бере участь у програмі як єдиний оператор і вміщена в операторні дужки.
if умова then
begin {початок складеного оператора}
... {кілька операторів}
end {кінець складеного оператора}
Умовний оператор – це оператор, який застосовується для реалізації алгоритму, що розгалужується (виконання однієї чи іншої гілки алгоритму, залежно від виконання або невиконання поставленої умови
Повна форма:
if «умова» then «оператор 1»;
else «оператор 2»;
Скорочена форма:
if «умова» then «оператор 1»;
Оператор вибору
case Вираз of
значення1 : оператор (група операторів);
значення» : оператор (група операторів);
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
значенняN : оператор (група операторів);
else оператор (група операторів);
end;
Логічний тип даних
Тип даних - це множина значень, які може приймати об'єкт, що належить до цього типу.
Тип даних визначає:
допустимі значення змінних, виразів
допустимі значення, які повертають функції та процедури
форму подання даних у комп’ютері
Логічні операції (and, or, not)
Логічна операція (пропозиційних зв’язок) – операція над виразами логічного типу, яка дозволяє складати нові висловлювання за допомогою з’єднання більш простих висловлювань.
Логічних значень два: істина (TRUE) – «1» та хибність (FALSE) – «0».
Основні логічні операції:
AND
Кон’юнкція (логічне множення) (позн. ˄ або &) – логічна операція, яка з’єднує висловлювання (два або більше) за допомогою логічної зв’язки «та (і)». Читається «А та(і) В».
OR
Диз’юнкція (логічне додавання) (позн. ˅) – логічна операція, яка з’єднує висловлювання (два або більше) за допомогою логічної зв’язки «або». Читається «А або В».
NOT
Заперечення (інверсія) (позн. ¬ або
А
) – логічна операція, результатом виконання якої є вислів, протилежний вихідному. Читається «не А»
Задачі
Завдання 1
Алгоритм:
/
Код програми:
program triangle;
uses crt;
var a,b,c:real;
begin
Clrscr;
write('Введіть довжини сторін: ');
readln(a,b,c);
if (a<=0) or (b<=0) or (c<=0)
then writeln('Помилка вхідних даних')
else
begin
if (a+b < c) or (a+c < b) or (c+b < a)
then writeln('З відрізків такої довжини утворити трикутник неможливо.')
else
begin
if (sqr(a)+sqr(b)=sqr(c)) or
(sqr(a)+sqr(c)=sqr(b)) or
(sqr(c)+sqr(b)=sqr(a))
then writeln('Трикутник прямокутний');
if (sqr(a)+sqr(b) > sqr(c)) and
(sqr(a)+sqr(c) > sqr(b)) and
(sqr(c)+sqr(b) > sqr(a))
then writeln('Трикутник гострокутний');
if (sqr(a)+sqr(b) < sqr(c)) or
(sqr(a)+sqr(c) < sqr(b)) or
(sqr(c)+sqr(b) < sqr(a))
then writeln('Трикутник тупокутний');
end
end;
readkey;
end.
Завдання 2
Алгоритм:
/
Код програми:
program chislo;
var x, modulo: integer;
begin
write ('Число ');
read (x);
begin
if x>0
then writeln ('Додатнє число')
else writeln ('Від*ємне число');
end;
modulo:= x mod 2;
case modulo of
0: writeln(x, ' - парне число');
1: writeln(x,' - непарне число');
end;
end.
Завдання 3
Варіант 18