Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Звіт.doc
Скачиваний:
10
Добавлен:
28.10.2018
Размер:
1.1 Mб
Скачать

Завдання №2

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

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

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

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

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

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

де А[2][2], В[2][2].

Програма в С++

#include <stdio.h>

#include <conio.h>

#define N 2

#define M 2

void main()

{clrscr();

int i,j;

float A[N][M];

float At[N][M];

float AtB[N][M] ;

float c[N][M];

float B[N][M];

float BB[N][M];

float C[N][M];

float TB[N][M] ;

printf("Wwedit matrix A:\n");

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

{for(j=0;j<M;j++)

scanf("%f",&A[i][j]);}

printf(" \n");

printf("Wwedit matrix B:\n");

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

{for(j=0;j<M;j++)

scanf("%f",&B[i][j]);}

printf(" \n");

printf ("At:\n");

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

{for (j=0; j<M; j++)

{ At[i][j]=A[j][i];

printf(" %.1f ", At[i][j]);}

printf(" \n") ; }

printf("At*B:\n");

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

{for(j=0;j<M;j++)

{AtB[i][j]=0;

for (int k=0; k<M;k++) AtB[i][j]+=At[i][k]*B[k][j] ;

printf(" %.1f ",AtB[i][j]);

}

printf(" \n"); }

printf(" \n");

//-----------------

printf("B*B:\n");

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

{for(j=0;j<M;j++)

{BB[i][j]=B[0+i][0]*B[0][0+j]+B[0+i][1]*B[1][0+j]+B[0+i][2]*B[2][0+j];

printf(" %.1f ",BB[i][j]);

}

printf(" \n");}

printf(" \n");

//---------------------

printf ("3BB:\n");

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

{for (j=0; j<M; j++)

{TB[i][j]=1;

//for(int k=0; k<M; k++)

TB[i][j]=BB[i][j]*3;

printf(" %.1f ",TB[i][j]);

}

printf(" \n");}

printf(" \n");

//-----------------------

printf ("c:\n");

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

{for (j=0; j<M; j++)

{c[i][j]=0;

c[i][j]+=AtB[i][j]-TB[i][j];

printf(" %.1f ",c[i][j]);

}

printf(" \n"); }

printf(" \n");

//----------------

printf("C=(A*B-TB)*B:\n");

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

{for(j=0;j<M;j++)

{C[i][j]=0;

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

C[i][j]+=c[i][k]*B[k][j];

printf(" %.1f ",C[i][j]);

}

printf(" \n"); }

printf(" \n");

getch();

}

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

Виконання в Microsoft EXCEL

Матриця А

Матриця В

1

2

5

6

3

4

7

8

 

 

 

 

 

 

 

 

Матриця (A^T)*B

Матриця B*B

26

30

67

78

38

44

91

106

 

 

 

 

 

 

 

 

Матриця 3*B*B

Матриця (А^T)В-3*В^2

201

234

-175

-204

273

318

-235

-274

 

 

 

 

 

 

 

 

Матриця А^T

Матриця С

1

3

-2303

-2682

2

4

-3093

-3602

Висновок: Отже, з проведеного вище розрахунку можна зробити висновок, що обчислення матриць в MS Excel і в C++ Builder надає однакового результату, обчислення здійснені вірно.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]