Форум программистов, компьютерный форум, киберфорум
Наши страницы

Определение матрицы на ортонормированность - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Стоит ли сейчас учить C++? http://www.cyberforum.ru/cpp-beginners/thread777661.html
Всем привет народ у меня к вам вопрос вот я сейчас изучаю c++ но мне скоро в институт и я собираюсь заработать на обучение веб-разработкой посчитал что распределение времени получится таким до лета(5...
C++ Массив: Вычислить сумму элементов, лежащих на главной диагонали матрицы {Cÿ}, образованной следующим образом: Cÿ = aÿ + bÿ Здравствуйте, дорогие форумчане!;) -------------------------------------- Помогите, пожалуйста, решить задание. -------------------------------------- Даны две квадратные матрицы A и B размером... http://www.cyberforum.ru/cpp-beginners/thread777660.html
Напишите функцию для вычисления и-го числа Фибоначчи C++
Напишите функцию для вычисления и-го числа Фибоначчи. Реализуйте функцию итеративно и рекурсивно. Скорость рекурсивной версии не должна быть заметно хуже быстродействие итеративной версии. long...
Как заменить одну переменную на другую во всем коде C++
Есть, предположим, переменная, которая повторяется в программе 1000 раз, нужно ее заменить на другую - как? microsoft visual studio 2012
C++ Движение и скорость на разных отрезках пути http://www.cyberforum.ru/cpp-beginners/thread777634.html
Привет форумчане!, помогайте голова взрывается. Вопрос по механике движения тела по траэктории Суть: есть автомобиль едущий со скоростью s по отрезку длинной d, проезжающий его за время t. ...
C++ Сортировка данных класса Всем привет,есть класс "книга" у меня не получилось сделать несколько пунктов, 1.При добавлении авторов сохраняется последний автор,так же если вводить больше 1 то сохраняется последний(тут явно... подробнее

Показать сообщение отдельно
Михан
8 / 8 / 1
Регистрация: 05.11.2009
Сообщений: 74
03.02.2013, 00:50
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
#include <iostream>
#include <conio.h>
#include <iomanip>
using namespace std;
 
/*
 
* Функция выполняет скалярное перемножение твух строк матрицы
 
* m - колличество столбцов в матрице
 
* i - номер первой перемножаемой строки
 
* j - номер второй перемножаемлй строки
 
* k - интератор столбца
 
* array - проверяемый массив
 
* s - сумма произведений пар элементов
 
* Функция возвращает значение переменной s
 
*/
 
double summa(double array[50][50], int m, int i, int j);
 
/*
 
* Функция выполнят проверку ортонормированности матрицы
 
* n - колличество строк в матрице
 
* i - интератор основной строки
 
* j - интератор второй строки
 
* array - проверяемый массив
 
* s - значение, которое возвращает функция summa,
 
* обозначающее результат перемножения двух строк
 
* Функция возвращает true, если матрица ортонормированна
 
* и false в противоположном случае
 
*/
 
bool proverka (double array[50][50], int n, int m);
 
int main()
 
{
     setlocale(LC_ALL,"Russian");
 
double array[50][50]={0};
 
int n=0,m=0;//максимальное количество строк и столбцов
 
bool otvet=0;//булевская переменная, отображающая результат проверки массива
 
cout << "Введите число строк" << endl;
 
cin >> n;// Вводим колличество строк
 
/*если количество строк больше, чем максимальное количество элементов,
 
выводим сообщение о превышении максимального значения и завершаем работу программы */
 
if (n>50||n<2){
 
cout << "Размер матрицы является несоответствующим" << endl;
 
return 0;}
 
cout << "Введите число столбцов" << endl;
 
cin >> m;// Вводим колличество столбцов
 
/*если количество столбцов больше, чем максимальное количество элементов,
 
выводим сообщение о превышении максимального значения и завершаем работу программы */
 
if (m>50||m<2){
 
cout << "Размер матрицы является несоответствующим" << endl;
 
return 0;}
 
cout << "Введите элементы матрицы" << endl;
 
//Осуществляем ввод элементов массива
 
for(int i=0;i<n;i++)
 
{
 
for(int k=0;k<m;k++)
 
cin >> array[i][k];
 
cout << endl;
 
}
 
otvet=proverka (array, n, m);//Вызывает функцию проверки и возвращаемое значение присваеваем булевской переменной otvet
 
//Выводим сообщение о результате проверки
 
if (otvet==true)
 
cout << "Матрица ортонормирована";//Выводим сообщение об ортонормированности матрицы
 
else cout << "Матрица не ортонормирована";//Выводим сообщение о том, что матрица не ортонормарованна
 
getch();
 
return 0;
 
}
 
bool proverka (double array[50][50], int n, int m)
 
{
 
int i=0, j=0;
 
double s=0;
 
// начало проверяющего цикла где сначала проверяем строки с 0 до n-1
 
for (i=0; i<n; i++){
 
// передаем дополнительной строке значение основной, для проверки скалярного произведения строки саму на себя
 
j=i;
 
s=summa(array, m, i, j);
 
// проверка условия
 
if (s!=1)
 
// если сумма не равна 1 то возвращаем false
 
return false;
 
// перебираем дополнительные строки начиная с i + 1
 
for (j=i+1; j<n; j++){
 
s=summa(array, m, i, j);
 
// проверка условия
 
if (s!=0)
 
// если сумма не равна 0 то возвращаем false
 
return false;}}
 
// после окончания проверки возврашем true
 
return true;
 
}
 
double summa(double array[50][50], int m, int i, int j)
 
{
 
double s=0;
 
for (int k=0; k<m; k++)
 
// суммируем произведение пар элементов
 
s+=array[i][k]*array[j][k];
 
// в конечном итоге возвращаем результат скалярного произведения двух строк
 
return s;
 
}
2
Миниатюры
Определение матрицы на ортонормированность   Определение матрицы на ортонормированность  
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.