{ Terreno Antonio mat.9714216 }
{ esercizi sostitutivi }
const
min= 0;
max= 10;
type
tipo_indice= min..max;
tipo_array_int= array[tipo_indice] of integer;
procedure leggi_array_da_tastiera(var a : tipo_array_int);
var
i : tipo_indice;
begin
for i:= min to max do
read(a[i])
end;
procedure stampa_array(var a : tipo_array_int);
var
i : tipo_indice;
begin
for i:= min to max do
write(a[i],' ')
end;
function uguale_somma_succ(var a : tipo_array_int): boolean;
var
i : tipo_indice;
condizione : boolean;
begin
condizione := true;
i:= 0;
while (i<=max-2) and (condizione) do
begin
condizione:= (a[i] = (a[i+1]+a[i+2]));
i:= i+1
end;
uguale_somma_succ:= condizione
end;
function uguale_prod_prec(var a : tipo_array_int): boolean;
var
i : tipo_indice;
condizione : boolean;
prodotto : integer;
begin
condizione := true;
prodotto:=a[min];
i:= min+1;
while (i<=max-2) and (condizione) do
begin
condizione:= (a[i]=prodotto);
prodotto:=prodotto*a[i];
i:= i+1
end;
uguale_prod_prec:= condizione
end;
function uguale_somma_prec(var a : tipo_array_int): boolean;
var
i : tipo_indice;
condizione : boolean;
somma : integer;
begin
condizione := false;
somma:=a[min];
i:= min+1;
while (i<=max) and (not condizione) do
begin
condizione:= (a[i]=somma);
somma:=somma+a[i];
i:= i+1
end;
uguale_somma_prec:= condizione
end;
function tutte_exp_2(var a: tipo_array_int): boolean;
var
i: tipo_indice;
condizione: boolean;
esponente: integer;
begin
condizione:= true;
i:= min;
esponente := 1;
while (i<=max) and (condizione) do
begin
condizione:= (a[i] = esponente);
esponente:= esponente*2;
i:=i+1
end;
tutte_exp_2:= condizione;
end;
function pari_pari(var a: tipo_array_int): boolean;
var
i: tipo_indice;
condizione: boolean;
begin
condizione:= true;
i:= min;
while (i<=max) and (condizione) do
begin
condizione:= (a[i] mod 2) = (i mod 2);
i:=i+1
end;
pari_pari:= condizione;
end;
var
vettore : tipo_array_int;
begin
leggi_array_da_tastiera(vettore);
stampa_array(vettore);
writeln;
writeln;
writeln('1-> ',uguale_somma_succ(vettore));
writeln('2-> ',uguale_prod_prec(vettore));
writeln('3-> ',uguale_somma_prec(vettore));
writeln('4-> ',tutte_exp_2(vettore));
writeln('5-> ',pari_pari(vettore));
writeln;
readln
end.