![]() |
Währungsrechner funktioniert nicht
Hallo
ich muss für die Schule einen Währungsrechner programmieren aber er funktioniert nicht vllt könnt ihr mir ja helfen
Delphi-Quellcode:
danke im vorraus
unit Unit1;
interfac uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) edt1: TEdit; edt2: TEdit; edt3: TEdit; lbl1: TLabel; lbl2: TLabel; lbl3: TLabel; procedure edtDblClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} var kurs, euro, dollar :Single; code :Integer; s :string; procedure umwandeln; begin with Form1 do begin Val(edt1.text, kurs, code) ; Val(edt2.Text,kurs , code) ; Val(edt3.Text,kurs ,code) ; end; end; procedure euro_dollar; begin umwandeln; Str(euro/kurs:8:2,s); Form1.edt2.text :=s; end; procedure dollar_euro; begin umwandeln; Str(dollar*kurs:8:2,s); Form1.edt3.text :=s; end; procedure TForm1.edtDblClick(Sender: TObject); begin umwandeln; if kurs>0 then if sender =edt3 then euro_dollar else dollar_euro; end; end. end. |
Re: Währungsrechner funktioniert nicht
WAS funktioniert nicht? Wenn ich mein Auto in die Werkstatt bringe, stelle ich ihn ja auch nicht auf den Hof und sage: "Funktioniert nicht." und gehe wieder weg. Und bitte gib deinem Beitrag einen aussagekräftigen Titel.
Und noch ein kleiner Tipp: Formatiere deinen Quellcode mal gescheit, damit man ihn auch lesen kann. |
Re: Währungsrechner funktioniert nicht
WAS funktioniert nicht? [edit] du Luckie ... mußt du alles genauso schreiben? [/edit]
(ohne Fehlerbeschreibung weiß Keiner wonach man suchen muß)
Delphi-Quellcode:
ist dir schon aufgefallen, daß hier alle Edits in die selbe Variable "kurs" geschrieben werden?
Val(edt1.text, kurs, code);
Val(edt2.Text, kurs, code); Val(edt3.Text, kurs, code); Und warum wertet keiner "code" aus? (Fehlerbehandlung = 0) Ach ja ... hat euer Lehrer euch das mit den globalen Variablen und Prozeduren so beigebracht? Wenn ja, dann schick ihn bitte mal zu uns ... wir würden ihm auch gerne mal was beibringen. |
Re: Währungsrechner funktioniert nicht
Naja
Also wenn ich F9 drücke öffnet sich zwar das programm aber wenn ich was eingebe in die Edits dann rechnet er das nicht um |
Re: Währungsrechner funktioniert nicht
Hat sich erledigt
lag an dem Teil
Delphi-Quellcode:
Val(edt1.text, kurs, code);
Val(edt2.Text, kurs, code); Val(edt3.text,kurs,code; |
Re: Währungsrechner funktioniert nicht
Zitat:
Delphi-Quellcode:
Dafür nutzt man etwas, das nennt sich "debuggen".
procedure TForm1.edtDblClick(Sender: TObject);
begin umwandeln; > Geht auf das "umwandeln", drücke F5 (Haltepunkt hinzufügen) > starte das Programm (F9) > wenn das Programm am Haltepunkt angekommen ist, dann geht man mit F7 (notfalls auch mal mit F8) Befehl für Befehl durch > und schaut sich die Variablen und verarbeiteten Befehle an, ob alles so läuft, wie es soll hier könnte man sich auch mal einige Variablen ansehn, wenn einem die Möglichkeiten im Editor (ala Hints und Context-Menü) nicht ausreichen Strg+Alt+W aka Ansicht > Debug-Fenster > Überwachte Ausdrücke Strg+Alt+L aka Ansicht > Debug-Fenster > Lokale Variablen Dieses Debuggen sollten einem eigentlich ganz zu Anfang beigebracht werden. |
Re: Währungsrechner funktioniert nicht
Zitat:
|
Re: Währungsrechner funktioniert nicht
drum wäre es mal schön, wenn auch die Lehrer mal zu uns kommen würden.
PS: wenn die Lehrer hier rumhüpfen, dann würden auch weniger kommen und von uns ihre Hausaufgaben gemacht haben wollen. das ist jetzt nicht gegen rojhat2049 gerichtet! hier kommen oftmals welche her "macht ihr mir mal meine Hausaufgabe, denn ich habe keine Lust dazu" |
Re: Währungsrechner funktioniert nicht
Zitat:
|
Re: Währungsrechner funktioniert nicht
Keine Soge, wir wissen schon, daß es ein/zwei gute Lehrer gibt, aber was man hier oftmals so für grausame Codes und Unwissen sieht .....
Und ja, manchmal/oftmals liegt es auch an den Schülern, welche einfach nichts begreifen (wollen). |
Re: Währungsrechner funktioniert nicht
Ich glaube, wir sollten mal wieder zum Thema zurückkommen. Deshalb verschiebe ich den Thread jetzt auch in das richtige Forum.
|
Re: Währungsrechner funktioniert nicht
@Michael
Zitat:
Gruß Wolfgang |
Re: Währungsrechner funktioniert nicht
Warum einfach wenns auch kompliziert geht.
Warum benutzt du
Delphi-Quellcode:
...
Val(edt1.text, kurs, code);
1. alte Routine, viel besser ist StrToFloat oder noch besser
Delphi-Quellcode:
damit hast du gleich einen Test ob der Benutzer eine Zahl eingegeben hat
if not TryStrToFloat(edt1.text, kurs) then !Fehler bei der Eingabe!
2. warum das ganze 3 mal, dann ist in kurs ja nur der Wert vom letzten Textfeld Dann noch
Delphi-Quellcode:
,da finde ich die Format Function besser.
Str(euro/kurs:8:2,s);
Hier, wie ich es machen würde:
Delphi-Quellcode:
Da die beiden Click-Funktionen fast gleich sind, sollte man sie zu einer Funktion zusammendampfen:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) edt1: TEdit; edt2: TEdit; edt3: TEdit; lbl1: TLabel; lbl2: TLabel; lbl3: TLabel; btn1: TButton; btn2: TButton; procedure btn1Click(Sender: TObject); procedure btn2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.btn1Click(Sender: TObject); var dollar, kurs : Single; begin if TryStrToFloat(edt1.text, dollar) and TryStrToFloat(edt2.text, kurs) then begin edt3.text := Format('%f', [dollar / kurs])); end else ShowMessage('keine Zahl eingegeben'); // oder irgend eine ander sinvolle Meldung end; procedure TForm1.btn2Click(Sender: TObject); var euro, kurs : Single; begin if TryStrToFloat(edt3.text, euro) and TryStrToFloat(edt2.text, kurs) then begin edt1.text := Format('%f', [euro * kurs])); end else ShowMessage('keine Zahl eingegeben'); // oder irgend eine ander sinvolle Meldung end; end.
Delphi-Quellcode:
procedure TForm1.btnClick(Sender: TObject);
var Waehrung, kurs : Single; begin if Sender = btn1 then eingabe_ok := TryStrToFloat(edt1.text, Waehrung) else eingabe_ok := TryStrToFloat(edt3.text, Waehrung); if eingabe_ok and TryStrToFloat(edt2.text, kurs) then begin if Sender = btn1 then edt1.text := Format('%f', [Waehrung * kurs])) else edt3.text := Format('%f', [Waehrung / kurs])); ... |
Re: Währungsrechner funktioniert nicht
Bei uns ind der schule haben wir ein arbeitsbogen bekommen und der lehrer meinte wir sollen das so schreiben und da stand eben mit Val(.....)
und das wir ein doppelklick-ereigniss machen sollen und so frag nicht warum der das so kompiliziert macht aber danke für deine Hilfe |
Re: Währungsrechner funktioniert nicht
Zeige uns doch einmal bitte den genauen Arbeitsauftrag.
Häufig scheitert unsere Hilfe an der genauen Fragestellung. |
Re: Währungsrechner funktioniert nicht
Also da steht ein Quellcode eben mit lücken vielen lücken und wir sollen den füllen eine genaue fragestellung steht da nicht
und ich bin dann bei dem teil
Delphi-Quellcode:
hängen geblieben weil ic hdas falsch eingegeben hatte
val(edt1.text.....)
|
Re: Währungsrechner funktioniert nicht
Meine Glaskugel sagt; "Verstehe ich nicht"
Beschreibe das bitte doch einmal genauer! Gruß Wolfgang |
Re: Währungsrechner funktioniert nicht
wir haben einen Quelllückentext bekommen
|
Re: Währungsrechner funktioniert nicht
Und ebendieser scheint ein Staatsgeheimnis zu sein.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:36 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