Autor |
Beitrag |
Bahade
Hält's aus hier
Beiträge: 9
|
Verfasst: Fr 18.10.02 20:37
Hallo,
hier ist mein erstes selbstgeschriebenes (Rechen)programm mit Delphi5.
Was bedeutet double? Was bezweckt der Hilfstring? Was bedeuten die anderen Sachen?
Was muss ich verändern, damit die Rechnung auch für a=0 durchgeführt werden kann (lineare Gleichung)?
Ich freue mich auf euere Hilfe!
Viele Grüße,
Bahade
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:
| procedure TForm1.BBerechnenClick(Sender: TObject); VAR a, b, c, d, x1, x2, x: double; HilfStr: String; begin a:=strtofloat(EEingabeA.Text); b:=strtofloat(EEingabeB.Text); c:=strtofloat(EEingabeC.Text); d:=b*b-4*a*c;
if d > 0 then begin x1:=-(b+sqrt(d))/(2*a); x2:=-(b-sqrt(d))/(2*a); Hilfstr:='x1='+floattostrf(x1,ffFixed,10,2)+' x2='+floattostrf(x2,ffFixed,10,2); end else if d=0 then begin x:=-b/(2*a); Hilfstr:='x='+floattostrf(x,ffFixed,10,2); end else Hilfstr:='Keine Lösung';
LAusgabe.caption:=Hilfstr; end;
end. |
|
|
Christian S.
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Fr 18.10.02 20:56
Hi!
double: in Delphi gibt es verschiedene Datentypen für Zahlen. Sie unterscheiden sich durch Größe der speicherbaren Zahlen und vor allem auch dadurch, ob sie ganze Zahlen oder auch reelle Zahlen speichern können. Double kann dabei reelle Zahlen in folgendem Bereich speichern: 5.0 x 10^–324 .. 1.7 x 10^308
Hilfstring: der ist eigentlich nicht nötig. Es ist einfach nur kürzer, "hilfstring" zu schreiben, als jedesmal "LAusgabe.caption" zu schreiben.
andere Sachen: StrToFloat:Wandelt einen String in eine Fließkommazahl um.
andere Sachen: floattostrf:Wandelt eine Fließkommazahl (hier: double) in einen String um, wobei eine bestimmte Formatierung und eine Ausgabegenauigkeit verwendet wird.
Hoffe, ich konnte Dir helfen, ansonsten frag einfach nach.
MfG,
Peter
Ach ja, den Fall a=0 musst Du vorher abfangen. Also irgendwie "IF a=0 THEN {Extra-BErechnung} ELSE {Das, was jetzt da steht}". So ungefähr zumindest. Das kommt dann am besten vor "d:=b*b-4*a*c;".
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
LCS
Beiträge: 1305
Erhaltene Danke: 1
WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
|
Verfasst: Sa 19.10.02 13:35
Hi
willkommen on Board
Bahade hat folgendes geschrieben: |
hier ist mein erstes selbstgeschriebenes (Rechen)programm mit Delphi5.
|
Bist du sicher, dass es nicht selbstABgeschrieben heissen sollte?
Bahade hat folgendes geschrieben: |
Was bedeutet double? Was bezweckt der Hilfstring? Was bedeuten die anderen Sachen?
|
Mein Tipp wäre: Arbeite mal die tollen Einsteiger- und Grundlagentutorials durch, die du hier am Board finden kannst. Zum Beispiel dieses.
Missversteh mich bitte nicht. Das soll nicht heissen, dass du keine Einsteigerfragen stellen sollst, aber es ist besser eine Antwort auf eine konkrete Frage zu einem Problem zu geben, als einen Programmierlehrgang in fünf Sätzen.
Gruss Lothar
_________________ Der BH ist für die Brust, der Plan ist für'n Ar...
|
|
Bahade
Hält's aus hier
Beiträge: 9
|
Verfasst: So 20.10.02 12:54
Titel: a=0
Vielen Dank für die Antworten, stimmt ich bin ein Anfänger, habe das nicht wirklich selbstgemacht und habe nun auch zwei konkrete Fragen:
Was muss ich denn genau machen, um den Fall a=0 zu berücksichtigen. Also so wie das Peter beschrieben hat, erscheint gar nichts mehr.
bzw. was muss genau in THEN {Extra-BErechnung} ?
Kann mir jemand eine kurze Erklärung für String geben?
|
|
Christian S.
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: So 20.10.02 13:25
Hi!
zu a=0:Wenn Du die Gleichung ax^2+bx+c=0 hast und a=0 ist, bleibt davon ja nicht mehr viel übrig: bx+c=0 <=> x=-c/b für b!=0. Ist b=0 gibt es entweder unendlich viele Lösungen (c=0) oder gar keine (c!=0).
Also, der Qulltext muss dann so aussehen:
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:
| procedure TForm1.BBerechnenClick(Sender: TObject); VAR a, b, c, d, x1, x2, x: double; HilfStr: String; begin a:=strtofloat(EEingabeA.Text); b:=strtofloat(EEingabeB.Text); c:=strtofloat(EEingabeC.Text); if a=0 then begin if b<>0 then begin x:=-c/b; Hilfstr:='x='+floattostrf(x,ffFixed,10,2); end else if c=0 then Hilfstr:='Unendlich viele Lösungen' else Hilfstr:='Keine Lösung!'; end else begin d:=b*b-4*a*c; if d > 0 then begin x1:=-(b+sqrt(d))/(2*a); x2:=-(b-sqrt(d))/(2*a); Hilfstr:='x1='+floattostrf(x1,ffFixed,10,2)+' x2='+floattostrf(x2,ffFixed,10,2); end else if d=0 then begin x:=-b/(2*a); Hilfstr:='x='+floattostrf(x,ffFixed,10,2); end else Hilfstr:='Keine Lösung'; end; LAusgabe.caption:=Hilfstr; end; |
zu String: Ein String ist eine Zeichenkette, also eine simple Aneinandereihung von Zeichen. Auf diesen String sind verschiedene Operationen definiert und es gibt verschiede Methoden, mit denen man Strings bearbeiten kann. Das Thema ist allerdings zu groß, um es hier zu behandeln. Die Delphihilfe gibt dort einiges her, bei weiteren Fragen postest Du dann einfach nochmal.
MfG,
Peter
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
|