Classe IV F - Biasin M. e Fellin G. Risoluzione problema #10 Di Marco Biasin e Giulio Fellin.

23
Classe IV F - Biasin M. e Fellin G. Risoluzione problema #10 Di Marco Biasin e Giulio Fellin.

Transcript of Classe IV F - Biasin M. e Fellin G. Risoluzione problema #10 Di Marco Biasin e Giulio Fellin.

Page 1: 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.

Page 2: 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

Page 3: 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.

//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

Page 4: 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.

//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

Page 5: 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.

0

1

2

3

0 1 2 3

1 2 3 45 6 7 89 101112

13141516

x

y

Page 6: 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.

0

1

2

3

0 1 2 3

1 2 3 45 6 7 89 101112

13141516

x

yy+x-q=0

Page 7: 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.

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

Page 8: 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.

//

//

//

//

//

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

Page 9: 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.

//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

Page 10: 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

1

y+x-q=0

q = 0

Page 11: 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

1 2 5

y+x-q=0

q = 1

Page 12: 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

1 2 5

y+x-q=0

3

q = 2

Page 13: 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 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

Page 14: 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.

0

1

2

3

0 1 2 3

1 2 3 45 6 7 89 101112

13141516

x

yq pari

q dispari

Page 15: 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.

//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++;}}}

Page 16: 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.

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

Page 17: 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

1

q = 0pari

y+x-q=0

Page 18: 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

1 2 5

q = 1dispari

y+x-q=0

Page 19: 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

1

q = 2pari

y+x-q=0

2 59 6 3

Page 20: 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

q = 3dispari

y+x-q=0

1 2 59 6 34 7 10

13

...

Page 21: 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.

for(i=0;i<n*m;i++){if(i==n*m-1)

System.out.print(vett[i]+".");else

System.out.print(vett[i]+", ");

}

Output

Page 22: 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.

Bianco = 0Nero = 1

Uso pratico

Page 23: 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.

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_