Professional Documents
Culture Documents
Лабараторна робота Алгоритми і структури даних
Лабараторна робота Алгоритми і структури даних
ЗВІТ
Виконав:
студент групи СП-13
прізвище та ім’я:Чухрій Олександр Олегович
Тернопіль 2022
Мета роботи: засвоїти навички в побудові та реалізації простих алгоритмів
Завдання: Розробити алгоритми згідно варінату завданнями І та ІІ та записати їх у
сивольному вигляді при допомозі псевдокоду та у графічному та при допомозі блок-схеми.
Теоретичні відомості
Алгоритм — послідовність, система, набір систематизованих правил виконання
обчислювального процесу, що обов'язково приводить до розв'язання певного класу задач
після скінченного числа операцій. При написанні комп'ютерних програм алгоритм описує
логічну послідовність операцій. Для візуального зображення алгоритмів часто
використовують блок-схеми.
Будь-який алгоритм повинен мати такі основні властивості:
– детермінованість – завдяки використанню повністю однозначних правил та дій при
створені алгоритму, його застосування до однакових вхідних даних повинно приводити до
отримання однакового результату (кожен крок алгоритму має інтерпретуватися виконавцем
однозначно);
– дискретність – процес, що описується алгоритмом, можна розділити на окремі елементарні
етапи, кожен з яких називається кроком алгоритмічного процесу або алгоритму;
– ефективність – під час розв’язання задачі, алгоритм може використовувати лише
обмежений обсяг комп’ютерних ресурсів і результат повинен бути досягнутий за скінченний
ліміт часу;
– масовість – алгоритм повинен бути придатним для розв’язування всіх задач певного типу;
– результативність – обчислювальний процес, що реалізується алгоритмом, повинен через
скінченну кількість етапів (кроків) зупинитись і надати результат, що відповідає заданим
вхідним даним, або ж повідомити про неможливість розв’язання даного екземпляру задачі.
…
Результати
Завдання 1
11. Знайти найбільший дільник двох чисел.
Блок-схема
Sta
Start
cin>>int a,b
c=a%b
a=b
b=c
cout<<a
End
Псевдокод
1. Ввести a та b
2. Процентно поділити a на b
3. Передати значення перемінної b перемінній a
4. Значення с передати перемінній b
5. Виводимо найбільший дільник двох чисел,кінець
Код програми
#include<iostream>
using namespace std;
int main(void)
{
int a, b, c;
cout << "Enter two numbers:";
cin >> a >> b;
while (b) {
c = a % b;
a = b;
b = c;
}
cout << "The largest divisor of two number:" << a << endl;;
system("pause");
}
Завдання 2
11. Вставити елемент в масив, що відсортований в порядку зростання значень елементів.
Блок-схема
Start
i from 0
to10
cin>>int t
flag = 1
i from 0 to
11
нет да
a[i - flag] <= t
newA[i] = a[i]
нет да
flag
flag = 1
End
for i:=0 to b do
PRINT array2[i]
ENDFOR
INPUT your_number
INPUT flag = 0
for i:=0 to b do
IF array2[i-flag] <= your_number
THEN array1[i] = array2[i]
ELSE IF flag == true
THEN array1[i] = a[i-flag]
ELSE
array1[i]=your_number
flag = 1
ENDIF
for i:=0 to n
PRINT array1[i]
ENDFOR
Код програми
#include <iostream>
int main()
{
int const n = 11, b = 10;
int newA[n] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
int a[b] = { 1, 5, 8, 9, 12, 15, 17, 18, 20, 25 };
cout << "Array: ";
for (int i = 0; i < 10; i++)
{
cout << a[i] << " ";
}
cout << endl;
cout << "Enter the number:";
int t;
cin >> t;
int flag = 0;
if (flag)
{
newA[i] = a[i - flag];
}
else
{
newA[i] = t;
flag = 1;
}
}
}
for (int i = 0; i < 11; i++)
{
cout << newA[i] << " ";
}
cout << endl;
system("pause");
return 0;
}