Ich habe gerade mal Bock auf ein bisschen Pascal gehabt.
Deshalb bekommst Du von mir sogar ein vollstaendiges Programm:
program Alter;
uses crt;
var gleichung: string;
stelle, fcode: integer;
p,q,ergebnis1, ergebnis2: real;
procedure fehler;
begin
writeln('Ihre Gleichung entspricht nicht den Vorgaben!!!');
readln;
halt;
end;
begin
clrscr;
writeln('Bitte geben Sie eine quadratische Gleichung der Form "y=x^2+px+q" ein: ');
readln(gleichung);
{ y=x^2 aus dem String loeschen }
stelle:=pos('x^2',gleichung);
if stelle=0 then fehler;
delete(gleichung,1,stelle+2);
{ p aus dem String kopieren und als numerischen Wert interpretieren, hier als relle Zahl }
stelle:=pos('x',gleichung);
val(copy(gleichung,1,stelle-1),p,fcode);
if fcode<>0 then fehler;
{ das selbe mit q machen... }
val(copy(gleichung,stelle+1,length(gleichung)),q,fcode);
if fcode<>0 then fehler;
{ Pruefen, ob der Term unter der Wurzel negativ ist -> keine Loesung }
if (0.25*sqr(p)<q) then
begin
writeln('Die quadratische Gleichung hat keine relle Loesung');
readln;
halt;
end;
{ Pruefen, ob der Term unter der Wurzel null ist -> eine Loesung }
if (0.25*sqr(p)=q) then
begin
ergebnis1:=(-0.5)*p;
writeln('Die quadratische Gleichung hat nur eine relle Loesung');
writeln('Diese lautet: ',ergebnis1:0:2);
readln;
halt;
end;
{ Pruefen, ob der Term unter der Wurzel groesser als Null ist -> zwei Loesungen }
if(0.25*sqr(p)>q) then
begin
ergebnis1:=((-0.5)*p)+sqrt(0.25*sqr(p)-q);
ergebnis2:=((-0.5)*p)-sqrt(0.25*sqr(p)-q);
writeln('Diese quadratische Gleichung hat zwei relle Loesungen');
writeln('Diese lauten ',ergebnis1:0:2,' und ',ergebnis2:0:2);
readln;
halt;
end;
end.
Falls Du Fragen dazu hast, stelle sie ruhig...
MfG
Thermo