Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Володько Звіт.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
476.14 Кб
Скачать

Практична робота №2

Тема:Розв‘язування задачі для обчислення матриць засобами мови програмування С++ та засобами Microsoft Excel.

Мета: Навчитися знаходити розв’язок задач з матрицями в Microsoft Excel та на мові програмування С++.

Завдання:

де . .

  1. Скласти алгоритм програми для обчислення матриць згідно завдання свого варіанту.

  2. Написати програму мовою С++ для обчислення матриць згідно завдання свого варіанту.

  3. Розв‘язати цю ж задачу засобами Microsoft Excel.

  4. Порівняти отримані результати. Зробити висновки.

  5. Оформити результати роботи у редакторі Microsoft Word.

Теоретичні відомості

Обчислення матриць в Microsoft Excel

Табличний процесор MS Excel містить великий набір математичних функцій які використовуються для різноманітних обчислень. Розглянемо декілька функцій для роботи з матрицями:

  • МУМНОЖ - добуток матриць;

  • ТРАНСП - транспонування матриці;

  • МОПРЕД - обчислення визначника матриці;

  • МОБР- обчислення оберненої матриці.

Розглянемо функцію множення матриць МУМНОЖ. Ця функція повертає добуток матриць (матриця зберігається в масивах). Результатом є масив з таким же числом рядків, як в масиві 1 і з таким же числом стовпців, як масив

Синтаксис: МУМНОЖ(масив1;масив2), де масив 1, масив 2 – масиви, що перемножуються.

Зауваження:

- кількість стовпців аргументу масиву 1 повинна бути такою ж, як кількість рядків аргументу масиву 2, і обидва масиви повинні містити тільки числа;

- масив 1 і масив 2 можуть бути задані як інтервали, масиви констант або посилання;

- якщо, хоча б одна комірка в аргументах порожня або містить текст, або якщо число стовпців в аргументі масиву 1 відрізняється від числа рядків в аргументі масиву 2, то функція МУМНОЖ повертає значення помилки #ЗНАЧ!.

Вигляд розв’язання задачі у Microsoft Excel

Для початку я внесла деякі значення для матриці А та В:

А тоді проводила такі операції над ними:

Множення матриці на число (5А)=5*A2:

Вирішення різниці між матрицями , що проводиться таким чином =F2-A8:

Остаточне вирішеня задачі =МУМНОЖ(F8:I11;F8:I11):

Рішення задачі засобами мови програмування С++

Оголошуємо матриці А та В і деякі змінні:

#include <iostream>

#include <math.h>

using namespace std;

void main()

{int i, j, n = 4;

int a[4][4] = { { 1, 0, 5, 2 }, { 5, 3, 1, 3 }, { 7, 4, 6, 1 }, { 6, 2, 2, 7 } };

int b[4][4] = { { 10, 16, 20, 20 }, { 16, 17, 15, 10 }, { 17, 10, 31, 11 }, { 12, 30, 16, 18 } };

Множимо матрицю A на число 5:

for (i = 0; i < n; i++)

{

for (j = 0; j < n; j++)

{

a[i][j] *= 5;

}

}

Обчислюємо різницю B-5A:

int f[4][4] = { 0 };

for (i = 0; i < n; i++)

{

for (j = 0; j < n; j++)

{

f[i][j] = b[i][j] - a[i][j];

}

}

Знаходимо значення (B-5A)^2:

int g[4][4] = { 0 };

for (i = 0; i < n; i++)

{

for (j = 0; j < n; j++)

{

for (int k = 0; k < n; k++)

{

g[i][j] += f[i][k] * f[k][j];

}

}

}

Виводимо результати наших обрахунків на екран:

Виводимо марицю А:

cout << " Matrix A" << endl << endl;

for (i = 0; i<n; i++)

{

for (j = 0; j < n; j++)

{

cout << a[i][j] << "\t";

}

cout << endl;

}

cout << endl;

Виводимо марицю В:

cout << " Matrix B" << endl << endl;

for (i = 0; i<n; i++)

{

for (j = 0; j < n; j++)

{

cout << b[i][j] << "\t";

}

cout << endl;

}

cout << endl;

cout << endl;

Виводимо матрицю 5*А:

cout << "5*A" << endl<<endl;

for (i = 0; i<n; i++)

{

for (j = 0; j<n; j++)

{

cout << a[i][j] << "\t";

}

cout << endl;

}

cout << endl;

Виводимо результат різниці двох матриць В-5*А:

cout << "B-5A" << endl << endl;

for (i = 0; i<n; i++)

{

for (j = 0; j<n; j++)

{

cout << f[i][j] << "\t";

}

cout << endl;

}

cout << endl;

Виводимо результат вирішення задачі:

cout << "(B-5A)^2" << endl << endl;

for (i = 0; i<n; i++)

{

for (j = 0; j<n; j++)

{

cout << g[i][j] << "\t";

}

cout << endl;

}

}