Algoritmi notevoli
Download
1 / 10

ALGORITMI NOTEVOLI - PowerPoint PPT Presentation


  • 158 Views
  • Uploaded on

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++) {

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' ALGORITMI NOTEVOLI' - terris


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Algoritmi notevoli

ALGORITMI NOTEVOLI

Con gli Array

Prof. Carla Fanchin

a.s. 2009/10


Ricerca
RICERCA

ARRAY DEI COSTUMI PRESENTI ALLA FESTA

Qualcuno alla festa ha il costume da …

COSTUMECERCATO

(dato in input)


Ricerca1
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]


Soluzione 1 flag trovato
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");

}


Soluzione 2 contatore di non trovato
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");

}


Elenco senza ripetizioni
ELENCO senza RIPETIZIONI

Quanti sono i costumi (diversi)

che si sono presentati alla festa ?


Elenco senza ripetizioni1
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++ }


Ordinamento
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 ] )


Nb cicli for annidati
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


ad