La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

ALGORITMI NOTEVOLI Con gli Array Prof. Carla Fanchin a.s. 2009/10.

Presentazioni simili


Presentazione sul tema: "ALGORITMI NOTEVOLI Con gli Array Prof. Carla Fanchin a.s. 2009/10."— Transcript della presentazione:

1 ALGORITMI NOTEVOLI Con gli Array Prof. Carla Fanchin a.s. 2009/10

2 RICERCA STREGA MAGO ROSPO ZUCCA GNOMO ZORRO Qualcuno alla festa ha il costume da … COSTUMECERCATO (dato in input) ARRAY DEI COSTUMI PRESENTI ALLA FESTA

3 RICERCA STREGA MAGO ROSPO ZUCCA GNOMO ZUCCA PRIMO TENTATIVO (SBAGLIATO!!!) FOR (i=0;i<5;i++) { IF ( CERCATO==COSTUMI[i] ) cout << Trovato << endl; ELSE cout << NON Trovato << endl; } CERCATO Array COSTUMI[5]

4

5 Soluzione 1 (flag TROVATO) #include using namespace std; int main() { string COSTUME[5]={"STREGA","MAGO","ROSPO","ZUCCA","GNOMO"}; int i; string CERCATO="ZUCCA"; bool TROVATO=false; for (i=0;i<5;i++) { if ( CERCATO==COSTUME[i] ) TROVATO=true; } // FUORI dal ciclo if ( TROVATO==true ) cout << "Trovato" << endl; else cout << "NON Trovato" << endl; system("pause"); }

6 Soluzione 2 – Contatore di non trovato #include using namespace std; int main() { string COSTUME[5]={"STREGA","MAGO","ROSPO","ZUCCA","GNOMO"}; int i; string CERCATO="ZUCCA"; int CONTA=0; for (i=0;i<5;i++) { if ( CERCATO==COSTUME[i] ) cout << "Trovato" << endl; else CONTA++; } // FUORI dal ciclo if ( CONTA==5 ) cout << "NON trovato" << endl; system("pause"); }

7 ELENCO senza RIPETIZIONI STREGA MAGO STREGA MAGO Quanti sono i costumi (diversi) che si sono presentati alla festa ?

8 ELENCO senza RIPETIZIONI STREGA MAGO STREGA MAGO Devo utilizzare un array di appoggio, della stessa dimensione di quello originale (nel caso in cui i costumi fossero TUTTI diversi). Devo scorrere il primo array (con indice i) e per ogni elemento effettuare una RICERCA (v. algoritmo precedente) nel secondo If (trovato==false) { vett2[ j] = vett1 [i] ; j++ } i=0j=0

9 ORDINAMENTO ( algoritmo classico a CICLI FISSI, considerando che il primo elemento abbia indice 1 e che larray abbia n elementi) FOR i = 1 TO (n – 1) FOR j = (i + 1) TO n if vett [ i ] > vett [ j ] SWAP (vett [ i ], vett [ j ] )

10 NB. Cicli FOR annidati FOR i = 1 TO 10 FOR j = 1 TO 10 write ( i, j) Output prodotto: 1,1 – 1, 2 - …… - 1, 10 2,1 – 2, 2 - …… - 2, 10 … 10, 1 - …………..10, 10


Scaricare ppt "ALGORITMI NOTEVOLI Con gli Array Prof. Carla Fanchin a.s. 2009/10."

Presentazioni simili


Annunci Google