non è uno scherzo..... devo consegniarlo dopo domani al prof di info.... è un programma che risolve equazioni di secondo grado...

ditemi se per qualche valore non va o se si può migliorare

codice:
Program equaazioni; 
uses crt;
var a,b,c,x1,x2:real;
    r:char;
begin
 clrscr;
   Repeat
     writeln(' inserire se si vuole risolvere una equazione di secondo grado ');
     writeln(' Pura (ax^2 + c ), Spuria (ax^2 + bx), Monomia (ax^2) o a ');
     writeln(' Coefficienti maggiori di zero (ax^2 bx c). Il programma risolvere l''equazione ');
     writeln(' inserire "P" per pura, "S" per spuria, "M" per monomia e "C" ');
     writeln(' per equazioni con tutti  e tre i coefficienti maggiori di zero ');
     writeln(' scrivere minuscolo ');
     readln(r);
   until (r='p') or (r='s') or (r='m') or (r='c');
   repeat
    writeln(' inserire il valore di a ');
    readln(a);
   until a<>0;
     if r='p'
       then
         begin
         writeln(' inserire il valore di c ');
         readln(c);
           if -(c/a)<0
             then writeln(' equazione pura impossibile ')
             else
               begin
                 x1:= sqrt(-(c/a));
                 x2:= -(sqrt(-(c/a)));
                 writeln(' x1=',x1:0:2,' e x2=',x2:0:2,' ');
              end;
         end
         else
     if r='s'
        then
          begin
          writeln(' inserire il valore di b');
          readln(b);
           x2:=-(b/a);
           writeln(' x1=0 e x2=',x2:0:2,' ');
          end
        else
     if r='m'
        then
         writeln(' x1=0 e x2=0 ')
        else
     if r='c'
        then
        begin
        writeln(' inserire il valore di b e c ');
        readln(b,c);
         if sqr(b)-(4*a*c)<0
          then writeln(' equazione impossibile ')
           else
            if sqr(b)-(4*a*c)=0
             then
              begin
               x1:=-b/(2*a);
               writeln(' x1=',x1:0:2,' ');
              end
               else
                begin
                 x1:=(-b - sqrt( sqr(b) + 4*a*c))/(2*a);
                 x2:=(-b + sqrt( sqr(b) + 4*a*c))/(2*a);
                 writeln(' x1=',x1:0:2,' e x2=',x2:0:2,' ');
                end;
            end;
      readln;
end.