Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Отчет ПР 1

.docx
Скачиваний:
16
Добавлен:
24.01.2023
Размер:
47.29 Кб
Скачать

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»

(СПбГУТ)

Кафедра безопасности информационных систем

ОТЧЁТ

по практической работе № 1 на тему: «Массивы данных»

по дисциплине «Алгоритмы и структуры данных»

Выполнил: студент группы ИСТ-114, Медведева С.Г.,

«12» октября 2022 г. ___________/Медведева С.Г.

Принял: к.ф.-м.н., доцент, И.А. Моисеев

«12» октября 2022 г. ___________/ И.А. Моисеев /

1 Основная часть

1.1 Цель работы

Требуется вычислить матрицу, которая является результатом перемножения

двух действительных матриц размерности m×n и n×m.

1.2 Результаты выполнения работы

#include <iostream> #include <fstream> using namespace std; void Read_Mat (int m, int** array, ifstream& file){ if (file.is_open()){ auto i = 0, j = 0; while(!file.eof()){ file >> array[i][j]; j < m-1 ? j++: j = 0; if (j == 0) i++; } } else cout << "File is not open"; } void PrintArray (int **arr, int n, int m){ for (int i{}; i < n; i++){ for (int j{}; j < m; j++){ cout << arr[i][j] << " "; } cout << endl; } } int Vav (int indexi, int indexj, int stolb, int **array_a, int ** array_b){ int c{}; for (int i{}; i < stolb; i++){ c += array_a[indexi][i] * array_b[i][indexj]; } return c; } int main() { int n = 3,m = 4; int **array_a = new int* [m]; for (int i = 0; i < m; i ++){ array_a[i] = new int [n]; } int **array_b = new int* [n]; for (int i = 0; i < n; i ++){ array_b[i] = new int [m]; } int **arrayC = new int* [m]; for (int i = 0; i < m; i ++){ arrayC[i] = new int [m]; } ifstream a (R"(C:\Users\sonik\CLionProjects\untitled\a.txt)"); ifstream b (R"(C:\Users\sonik\CLionProjects\untitled\b.txt)"); Read_Mat (3, array_a, a); PrintArray(array_a,m,n); cout << endl; Read_Mat(4,array_b,b); PrintArray(array_b ,n ,m); for (int i{}; i < m; i++){ for (int j{}; j < m; j++){ arrayC[i][j] = Vav(i, j, n, array_a, array_b); } } cout << endl; PrintArray(arrayC, m, m); return 0; }

Результат выполнения программы

Рис 1.

1.3 Вывод

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

Санкт-Петербург 2022

Соседние файлы в предмете Алгоритмы и системы данных