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