Â
Â
The Code given below can be used in TURBO C++ Compilers: -
#include <iostream.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
class Matrix
{
public:
int arr[10][10], transpose[10][10], prod[10][10];
void input(int i, int j)
{
cout << "Enter number: ";
cin >> arr[i][j];
}
void display(int Array[][10], int sz)
{
for (int i = 0; i < sz; i++)
{
for (int j = 0; j < sz; j++)
{
cout << Array[i][j] << " ";
}
cout << endl;
}
}
void getTranspose(int sz)
{
for (int i = 0; i < sz; i++)
{
for (int j = 0; j < sz; j++)
{
transpose[j][i] = arr[i][j];
}
}
}
void product(int sz)
{
int sum = 0;
for (int i = 0; i < sz; i++)
{
for (int j = 0; j < sz; j++)
{
// sum=0;
for (int k = 0; k < sz; k++)
{
sum += (arr[i][k] * transpose[k][j]);
}
prod[i][j] = sum;
sum = 0;
}
}
}
/*
1 - true
0 - false
*/
int checkOrthogonal(int sz)
{
for (int i = 0; i < sz; i++)
{
for (int j = 0; j < sz; j++)
{
if (i != j)
{
if (prod[i][j] != 0)
return 0;
}
else
{
if (prod[i][j] != 1)
return 0;
}
return 1;
}
}
}
};
int main()
{
clrscr();
Matrix M;
int sz;
cout << "Enter array size: ";
cin >> sz;
for (int i = 0; i < sz; i++)
{
for (int j = 0; j < sz; j++)
{
M.input(i, j);
}
}
cout << "\n Entered matrix:\n";
M.display(M.arr, sz);
M.getTranspose(sz);
cout << "\n Transpose:\n";
M.display(M.transpose, sz);
cout << "\n Product:\n";
M.product(sz);
M.display(M.prod, sz);
int check = M.checkOrthogonal(sz);
if (check == 1)
{
cout << "\nMatrix is orthogonal!";
}
else
{
cout << "\nMatrix is NOT orthogonal!";
}
getch();
return 0;
}
The Code given below can be used in gcc/g++ Compilers: -
#include <iostream>
using namespace std;
class Matrix
{
public:
int arr[10][10], transpose[10][10], prod[10][10];
void input(int i, int j)
{
cout << "Enter number: ";
cin >> arr[i][j];
}
void display(int Array[][10], int sz)
{
for (int i = 0; i < sz; i++)
{
for (int j = 0; j < sz; j++)
{
cout << Array[i][j] << " ";
}
cout << endl;
}
}
void getTranspose(int sz)
{
for (int i = 0; i < sz; i++)
{
for (int j = 0; j < sz; j++)
{
transpose[j][i] = arr[i][j];
}
}
}
void product(int sz)
{
int sum = 0;
for (int i = 0; i < sz; i++)
{
for (int j = 0; j < sz; j++)
{
// sum=0;
for (int k = 0; k < sz; k++)
{
sum += (arr[i][k] * transpose[k][j]);
}
prod[i][j] = sum;
sum = 0;
}
}
}
bool checkOrthogonal(int sz)
{
for (int i = 0; i < sz; i++)
{
for (int j = 0; j < sz; j++)
{
if (i != j)
{
if (prod[i][j] != 0)
{
return false;
}
}
else
{
if (prod[i][j] != 1)
{
return false;
}
}
return true;
}
}
}
};
int main()
{
Matrix M;
int sz;
cout << "Enter array size: ";
cin >> sz;
for (int i = 0; i < sz; i++)
{
for (int j = 0; j < sz; j++)
{
M.input(i, j);
}
}
cout << "\n Entered matrix:\n";
M.display(M.arr, sz);
M.getTranspose(sz);
cout << "\n Transpose:\n";
M.display(M.transpose, sz);
cout << "\n Product:\n";
M.product(sz);
M.display(M.prod, sz);
bool check = M.checkOrthogonal(sz);
if (check == true)
{
cout << "\nMatrix is orthogonal!";
}
else
{
cout << "\nMatrix is NOT orthogonal!";
}
return 0;
}
#ENJOY CODING
Post a Comment
FOR ANY DOUBTS AND ERRORS FEEL FREE TO ASK. YOUR DOUBTS WILL BE ADDRESSED ASAP