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

Проверка матрицы на ортогональность - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
Red Planet
 Аватар для Red Planet
49 / 10 / 2
Регистрация: 20.09.2009
Сообщений: 263
13.02.2010, 18:19     Проверка матрицы на ортогональность #1
Написал вот такой код проверки квадратной матрицы на ортогональность.
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
//---------------------------------------------------------------------------
#include <vcl>
#include <iostream>
#include <conio>
using namespace std;
 
//---------------------------------------------------------------------------
typedef int* ip;
bool ort (int **A, int **E, int n);
 
void main ()
{
 system ("title Orthogonal matrix");
 int n, **A = new int *[n], **E = new int *[n];
 ort (A, E, n);
 
 for (int i=0; i<n; i++)
 {
  delete[]A[i]; delete []E[i];
 }
 
 delete []A; delete []E;
 system ("pause");
}
 
//---------------------------------------------------------------------------
 
bool ort (int **A, int **E, int n)
{
 bool res=1;
 cout <<"Vvedite razmernost' matricy A: ";
 cin >>n;
 A = new int*[n], E = new int*[n];
 
 for (int i=0; i<n; i++)
 {
  A[i] = new int[n]; E[i]= new int[n];
 }//Sozdanie matrizy A i E.
 
 for (int i=0; i<n; i++)
 {
  for (int j=i; j<n; j++)
  {
   cout <<"a"<<i+1<<j+1<<"=";
   cin >>A[i][j];
   if (i!=j) A[j][i]=A[i][j];
  }//j.
 }//i. Vvod matrizy A.
 
 for (int i=0; i<n; i++)
 {
  cout <<"\n";
  for (int j=0; j<n; j++) cout <<A[i][j]<<"\t";
 }//i. Vyvod matrizy A.
 
 int elem=0;
 for (int i=0; i<n; i++)
 {
  for (int j=0; j<n; j++)
  {
   elem=0;
   for (int k=0; k<n; k++) elem=elem+A[i][k]*A[j][k];
   E[i][j]=elem;
   if ((i==j && elem!=1) || (i!=j && elem!=0)) {res=0; break;}
  }//j.
 }//i.
 
 if (res) cout <<"\n\nThe matrix A is orthogonal.\n"; else cout <<
 "\n\nThe matrix A is not orthogonal.\n";
 return res;
}//ort.
Проверьте пожалуйста на наличие ошибок/багов/глюков/плохого стиля программирования. Я матрицы вбивал, вроде нормально работает, но кто знает, может что и закралось. Критика, пожелания, предложения приветствуются.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.02.2010, 18:19     Проверка матрицы на ортогональность
Посмотрите здесь:

C++ Проверка квадратной матрицы на симметричность
C++ Проверка на количество элементов матрицы
C++ Проверка типа матрицы
C++ ортогональность
Матрицы. Классы. Проверка ввода C++
C++ проверка элементов матрицы
Проверка симметричности матрицы C++
C++ Шаблонный класс матрицы. Проверка матрицы на пустоту

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 18:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru