Classe IV F - Biasin M. e Fellin G. Risoluzione problema #10 Di Marco Biasin e Giulio Fellin.
-
Upload
nico-merlo -
Category
Documents
-
view
215 -
download
2
Transcript of Classe IV F - Biasin M. e Fellin G. Risoluzione problema #10 Di Marco Biasin e Giulio Fellin.
Classe IV F - Biasin M. e Fellin G.
Risoluzione problema #10
Di Marco Biasin e Giulio Fellin.
Classe IV F - Biasin M. e Fellin G.
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
Classe IV F - Biasin M. e Fellin G.
//leggo la dimensione della matricedo{System.out.print("Inserisci il numero di righe della matrice: ");n=Integer.parseInt(tastiera.readLine());
}while(n<=0);do{System.out.print("Inserisci il numero di colonne della matrice: ");m=Integer.parseInt(tastiera.readLine());
}while(n<=0);
Inizio programma
Classe IV F - Biasin M. e Fellin G.
//dichiarazione della matriceint mat [][]=new int[n][m];int vett[]=new int[n*m];//caricamento della matricefor(i=0;i<n;i++){for(j=0;j<m;j++){
System.out.print("Inserisci il "+(j+1)+"° numero della "+(i+1)+"^ riga: "); mat[i][j]=Integer.parseInt(tastiera.readLine());
}}
Inizio programma
Classe IV F - Biasin M. e Fellin G.
0
1
2
3
0 1 2 3
1 2 3 45 6 7 89 101112
13141516
x
y
Classe IV F - Biasin M. e Fellin G.
0
1
2
3
0 1 2 3
1 2 3 45 6 7 89 101112
13141516
x
yy+x-q=0
Classe IV F - Biasin M. e Fellin G.
0
1
2
3
0 1 2 3
1 2 3 45 6 7 89 101112
13141516
x
y
d=n√2a=√2/2
k=(d/a)-1k=2*n-1
Classe IV F - Biasin M. e Fellin G.
//
//
//
//
//
51015
0
1
2
40 1 2 3
1 2 3 46 7 8 9
11121314
x
y
Matrice rettangolare
diff = m-n
k=2*m-1-diff
k=n+m-1
Classe IV F - Biasin M. e Fellin G.
//assegnazione valore max qk=n+m-1;
//creazione vettore ordinatofor(int q=0;q<k;q++){for(int y=0;y<n;y++){
for(int x=0;x<m;x++){if((y+x-q)==0){
vett[w]=mat[y][x];w++;
}}}}
Ordinamento vettore
Classe IV F - Biasin M. e Fellin G.
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
1
y+x-q=0
q = 0
Classe IV F - Biasin M. e Fellin G.
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
1 2 5
y+x-q=0
q = 1
Classe IV F - Biasin M. e Fellin G.
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
1 2 5
y+x-q=0
3
q = 2
Classe IV F - Biasin M. e Fellin G.
1 2 3 45 6 7 89101112
13141516
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 161 2 5 9 6 3 4 7 10 13 14 11 8 12 15 161 2 5 3 6 9 4 7 10 13 8 11 14 12 15 16
Classe IV F - Biasin M. e Fellin G.
0
1
2
3
0 1 2 3
1 2 3 45 6 7 89 101112
13141516
x
yq pari
q dispari
Classe IV F - Biasin M. e Fellin G.
//q pari
for(int y=n-1;y>=0;y--){for(int x=m-1;x>=0;x--){
if((y+x-q)==0){
vett[w]=mat[y][x]; w++;}}}
Caso q pari/dispari
//q dispari
for(int y=0;y<n;y++){for(int x=0;x<m;x++){
if((y+x-q)==0){
vett[w]=mat[y][x]; w++;}}}
Classe IV F - Biasin M. e Fellin G.
for(int q=0;q<k;q++){if(q%2==0){for(int y=n-1;y>=0;y--){for(int x=m-1;x>=0;x--){if((y+x-q)==0){vett[w]=mat[y][x];w++;}}}}else{for(int y=0;y<n;y++){for(int x=0;x<m;x++){if((y+x-q)==0){vett[w]=mat[y][x];w++;
}}}}}
Programma corretto
Classe IV F - Biasin M. e Fellin G.
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
1
q = 0pari
y+x-q=0
Classe IV F - Biasin M. e Fellin G.
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
1 2 5
q = 1dispari
y+x-q=0
Classe IV F - Biasin M. e Fellin G.
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
1
q = 2pari
y+x-q=0
2 59 6 3
Classe IV F - Biasin M. e Fellin G.
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
q = 3dispari
y+x-q=0
1 2 59 6 34 7 10
13
...
Classe IV F - Biasin M. e Fellin G.
for(i=0;i<n*m;i++){if(i==n*m-1)
System.out.print(vett[i]+".");else
System.out.print(vett[i]+", ");
}
Output
Classe IV F - Biasin M. e Fellin G.
Bianco = 0Nero = 1
Uso pratico
Classe IV F - Biasin M. e Fellin G.
Il programma “Qwerty 2.0 ®”, il nome, il logo, i contenuti presenti sulla presentazione (i testi, la grafica, i codici, ecc.) nonché le modalità di presentazione e formazione del contenuto stesso, salvo indicazione contraria, sono di proprietà dei titolari del programma e sono protetti dalle leggi italiane ed internazionali.È consentita l'archiviazione elettronica e
la stampa dei contenuti di Qwerty 2.0 solo a scopo umanitario.È vietato qualsiasi altro utilizzo
(commerciale, didattico, ecc.) dei contenuti del suddetto sito da parte di terzi, senza il preventivo consenso scritto del titolare_