Міністерство освіти і науки України
Вінницький національний технічний університет
Факультет інформаційних технологій і комп'ютерної інженерії
Кафедра комп'ютерних наук
Лабораторна робота №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