Файл: Отчет По предмету Алгоритмы и структуры данных.docx

ВУЗ: Не указан

Категория: Отчет по практике

Дисциплина: Не указана

Добавлен: 09.01.2024

Просмотров: 21

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное бюджетное образовательное учреждение высшего образования

«Санкт-Петербургский государственный университет телекоммуникаций

им. проф. М. А. Бонч-Бруевича»

(СПбГУТ)
Факультет Информационных систем и технологий
Кафедра Безопасности информационных систем

Отчет
По предмету «Алгоритмы и структуры данных»
о практической работе №1:
«Разработка алгоритмов и программ обработки массивов данных»
Выполнил студент гр. ИСТ-022:

Волков Кирилл

// // //
оценка подпись    

Проверил: Бородянский Ю.М.

// //

Подпись

Задача работы

Провести работу по разработке блок-схемы и программы по умножению матриц на языке С++, приобрести навыки и умения анализа алгоритма и всего кода разработанной программы в Big-O-нотации.

Блок-схема

Рассчет сложности Big-O

Строки 14 – 22: О(1)+O(1)+O(1)+O(1)+O(1) = O(1)

Строки 29– 32: (O(1)+O(1)+O(1))*O(n) = O(n)

Строка 28: O(n)*O(n) = O(n^2)

Строка 34-38: ((O(1)+O(1)+O(1))*O(n))*O(n) = O(n^2)

Строка 41-48: ((O(1)+O(1)+O(1))*O(n))*O(n) = O(n^2)

Строка 52-60: (O(1)*O(n))*O(n)

Строка 62-68: (((O(1)*O(n))+O(1))*O(n))*O(n) = O(n^3)

Строка 70-77: (O(1)*O(n))*O(n) = O(n^2)

Ответ: общая сумма сложности O(n^3);

Вывод

В результате работы была разработана программа, которая вычисляет произведение двух матриц, заполненных случайными числовыми данными,

Мы получили новые знания о языке программирования C++, узнали о генерации случайных чисел.

Была проведена работа по анализу программного кода и была вычислена сложность нотации Big-O.

Код программы находится в приложение 1.

Приложение
1

#include

#include

using namespace std;

int main()

{

SetConsoleOutputCP(1251);

SetConsoleCP(1251);

int a,b,c,d;

cout<<"Введите размер матрицы A -> ";

cin>>a; // O(1);

cin>>b; // O(1);

cout<<"Введите размер матрицы B -> ";

cin>>c; // O(1);

cin>>d; // O(1);

if (b!=c) // O(1);

cout<<"Программа не может выполнить задачу умножения. \nКоличество столбцов первой матрицы не равно количеству строк второй матрицы";

else

{

int matrix1[a][b],matrix2[c][d],matrix3[a][d];

for(int i=0;i
for(int j=0;j
{

matrix1[i][j] = -100 + rand() % 201; // O(max(1,1,1)=O(1)

}

for(int i=0;i
for(int j=0;j
{

matrix2[i][j] = -100 + rand() % 201; //O(max(1,1,1)=O(1)

}

cout<<"Матрица 1:"<
for(int i=0;i
for(int j=0;j
{

if (j == 0)

cout<<"\n";

else

cout<<"\t";

cout<
}

cout<
for(int i=0;i
for(int j=0;j
{

if (j == 0)

cout<<"\n";

else

cout<<"\t";

cout<
}

for(int i=0;i
for(int j=0;j
{

matrix3[i][j]=0;

for(int k=0;k
matrix3[i][j]+=(matrix1[i][k]*matrix2[k][j]);

} // O(n^3)

cout<
for(int i=0;i

for(int j=0;j
{

if (j == 0)

cout<<"\n";

else

cout<<"\t";

cout<
}

}

return 0;

}

Гор. Санкт-Петербург

2021