Ci è stato posto il problema di ricercare all’interno di un vettore un valore. Abbiamo realizzato due programmi: in uno i valori del vettore vengono definiti nella scrittura del programma(lo abbiamo chiamato ricerca); nel secondo i valori del vettore vengono definiti dall’utente (lo abbiamo chiamato ricercacasuale). Il programma, alla fine, fornisce una risposta: “il valore è stato trovato”, se il valore cercato è stato trovato, “il valore non è stato trovato”, se il valore cercato non è stato trovato.
Procedura assegna;
Inizio
V[1]:=35;
V[2]:=40;
V[3]:=85;
V[4]:=85;
V[5]:=76;
V[6]:=51;
V[7]:=33;
V[8]:=83;
V[9]:=16;
V[10]:=28;
fine;
Procedura conta;
Var h:interi;
Inizio
i:=0;
g:=0;
h:=0;
Per i:=1 a 100 esegui
Inizio
h:=h+1;
Se v[i]<>0 allora g:=h;
fine;
fine;
Procedura ins;
Inizio
Scrivi('quale numero vuoi cercare?');
Leggi(t);
fine;
Procedura visua;
Var y:interi;
Inizio
Per i:=1 a 100 esegui
Inizio
Se verit=true allora
Inizio
Se l[i]=1 allora
scrivi('il numero è stato trovato nella posizione: ',i);
fine;
fine;
se verit=false allora scrivi('il numero non è stato trovato');
Fine;
Procedura cerca;
Inizio
verit:=false;
per i:=1 a 100 esegui
inizio
se t=v[i] allora
Inizio
verit:=true;
l[i]:=1;
fine;
fine;
Fine;
Inizio
assegna;
conta;
ins;
cerca;
visua;
Scrivi(' ');
Scrivi (' ');
Scrivi ('programma realizzato da Montanaro Teodoro e Massaro Alessio');
Fine.
Procedura assegna;
Procedura conta;
Procedura INS;
O
I
Procedura visua;
O
Procedure cerca;
{Programma principale}
O
Function mth$random(var b:integer):real;external;
Procedura assegna;
Inizio
b:=clock;
Per i:=1 a 100 esegui
Inizio
a:=mth$random(b);
v[i]:=trunc(a*999999+1);
Fine;
Fine;
Procedura ins;
Inizio
Scrivi('quale numero vuoi cercare?');
Leggi(t);
Fine;
Procedura visua;
Var y:integer;
Inizio
Per i:=1 a 100 esegui
Inizio
Se verit=true allora
Inizio
Se l[i]=1 allora
Scrivi('il numero è stata trovata nella posizione: ',i);
Fine;
Fine;
Se verit=false allora Scrivi('il numero non è stato trovato');
Fine;
Procedura cerca;
Inizio
verit:=false;
Per i:=1 a 100 esegui
Inizio
Se t=v[i] allora
Inizio
verit:=true;
l[i]:=1;
Fine;
Fine;
Fine;
{Programma principale}
Inizio
g:=100;
assegna;
ins;
cerca;
visua;
Scrivi(' ');
Scrivi(' ');
Scrivi('Il programma è stato realizzato da Montanaro Teodoro e Massaro Alessio');
Fine.
Procedura assegna;
Procedura ins;
Procedura visua;
Procedura cerca;
Programma principale;
O
O
O