MAIN :
#include<iostream>
#include<string>
#include "header.h"
using namespace std;
int main(){
int **mat1, **mat2;
int n1=0, n2=0;
string file1, file2;
file1 = "C:\\fondamenti\\compito1\\mat1.txt";
file2 = "C:\\fondamenti\\compito1\\mat2.txt";
carica_matrice(file1, mat1, n1);
if (n1 == -1)
return -1;
carica_matrice(file2, mat2, n2);
if (n2 == -1)
return -1;
cout << "mat1:\n";
stampa_matrice_quadrata(mat1, n1);
cout << "\nmat2:\n";
stampa_matrice_quadrata(mat2, n2);
cout << endl;
confronta(mat1, n1, mat2, n2);
system("PAUSE");
for (int i = 0; i < n1; i++)
delete[] mat1[i];
delete[] mat1;
for (int i = 0; i < n2; i++)
delete[] mat2[i];
delete[] mat2;
return 0;
}
*********************************************************************************
HEADER.CPP:
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
void carica_matrice(string file, int** &mat, int &n){
ifstream mioFile;
mioFile.open(file, ios::in);
if (!mioFile){
cout << "Errore nell'apertura del file!\n";
n = -1;
return;
}
mioFile >> n;
mat = new int*[n];
for (int i = 0; i < n; i++)
mat[i] = new int[n];
for (int i = 0; i < n; i++){
for (int j = 0; j < n; j++)
mioFile >> mat[i][j];
}
mioFile.close();
return;
}
void stampa_matrice_quadrata(int** mat, int n){
for (int i = 0; i < n; i++){
for (int j = 0; j < n; j++){
cout << mat[i][j] << " ";
}
cout << endl;
}
return;
}
void confronta(int** mat1, int n1, int** mat2, int n2){
if (n1 != n2){
cout << "Le matrici hanno dimensioni diverse, non possono avere righe o colonne uguali\n";
return;
}
//Confronto righe
int trovato;
bool uguale;
int j;
for (int k = 0; k < n1; k++){
trovato = 0;
for (int i = 0; i < n1; i++){
uguale = true;
j = 0;
while (j < n1 && uguale){
if (mat1[k][j] != mat2[i][j])
uguale = false;
j++;
}
if (uguale){
trovato++;
if (trovato == 1)
cout << "La riga " << k << " di mat1 e' uguale alla riga " << i;
else
cout << " e alla riga " << i;
}
}
if (trovato != 0)
cout << " di mat2.\n";
}
//Confronto colonne
for (int k = 0; k < n1; k++){
trovato = 0;
for (int i = 0; i < n1; i++){
uguale = true;
j = 0;
while (j < n1 && uguale){
if (mat1[j][k] != mat2[j][i])
uguale = false;
j++;
}
if (uguale){
trovato++;
if (trovato == 1)
cout << "La colonna " << k << " di mat1 e' uguale alla colonna " << i;
else
cout << " e alla colonna " << i;
}
}
if (trovato != 0)
cout << " di mat2.\n";
}
return;
}
*********************************************************************************
HEADER.H:
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
void carica_matrice(string file, int** &mat, int &n);
void stampa_matrice_quadrata(int** mat, int n);
void confronta(int** mat1, int n1, int** mat2, int n2);
domenica 12 febbraio 2017
Iscriviti a:
Commenti sul post
(
Atom
)
Nessun commento :
Posta un commento