{ File: pesi.pas }

{ Scopo: esercizio sull'uso di cicli e di procedure }

program Pesi;

var
  categoria, scelta : char; { un carattere per la categoria;
                              un altro carattere per contenere la risposta
                              dell'utente alla domanda "vuoi inserire altri pesi?" }
  peso: real;               { il peso dato in input }

  procedure CalcolaCategoria (p: real; var c: char);
  begin
    if (p <= 50.0) then
      c := 'A'
    else {se siamo qui e' perche' il peso era maggiore di 50}
      if (p <= 125.0) then
        c := 'B'
      else {se siamo qui e' perche' il peso era maggiore di 50 e anche di 125!}
        if (p <= 200.0) then
          c := 'C'
        else
          c := 'D';
  end; { CalcolaCategoria }


begin { Pesi }
  repeat
    write('peso da valutare: ');
    readln(peso);
    { per valutare il peso, consideriamo che  se e' scorretto dobbiamo
      solo stampare un messaggio e non dobbiamo chiamare la procedura }
    if (peso < 0) then
      writeln('dato scorretto: ', peso :5:2, ' non e'' un valore ammissibile')
    else
    begin
      CalcolaCategoria(peso, categoria);
      writeln('----------------- peso di categoria ', categoria);
    end;
    { il ciclo si conclude con la richiesta se si vuole continuare }
    writeln(' si vuole valutare un altro peso? (S/N) ');
    readln(scelta);
  until (scelta <> 'S') and (scelta <> 's');    { fine ciclo }

  writeln(' fine ');
end. { Pesi }