{ File: cosafa.pas }

{ - Descrivere cosa fa (non come lo fa) la funzione Cosafa.
  - Che valore viene stampato dal programma?
    Mostrare l'evoluzione della pila dei record di attivazione.
  - Fornire almeno un valore del parametro attuale per il quale l'attivazione
    della funzione Cosafa non termina.
}

program Esame1;

  function Cosafa (x: integer): integer;
  begin
    if x = 0 then
      Cosafa := 0
    else if (x mod 2) = 0 then
      Cosafa := x + Cosafa(x-2)
    else
      Cosafa := Cosafa(x-1)
  end; { Cosafa }
         
begin { Esame1 }
  writeln(Cosafa(5))
end. { Esame1 }