{ File: poli.pas }

program ValutazionePolinomio;

const
  N = 4;    {grado dei polinomi trattati}

{$I POLIDEF.PAS}  {direttiva per l'inclusione delle definizioni}

var               { le variabili da usare nel main }
  pl : Polinomio;
  x  : real;

  function Potenza (numero: real; esp: integer): real;
  { Calcola numero elevato a esp. }
  begin
    if esp=0 then
      Potenza := 1
    else if (esp mod 2) = 0 then
      Potenza := sqr(Potenza(numero, esp div 2))
    else
      Potenza := numero * sqr(Potenza(numero, esp div 2))
  end; { Potenza }


  function Valuta (p: Polinomio; valore: real): real;
  { La funzione di valutazione che serve. }
  var
    i   : integer;
    val : real;
  begin 
    val := 0;
    for i := 0 to N do
      val := val + p[i] * Potenza(valore, i);
    Valuta := val;
  end; { Valuta }


begin { ValutazionePolinomio }
  writeln('lettura polinomio');
  LeggiPolinomio(pl);
  writeln(' mi hai dato il polinomio seguente:');
  ScriviPolinomio(pl);
  writeln('valore della variabile nel quale calcolare il polinomio? ');
  readln(x);
  writeln(Valuta(pl, x):10:2);
  writeln('ciao');
  readln
end. { ValutazionePolinomio }