{ File: sommaN.pas }

{ Scopo: uso di una funzione;
         identificatore funzione non puo` essere usato in un'espressione per
         accedere al valore precedentemente assegnatogli }

program SommaNnumeri;
{ legge n numeri da tastiera e ne stampa la somma }

var
  quanti_numeri : integer;  { quanti numeri vanno letti }

  function Somma (n : integer) : integer;
  var
    dato     : integer;    { numero letto di volta in volta }
    parziale : integer;    { somma parziale degli interi letti
                             fino ad un certo punto }
    i        : integer;    { indice del ciclo }
  begin
    parziale := 0; { prima di leggere il primo numero la somma parziale e` 0 }
    for i := 1 to n do
    begin
      write(i:2, ': ');
      readln(dato);
      parziale := parziale + dato   { NON si puo' scrivere:
                                      Somma := Somma + dato }
    end;
    Somma := parziale
  end; { Somma }

begin { SommaNnumeri }
  write('Quanti numeri vuoi inserire ? ');
  readln(quanti_numeri);
  writeln;
  writeln(Somma(quanti_numeri))
end. { SommaNnumeri }