Erst mal danke für eure schnelle Antwort...
also das 1. was nicht funktioniert hat, waren die panels, da hat er immer gemeldet :
Zitat: |
Incompatible types: 'String' and 'Extended' |
das habe ich mit Hilfe von greg's kommentaren gelöst (hat einfach FloatToStr gefehlt)
Ich kann das Programm jetzt wenigstens starten, auch wenn er mir die beiden Lösungen nicht korrekt berechnet (die Formeln müssten aber stimmen
)
@greg: ich habe es doch übersichtlich strukturiert!
Nun gibts noch das Riesenproblem mit den Kommentaren
d.h. Wenn es nur eine Lösung gibt (was vorkommen kann wenn die Diskriminante (d)= 0 ist) soll im Panel3 stehen: Eine Lösung
Zitat: |
Panel3.Caption := Kommentar muss nach den ifs stehen!!! |
wenn ich das unten hinschreibe, sagt er dass es Panel3 nicht gibt
Hier meine überarbeitete Version (die Kommentare mal rausgenommen; wär echt nett wenn das jmd. wüsste)
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39:
| procedure TFrmQuadr.BitBtn1Click(Sender: TObject); var a, b, c, d :real; kommentar :string; begin a:=StrToFloat (edit1.Text); b:=StrToFloat (edit2.Text); c:=StrToFloat (edit3.Text); d:=(b*b)-(4*a*c);
if a=0 then begin; Panel1.caption:='---'; Panel2.caption:='---'; kommentar:='Keine Lösung'; end else begin; if d<0 then begin; Panel1.caption:='---'; Panel2.caption:='---'; kommentar:='Keine Lösung'; end else begin; if d=0 then begin; Panel1.caption:=FloatToStr((-b)/(2*a)); Panel2.caption:='---'; kommentar:='Eine Lösung'; end else begin; Panel1.caption:=FloatToStr((-b+sqr(d))/(2*a)); Panel2.caption:=FLoatToStr((-b-sqr(d))/(2*a)); kommentar:='Zwei Lösungen'; end; end; end; end; end. |