Написать программку, которая вычисляет для квадратным матриц А и В матрицу C=(АT)2*BT
Собственно, завтра дедлайн, сама новичек, камнями за быдлокод прошу не бросать, я стараюсь, прошу помощи в допиле кода и на комментарии не обращайте особого вниманьеца
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
| #include "stdafx.h"
#include <clocale>
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
int stroka, stolbick, stroka2, stolbick2 = 0;// переменные для А и А транспонированного
int strokaB, stolbikB, strokaB2, stolbickB2 = 0; //переменные для B и В транспонированного
//A
cout << "Задайте количество строк и столбцев матрицы А" << endl;
cout << "Строк: ";
cin >> stroka;
cout << "Столбцев: ";
cin >> stolbick;
//B
cout << "Задайте количество строк и столбцев матрицы B" << endl;
cout << "Строк: ";
cin >> strokaB;
cout << "Столбцев: ";
cin >> stolbikB;
//A
// Выделение памяти под двумерный динамический массив с введёнными пользователем измерениями и можем вдальнейшем обращаться к 1 строка 1 столбик (насоздавать для кажой строчки столбиков)
int** t = new int*[stroka];// в переменной количество строчек, которое введёт пользователь (5)
for (int i = 0; i < stroka; ++i)//(пока 0 элемент меньше 5, в след. раз возьмём элемент на единицу больший, т.е. следующий)
{
t[i] = new int[stolbick];// количество столбцев (обращаемся к этому лементу массива и создём столбик получаеся 0 от 0, перемен. столбик)
}
//Заполнение
for (int y = 0; y < stolbick; y++)//первый элемент массива
{
for (int x = 0; x < stroka; x++)
{
cout << "[" << y + 1 << "][" << x + 1 << "]: ";//первый элемент массива и первая строка
cin >> t[y][x];//какое значение им присвоить
}
}
//B
// Выделение памяти под двумерный динамический массив с введёнными пользователем измерениями и можем вдальнейшем обращаться к 1 строка 1 столбик
int** tB = new int*[strokaB];// в переменной количество строчек, которое введёт пользователь (5)
for (int i = 0; i < strokaB; ++i)//(пока 0 элемент меньше 5, в след. раз возьмём элемент на единицу больший, т.е. следующий)
{
tB[i] = new int[stolbikB];// количество столбцев (обращаемся к этому эменту массива и создём столбик получаеся 0 от 0, )
}
//Заполнение
for (int y = 0; y < stolbikB; y++)//первый элемент массива
{
for (int x = 0; x < strokaB; x++)
{
cout << "[" << y + 1 << "][" << x + 1 << "]: ";//первый элемент массива и первая строка
cin >> tB[y][x];//какое значение им присвоить
}
}
//A транспонированный
//выделение памяти под транспонированный массив
int **t1=new int*[stroka2];//транспонированный массив
for (int k = 0; k < stroka2; ++k)//первый элемент массива
{
t[k] = new int[stolbick2];
}
//транспонирование
for (int y = 0; y < stolbick2; ++y)// 1 элемент столбика 2 массива
{
for (int x = 0; x < stroka2; ++x)//1 элемент строчки 2 массива
{
for (int y = 0; y < stolbick; y++)//1 элемент столбика 1 массива
{
for (int x = 0; x < stroka; x++)//1 элемент строчки 1 массива
{
t[y][x] = t1[x][y];
}
}
}
}
//Вывод A
cout << "Введённая матрица: " << endl;
for (int y = 0; y < stolbick2; ++y)
{
for (int x = 0; x < stroka2; ++x)
{
cout << t[y][x];
}
cout << endl;
}
//Вывод B
cout << "Введённая матрица: " << endl;
for (int y = 0; y < stolbikB; ++y)
{
for (int x = 0; x < strokaB; ++x)
{
cout << tB[y][x];
}
cout << endl;
}
/*//Вывод
cout << "Введённая матрица: " << endl;
for (int y = 0; y < stolbick; ++y)
{
for (int x = 0; x < stroka; ++x)
{
cout << t1[x][y];
}
}
*/cout << endl;
// Освобождение памяти
for (int i = 0; i < stroka; ++i)
{
delete[] t[i];
delete t;
}
for (int i= 0; i < stroka2; ++i)
{
delete[] t1[i];
delete t1;
}
system("pause");
return 0;
} |
|
Добавлено через 2 минуты
Большая просьба допиливать без функций, так сказать, в моём контексте, чтоб попонятнее, заранее благодарю))
Добавлено через 13 минут