1 / 10

ALGORITMI NOTEVOLI

ALGORITMI NOTEVOLI. Con gli Array Prof. Carla Fanchin a.s. 2009/10. RICERCA. ARRAY DEI COSTUMI PRESENTI ALLA FESTA. Qualcuno alla festa ha il costume da …. COSTUMECERCATO (dato in input). RICERCA. CERCATO. PRIMO TENTATIVO (SBAGLIATO!!!) FOR (i=0;i<5;i++) {

terris
Download Presentation

ALGORITMI NOTEVOLI

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. RICERCA ARRAY DEI COSTUMI PRESENTI ALLA FESTA Qualcuno alla festa ha il costume da … COSTUMECERCATO (dato in input)

  3. RICERCA CERCATO PRIMO TENTATIVO (SBAGLIATO!!!) FOR (i=0;i<5;i++) { IF ( CERCATO==COSTUMI[i] ) cout << “Trovato” << endl; ELSE cout << “NON Trovato” << endl; } Array COSTUMI[5]

  4. Soluzione 1 (flag TROVATO) #include <iostream> #include <stdio.h> 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"); }

  5. Soluzione 2 – Contatore di “non trovato” #include <iostream> #include <stdio.h> 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"); }

  6. ELENCO senza RIPETIZIONI Quanti sono i costumi (diversi) che si sono presentati alla festa ?

  7. ELENCO senza RIPETIZIONI i=0 j=0 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++ }

  8. ORDINAMENTO ( algoritmo classico a CICLI FISSI, considerando che il primo elemento abbia indice 1 e che l’array 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 ] )

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

More Related