AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

if then problem beim taschenrechner

Ein Thema von konrad28 · begonnen am 15. Nov 2007 · letzter Beitrag vom 16. Nov 2007
Antwort Antwort
konrad28

Registriert seit: 15. Nov 2007
Ort: Sachsen
7 Beiträge
 
Delphi 7 Enterprise
 
#1

if then problem beim taschenrechner

  Alt 15. Nov 2007, 20:19
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 ), 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:
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;
Das mit der If Then Kombi beruht auf einem Freund, ich sollte auch bei "Uses" "Math"
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
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: if then problem beim taschenrechner

  Alt 15. Nov 2007, 20:24
Also entweder hat dieser Freund dich veräppelt, oder er hat keine Ahnung.
Delphi-Quellcode:
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;
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.

Zum anderen Problem ein kleiner Tipp: Die n-te Wurzel einer Zahl ist als a^(1/n) definiert.
[edit] Herzlich willkommen! [/edit]
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
konrad28

Registriert seit: 15. Nov 2007
Ort: Sachsen
7 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: if then problem beim taschenrechner

  Alt 15. Nov 2007, 21:57
Zitat:
Das sieht für mich irgendwie logischer aus. Denn in deinem Code wird eine nicht initialisierte Variable abgefragt, nachdem der Fehler schon passiert ist.
hehe ja da hat ich mich auch schon gewundert.

Zitat:
Übrigens sollte man StrToFloat vermeiden, da bei ungültiger Eingabe ein Fehler geschmisen wird, besser wären StrToFloatDef und TryStrToFloat.
hab ich auch mitgekriegt, wär sicher meine nächste Frage gewesen^^ danke!

Zitat:
Zum anderen Problem ein kleiner Tipp: Die n-te Wurzel einer Zahl ist als a^(1/n) definiert.
hatte mich vertippt schlechthin


naja jedenfalls danke für die tipps werds gleich ma ausprobiern
mfg konrad
  Mit Zitat antworten Zitat
konrad28

Registriert seit: 15. Nov 2007
Ort: Sachsen
7 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: if then problem beim taschenrechner

  Alt 15. Nov 2007, 22:11
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:
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;
mfg konrad
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: if then problem beim taschenrechner

  Alt 15. Nov 2007, 22:13
Delphi-Quellcode:
if b=0 then
   showmessage('Durch "0" darf nicht geteilt werden!')
else
begin
   c:=a/b;
   edit3.Text:=floattostr(c);
end;
Markus Kinzler
  Mit Zitat antworten Zitat
konrad28

Registriert seit: 15. Nov 2007
Ort: Sachsen
7 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: if then problem beim taschenrechner

  Alt 16. Nov 2007, 16:38
schönen dank für die hilfe!
mfg konrad
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz