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
|
#include <fstream>
using namespace std;
// Initializam o functie "afiseazaMatricea", care sa poata fi folosita pt. a afisa toate valorile matricei si pozitiile lor
void afiseazaMatricea(double matrix[1001][1001])
{
int i,j;
for (i=1; i<=1001; ++i)
for (j=1; j<=1001; ++j)
{
out<<"Valoarea matricei pentru linia "<<i<<" si coloana "<<j<<" este: "<<matrix[i][j]<<"\n";
}
}
// Initializam o functie "afiseazaTranspusa", care sa poata fi folosita pt. a afisa toate valorile transpusei si pozitiile lor
void afiseazaTranspusa(double transpusa[1001][1001])
{
int i,j;
for (i=1; i<=1001; ++i)
for (j=1; j<=1001; ++j)
{
out<<"Valoarea transpusei pentru linia "<<j<<" si coloana "<<i<<" este: "<<transpusa[j][i]<<"\n";
}
}
// Vom calcula minimul, maximul, transpusa matricei si vom verifica cate min si max au fost gasite pe parcurs si afisam matricea
int main()
{
// Introducem o matrice de 1000 randuri si 1000 coloane incepand cu 1
int matrix[1001][1001];
int transpusa[1001][1001];
int k=0,l=0,i,j,max,min,transpusa;
// Introducem ca baza de date pentru citire si scriere fisierele matrix.in respectiv matrix.out
ifstream in("matrix.in");
ofstream out("matrix.out");
// Parcurgem matricea
for (i=1; i<=1001; ++i)
for (j=1; j<=1001; ++j)
{
// Citim o valoare din fisierul matrix.in pentru spatiul de pe linia i si coloana j
in>>matrix[i][j];
// Initializam maximul si minimul matricii cu primul element din matrice
max=matrix[1][1];
min=matrix[1][1];
// Verificam daca exista un numar mai mare in matrice decat cel presupus, iar daca da maximul ia valoarea matrix[i][j]
if (max>matrix[i][j])
{
max=matrix[i][j];
// Calculam cate inlocuiri s-au efectuat pana s-a ajuns la valoarea maxima din matrice
k++;
}
// Verificam daca exista un numar mai mic in matrice decat cel presupus, iar daca da minimul ia valoarea matrix[i][j]
if (min<matrix[i][j])
{
min=matrix[i][j];
// Calculam cate inlocuiri s-au efectuat pana s-a ajuns la valoarea minima din matrice
l++;
}
// Calculam transpusa matricii cu j linii si i coloane
transpusa[j][i]=matrix[i][j];
// Afisam in fisierul matrix.out valoarea pentru transpusa matricei, valoarea minima si maxima din matrice
out<<transpusa[j][i]<<" ";
out<<" "<<min<<" "<<max;
// Afisam si contorul pentru minim si maxim
out<<" "<<k<<" "<<l;
// Afisam matricea cu pozitia si valoarea corespunzatoare folosind functia definita anterior
out<<afiseazaMatricea(matrix);
// Afisam transpusa matricei cu pozitia si valoarea corespunzatoare folosind functia definita anterior
out<<afiseazaTranspusa(transpusa);
}
in.close();
out.close();
return 0;
}
|