You are on page 1of 9

Лабораторна робота №3 (методичні вказівки)

з дисципліни «Алгоритмізація та програмування»


Тема: "Реалізація алгоритмів з розгалуженням мовою С ++"

МЕТА РОБОТИ

Вивчити теоретичний матеріал щодо синтаксису у мові С ++ і подання у


вигляді UML діаграм активності алгоритмів з розгалуження та реалізувати
найпростіші алгоритми з використанням інструкцій умовного переходу і
вибору мовою C++ в середовищі Visual Studio.

ПОСТАНОВКА ЗАДАЧІ

Завдання 1. Обчислити площу і периметр плоскої фігури. Варіанти


представлено в табл.1.
Завдання 2. Дано координати точки на площині (x, y). Визначити, чи
потрапляє точка в фігуру заданого кольору (або групу фігур) і вивести
відповідне повідомлення. Варіанти фігур представлено в табл.1.
Завдання 3. Вирішити завдання на алгоритми з розгалуженням. Завдання
представлено в табл.2.
Завдання 4. Для вибору користувачем одного з трьох зазначених вище
завдань розробити алгоритм організації меню в командному вікні з
використанням інструкції вибору.

Всі завдання повинні бути реалізовані в одному командному додатку.


Кожне завдання має бути реалізовано у вигляді окремої процедури (void
функції без параметрів).
Після введення вхідних даних необхідно провести їх перевірку на
коректність.
У звіті повинен бути лістинг коду програми і скріншоти екрану
виконання, що демонструють щонайменше 2 сценарії роботи програми для
кожного завдання. Код повинен містити КОМЕНТАРІ !!!
Крім того, в звіті повинно бути представлено три діаграми активності:
для всієї програми і для функцій, що реалізують 2 і 3 завдання.
2
Приклад коду до завдань 2, 3, 4:
#include <iostream>
using namespace std;

//If1.Дано ціле число.


// Якщо воно є додатним, то відняти від нього 8;
// інакше не змінювати його.
// Вивести отримане число.
void task_if1 (); // завдання 1 оголошення функції

// Дано координати точки на площині (x, y).


// Визначити, чи потрапляє точка в фігуру заданого кольору (або групу фігур)
// і вивести відповідне повідомлення.
void task_geom1 ();// завдання 2 оголошення функції

int main () {
int menu;
cout << "Task number:";
cin >> menu;
switch (menu)
{ // перемикання між завданнями
case 3: task_if1 (); break; // Завдання 2
case 2: task_geom1 (); break; // Завдання 3
default: cout << "Wrong task! (Only 2,3)" << endl; //повідомлення про помилку
}
system ("pause");
return 0;
}

// завдання 3 реалізація
void task_if1 ()
{
int num;
cout << "************* If 1 *****************" << endl;
cout << "Integer number:";
cin >> num;
if (cin) { // умова якщо введено ціле
if (num > 0) // умова, коротка форма if
num -= 8;
cout << "After transformation:" << num << endl;
}
else // інакше – якщо не ціле
cout << "Wrong integer!" << endl;
}
// завдання 2 реалізація
void task_geom1 () {
float x, y, a, b;
cout << "*********** Point in geometry region 1 ************" << endl;
cout << "Parameters a, b:";
cin >> a >> b;
if (a <= 0 || b <= 0) // перевірка коректності даних !!!
cout << "Must be positive, non-zero!"; //повідомлення про помилку
else // дані коректні
{
cout << "Point x, y:";
cin >> x >> y;
if (x<b/2 && (x-b/2)*(x-b/2)+(y-a/2)*(y-a/2)<a*a/4) // півколо
cout << "In region!" << endl;
else if (x<b && y<a && y>0 && (x-b/2)*(x-b/2)+(y-a/2)*(y-a/2)>a*a/4)
// прямокутник за винятком кола
cout << "In region!" << endl;
else cout << "Out of region!" << endl;
}
}
3
На рис.1 показаний приклад діаграми активності для завдання 2.

function task_if1()

Введення num

[Значення невірне]
[Значення коректне]

Сповіщення про помилку

[num>8]
[else]

num := num - 8

Виведення num

Рисунок 1 – Діаграма активності для алгоритму вирішення задачі If 1


4
5
6
7

.
8
Таблиця 2 - Завдання на алгоритми з розгалуженням
If1. Дано ціле число. Якщо воно є додатним, то відняти від нього 8; в іншому випадку
не змінювати його. Вивести отримане число.
If2. Дано ціле число. Якщо воно є додатним, то відняти від нього 8; в іншому випадку
додати до нього 6. Вивести отримане число.
If3. Дано ціле число. Якщо воно є додатним, то відняти від нього 8; якщо від’ємним,
то додати до нього 6; якщо нульовим, то замінити його на 10. Вивести отримане
число.
If4. Дано три цілих числа. Знайти кількість додатних чисел в початковому наборі.
If5. Дано три цілих числа. Знайти кількість додатних і кількість від’ємних чисел в
початковому наборі.
If6. Дано два числа. Вивести більше з них.
If7. Дано два числа. Вивести порядковий номер меншого з них.
If8. Дано два числа. Вивести спочатку більше, а потім менше з них.
If9. Дано дві змінні дійсного типу: A, B. Перерозподілити значення даних змінних так,
щоб в A було записано менше зі значень, а в B – більше. Вивести нові значення
змінних A і B.
If10. Дано дві змінні цілого типу: A і B. Якщо їх значення не рівні, то присвоїти кожній
змінній суму цих значень, а якщо рівні, то присвоїти змінним нульові значення.
Вивести нові значення змінних A і B.
If11. Дано дві змінні цілого типу: A і B. Якщо їх значення не рівні, то присвоїти кожній
змінній більше з цих значень, а якщо рівні, то присвоїти змінним нульові значення.
Вивести нові значення змінних A і B.
If12. Дано три числа. Знайти найменше з них.
If13. Дано три числа. Знайти середнє з них (тобто число, розташоване між
найменшим і найбільшим).
If14. Дано три числа. Вивести спочатку найменше, а потім найбільше з даних чисел.
If15. Дано три числа. Знайти суму двох найбільших з них.
If16. Дано три змінні дійсного типу: A, B, C. Якщо їх значення впорядковані за
зростанням, то подвоїти їх; в іншому випадку замінити значення кожної змінної на
протилежне. Вивести нові значення змінних A, B, C.
If17. Дано три змінні дійсного типу: A, B, C. Якщо їх значення впорядковані за
зростанням або зменшенням, то подвоїти їх; в іншому випадку замінити значення
кожної змінної на протилежне. Вивести нові значення змінних A, B, C.
If18. Дано три цілих числа, одне з яких відмінно від двох інших, рівних між собою.
Визначити порядковий номер числа, відмінного від інших.
If19. Дано чотири цілих числа, одне з яких відмінно від трьох інших, рівних між собою.
Визначити порядковий номер числа, відмінного від інших.
If20.[На числовій осі розташовані три точки: A, B, C. Визначити, яка з двох останніх
точок (B або C) розташована ближче до A, і вивести цю точку і її відстань від точки A.
If21. Дано цілочисельні координати точки на площині. Якщо точка збігається з
початком координат, то вивести 0. Якщо точка не збігається з початком координат,
але лежить на осі OX або OY, то вивести відповідно 1 або 2. Якщо точка не лежить
на координатних осях, то вивести 3.
9
If22. Дано координати точки, що не лежить на координатних осях OX та OY.
Визначити номер координатної чверті, в якій знаходиться дана точка.
If23. Дано цілочисельні координати трьох вершин прямокутника, сторони якого
паралельні координатним осях. Знайти координати його четвертої вершини.
If24. Для цього дійсного x знайти значення наступної функції f, що приймає дійсні
значення:

If25. Для даного цілого x знайти значення наступної функції f, що приймає значення
цілого типу:

If26. Для заданого дійсного x знайти значення наступної функції f, що приймає дійсні
значення:

If27. Для заданого дійсного x знайти значення наступної функції f, що приймає


значення цілого типу:

If28. Дано номер року (додатне ціле число). Визначити кількість днів в цьому році,
враховуючи, що звичайний рік нараховує 365 днів, а високосний - 366 днів.
Високосним вважається рік, ділиться на 4, за винятком тих років, які діляться на 100 і
не діляться на 400 (наприклад, роки 300 1300 і 1900 не є високосними, а 1200 і 2000 -
є).
If29. Дано ціле число. Вивести його рядок-опис виду «від’ємне парне число»,
«нульове число», «додатне непарне число» і т. ін.
If30. Дано ціле число, яке лежить в діапазоні 1-999. Вивести його рядок-опис виду
«парне двозначне число», «непарне тризначне число» і т. ін.

You might also like