![]() |
if then problem beim taschenrechner
Hallo,
also die erfahrenen Programmierer hier werden müde lächeln aber ich hab grad erst angefang mich mit Delphi zu beschäftigen. Und zwar wollte ich einen Taschenrechner programmieren (klein anfangen :-D ), und hab das auch hingekriegt ich habe nur noch 2 Fragen. Und zwar 1. Ich will das wenn man durch null teilen will eine Meldung in einem vorher verstecktem Memo-Fenster erscheint das diese Rechenoperation nicht durchführbar ist. Bislang kommt nämlich immer eine "unverständliche" Fehlermeldung und das Programm hängt sich auf. Ich habe ein bischen mit "If-When" Formulierung rumprobiert, aber da sich mein Wissen in engen Grenzen hält bin ich da hängen geblieben. Das hier ist das was ich bisher hab
Delphi-Quellcode:
Das mit der If Then Kombi beruht auf einem Freund, ich sollte auch bei "Uses" "Math"
procedure TForm1.Button4Click(Sender: TObject);
var a,b,c, y: real; begin a:=strtofloat(edit1.text); b:=strtofloat(edit2.Text); c:=a/b; if y=0 then memo1.Show else a:=b/y; edit3.Text:=floattostr(c); end; hinschreiben. Falls das hilft... Und 2. Ich habe ebenfalls vorgesehen eine "b-te Wurzel einer Zahl 'a'" zu ziehen. Hier habe ich wieder auf Anraten desselbigen Kumpels folgende Formulierung gewählt.
Delphi-Quellcode:
procedure TForm1.Button6Click(Sender: TObject);
var a,b,c:real; begin a:=strtofloat(edit1.text); b:=strtofloat(edit2.Text); c:=power(b,a/a); edit3.Text:=floattostr(c); end; end. Danke im Vorraus für die Hilfe! Mfg Konrad28 |
Re: if then problem beim taschenrechner
:wiejetzt: Also entweder hat dieser Freund dich veräppelt, oder er hat keine Ahnung.
Delphi-Quellcode:
Das sieht für mich irgendwie logischer aus. Denn in deinem Code wird eine nicht initialisierte Variable abgefragt, nachdem der Fehler schon passiert ist. Übrigens sollte man StrToFloat vermeiden, da bei ungültiger Eingabe ein Fehler geschmisen wird, besser wären StrToFloatDef und TryStrToFloat.
a:=StrToFloat(Edit1.Text);
b:=StrToFloat(Edit2.Text); if b=0 then Showmessage('Durch 0 darf nicht geteilt werden!') else begin Edit3.Text:=Floattostr(a/b); end; Zum anderen Problem ein kleiner Tipp: Die n-te Wurzel einer Zahl ist als a^(1/n) definiert. :dp: [edit] Herzlich willkommen! [/edit] |
Re: if then problem beim taschenrechner
Zitat:
Zitat:
Zitat:
naja jedenfalls danke für die tipps werds gleich ma ausprobiern mfg konrad |
Re: if then problem beim taschenrechner
hmm ok das klappt schunmal mit der meldung,
so jetzt um das ganze abzuschließen wärs toll wenn mir no jemand sagen könnte wie ich dann diesen prozess abbreche denn nach erscheinen der message kommt die gleiche fehlermeldung wie ohne fenster^^. hier noch mal mein code
Delphi-Quellcode:
mfg konrad
procedure TForm1.Button4Click(Sender: TObject);
var a,b,c: real; begin a:=strtofloat(edit1.text); b:=strtofloat(edit2.Text); if b=0 then showmessage('Durch "0" darf nicht geteilt werden!') else; c:=a/b; edit3.Text:=floattostr(c); end; |
Re: if then problem beim taschenrechner
Delphi-Quellcode:
if b=0 then
showmessage('Durch "0" darf nicht geteilt werden!') else begin c:=a/b; edit3.Text:=floattostr(c); end; |
Re: if then problem beim taschenrechner
schönen dank für die hilfe!
mfg konrad |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz