Problem mit Delphi (Taschenrechner)

Fehler - (programmieren, Delphi, Pascal)

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Weil bei der Zeile darüber das Semikolon am Ende fehlt, nach zahl2.

Richtig ist also:

ergebnis := zahl1 / zahl2;
Label2.Caption := FloatToStr(ergebnis);

Woher ich das weiß:Studium / Ausbildung – B.Sc. Informatik
pole96 
Fragesteller
 27.04.2011, 15:59

Danke sehr, ich habe es total übersehen. Es funktioniert (teilweise).

Aber jetzt hab ich noch ein Problem. Programm lässt sich zwar ausführen, doch das Ergebniss ist immer falsch, und bleibt konstant.

Also wenn ich in ersten Feld "12" eingebe, und in zweiten "2"

kommt beim dividieren "1" raus, auch wenn ich die Zahlen änder, bleibt die 1. Und das ist nur bei dividieren so, was habe ich falsch gemacht? Eignet sich etwa "real" nicht zum dividieren?

0
pole96 
Fragesteller
 27.04.2011, 16:03
@pole96

Okay, alles ist in Ordnung.

0
einxheinz  27.04.2011, 16:03
@pole96

Du holst die Zahl immer vom Edit-Feld-2, d.h. das Ergebnis muß immer 1 sein...

probier x:

zahl1 := StrToFloat(Edit1.Text);
zahl2 := StrToFloat(Edit2.Text);

;-)

0
pole96 
Fragesteller
 27.04.2011, 16:05
@einxheinz

Ja, das habe ich jetzt dank dir und Unknown187 bemerkt, danke schön.

Schönen Abend noch.

0
willi55  24.11.2018, 17:34
@pole96

Du hast in zahl1 und zahl2 die gleichen Werte, da du bei der Typumwandlung beides Mal Edit2.Text verwendest.

Strukturiere dein Programm besser.

0

Probier das mal:

Kann dir jetzt auch nicht weiterhelfen, weil mann es so nicht einsehen kann!!! Der Fehler kann auch woanders liegen!!! Was hast du den für eine Version von Delphi???

zahl1 := StrToFloat(Edit1.Text);
pole96 
Fragesteller
 27.04.2011, 16:04

Vielen Dank für die Hilfe, ich habe tatsächlich zweimal den "Edit2.Text" benutzt, du hast mein zweites Problem gelöst. Hilfreicheste Antwort bekommt aber  nicomeier333, da er schneller war. Aber trotzdem vielen vielen Dank.

0

Ein klassisches Informatikstudium hat aber wenig mit Programmieren zu tun. Das wirste zwar auch tun, aber mach dich auf eine Menge höherer Mathematik gefasst :)

In der Zeile:

ergebnis := zahl1 / zahl2 ein Semikolon ; setzen und dann funzt et...

einxheinz  27.04.2011, 15:58

...schon wieder war einer schneller...

Noch ein Tipp: setze Dich lieber mit C/C++/C# auseinander, wenn Du später einx ernsthaft programmieren willst ;-)

0
pole96 
Fragesteller
 27.04.2011, 16:01
@einxheinz

Das werde ich tun, aber ich dachte, das C# oder C++ für einen Einsteiger in die Programmierwelt zu kompliziert sein wird, also wollte ich erst was einfacheres, arbeit mit Delphi ist ziemlich einfach, aber nachdem ich es beherrscht habe, setze ich mich auf C++/C/C# um.

0
einxheinz  27.04.2011, 16:08
@pole96

Naja, nicht allen Horror-Meldungen glauben...ich habe mit BASIC angefangen und nach kurzer Zeit gemerkt, das mich das nicht weiter bringt...dann habe ich mit C angefangen...das war aber vor ca. 16 Jahren...;-)

0
pole96 
Fragesteller
 27.04.2011, 16:10
@einxheinz

Hm ja, ich guck mal, wenn ich merke, dass ich Delphi soweit beherrsche, versuche ich 3D Engine noch hinzufügen, wenn alles in Ordnung wird, fang ich an mit C.

Könntest du mir bitte sagen - falls ich anfangen sollte- soll ich mit C, C' oder gleich mit C++ anfangen?

0
pole96 
Fragesteller
 28.04.2011, 16:13
@pole96

ich meine C# nicht C'

*upps*

0
einxheinz  30.04.2011, 21:50
@pole96

Sorry, für die späte Antwort...;-)

Ich würde Dir, in der heutigen Zeit empfehlen, mit C# weiterzumachen. Microsoft baut darauf...früher war die Win-API (und auch heute noch) in C. Doch ersetzt man immer mehr die API durch .NET und C#...

0