Tutorato – Lezione 6 1. Programma che stampa la tavola pitagorica

Download Report

Transcript Tutorato – Lezione 6 1. Programma che stampa la tavola pitagorica

Tutorato – Lezione 6
1. Programma che stampa la tavola pitagorica dei numeri da 1 a 9.
2. Programma che, data in input una matrice di dimensioni scelte dall'utente, stampa la matrice
trasposta della matrice data.
3. Programma che, data una matrice quadrata da tastiera, con dimensioni scelte dall'utente,
determina se la matrice data è simmetrica.
SOLUZIONI
/*
Programma che stampa la tavola pitagorica dei numeri da 1 a 9
*/
#include <iostream>
using namespace std;
int main(){
int M[10][10];
/*inizializzazione prima riga e prima colonna della matrice*/
for (int x=0; x<10; x++){
M[0][x]=x;
//inizializzazione prima riga
M[x][0]=x;
//inizializzazione prima colonna
}
for (int i=1; i<10; i++){
for (int j=1; j<10; j++){ //cacolo degli altri elementi della matrice
M[i][j]=M[0][j]*M[i][0];
}
}
for (int m=0; m<10; m++){
//stampa della matrice
for (int n=0; n<10; n++){
if (m==0 && n==0){
cout<<"\t";
//lascia il primo spazio bianco
}
else {
cout<<M[m][n]<<"\t";
}
}
cout<<"\n";
}
system("PAUSE");
}
/*
Programma che, data in input una matrice di dimensioni scelte dall'utente,
stampa la matrice trasposta della matrice data.
*/
#include <iostream>
#define MAX 10
//dimensioni massime della matrice
using namespace std;
int main(){
int colonne,righe;
int A[MAX][MAX];
/*lettura delle dimensioni della matrice*/
cout<<"Inserisci il numero di righe della matrice (max 10): "; cin>>righe;
while (righe<1 || righe>10){
cout<<"La scelta effettuata è errata! Reinserisci il numero di righe: ";
cin>>righe;
}
cout<<"Inserisci il numero di colonne della matrice (max 10): "; cin>>colonne;
while (colonne<1 || colonne>10){
cout<<"La scelta effettuata è errata! Reinserisci il numero di colonne: ";
cin>>colonne;
}
cout<<endl;
/*Caricamento della matrice da tastiera*/
for (int i=0; i<righe; i++){
for (int j=0; j<colonne; j++){
cout<<"Inserisci l'elemento della matrice A["<<i<<"]["<<j<<"]: ";
cin>>A[i][j];
}
}
/*Stampa della matrice trasposta*/
cout << "\nLa matrice trasposta è: \n";
for(int y=0; y<colonne; y++){
//è stato invertito il ciclo delle righe
for (int x=0; x<righe; x++){ //con quello delle colonne
cout<<A[x][y]<<"\t";
}
cout<<endl;
}
system("PAUSE");
}
/*
Programma che, data una matrice quadrata da tastiera, con dimensioni scelte dall'utente,
determina se la matrice data è simmetrica.
*/
#include <iostream>
#define MAX 10 //dimensioni massime della matrice
using namespace std;
int main(){
short int simmetrica=1; //1 = matrice simmetrica; 2 = matrice non simmetrica
int M[MAX][MAX], dim;
/*lettura dimensioni della matrice*/
cout<<"Inserire le dimensioni della matrice quadrata (max "<<MAX<<"): ";
cin>>dim;
while (dim<1 || dim>MAX){
cout<<"Scelta non corretta! Reinserisci la dimensione della matrice: ";
cin>>dim;
}
/*caricamento degli elementi della matrice da tastiera*/
for (int i=0; i<dim; i++){
for (int j=0; j<dim; j++){
cout<<"Inserisci l'elemento della matrice in posizione "<<i<<", "<<j<<": ";
cin>>M[i][j];
}
}
/*controllo di ogni singolo elemento A[x][y] con l'opposto A[y][x]*/
for (int x=0; x<dim; x++){
for (int y=0; y<dim; y++){
if (M[x][y]!=M[y][x]){
simmetrica=0;
break;
}
}
}
if (simmetrica) cout<<"\nLa matrice è simmetrica.";
else cout<<"\nLa matrice non è simmetrica.";
system("PAUSE");
}