Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Стоит ли сейчас учить C++? http://www.cyberforum.ru/cpp-beginners/thread777661.html
Всем привет народ у меня к вам вопрос вот я сейчас изучаю c++ но мне скоро в институт и я собираюсь заработать на обучение веб-разработкой посчитал что распределение времени получится таким до лета(5 месяцев) учу c++ а потом 1 год веб так вот стоит ли пол года шас плюсы учить или я после веба все забуду и придеться все по новой?
C++ Массив: Вычислить сумму элементов, лежащих на главной диагонали матрицы {Cÿ}, образованной следующим образом: Cÿ = aÿ + bÿ Здравствуйте, дорогие форумчане!;) -------------------------------------- Помогите, пожалуйста, решить задание. -------------------------------------- Даны две квадратные матрицы A и B размером nхn. Вычислить сумму элементов, лежащих на главной диагонали матрицы {Cÿ}, образованной следующим образом: Cÿ = aÿ + bÿ -------------------------------------- Если что, то прикрепил скрин. Заранее... http://www.cyberforum.ru/cpp-beginners/thread777660.html
Напишите функцию для вычисления и-го числа Фибоначчи C++
Напишите функцию для вычисления и-го числа Фибоначчи. Реализуйте функцию итеративно и рекурсивно. Скорость рекурсивной версии не должна быть заметно хуже быстродействие итеративной версии. long fib(int i) { ... } Определение: fib(0) = 1 fib(1) = 1 fib(n) = fib(n1) + fib(n2)
Как заменить одну переменную на другую во всем коде C++
Есть, предположим, переменная, которая повторяется в программе 1000 раз, нужно ее заменить на другую - как? microsoft visual studio 2012
C++ Движение и скорость на разных отрезках пути http://www.cyberforum.ru/cpp-beginners/thread777634.html
Привет форумчане!, помогайте голова взрывается. Вопрос по механике движения тела по траэктории Суть: есть автомобиль едущий со скоростью s по отрезку длинной d, проезжающий его за время t. Картинка1 :http://s2.uploads.ru/t/OkZVD.jpg моя цель узнать скорость авто по отношению к отрезку d в случае как на картинке2
C++ Сортировка данных класса Всем привет,есть класс "книга" у меня не получилось сделать несколько пунктов, 1.При добавлении авторов сохраняется последний автор,так же если вводить больше 1 то сохраняется последний(тут явно что-то упускаю) 2.нужно полученные данные отсортировать по алфавиту используя friend функцию(хотя я смысла не вижу) #include <iostream> #include <string.h> using namespace std; #define n 20 подробнее

Показать сообщение отдельно
Saddiel
 Аватар для Saddiel
7 / 7 / 0
Регистрация: 02.11.2012
Сообщений: 152
03.02.2013, 09:32  [ТС]     Определение матрицы на ортонормированность
Цитата Сообщение от Михан Посмотреть сообщение
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;
 
}
вы прям Бог. спасибо большое
 
Текущее время: 18:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru