Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Проверьте, пожалуйста (http://www.tehnari.ru/f41/t82230/)

bulding 15.12.2012 02:22

Проверьте, пожалуйста
 
по-моему что то не правильно в проверке ортогональности матрицы

Код:

#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.



Часовой пояс GMT +4, время: 22:18.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.