Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Währungsrechner funktioniert nicht (https://www.delphipraxis.net/143670-waehrungsrechner-funktioniert-nicht.html)

rojhat2049 20. Nov 2009 20:26


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:
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.
danke im vorraus

Luckie 20. Nov 2009 20:40

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.

himitsu 20. Nov 2009 20:48

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:
Val(edt1.text, kurs, code);
Val(edt2.Text, kurs, code);
Val(edt3.Text, kurs, code);
ist dir schon aufgefallen, daß hier alle Edits in die selbe Variable "kurs" geschrieben werden?

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.

rojhat2049 20. Nov 2009 20:50

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

rojhat2049 20. Nov 2009 21:00

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;

himitsu 20. Nov 2009 21:03

Re: Währungsrechner funktioniert nicht
 
Zitat:

Zitat von rojhat2049
Also wenn ich F9 drücke ...

Delphi-Quellcode:
procedure TForm1.edtDblClick(Sender: TObject);
begin
    umwandeln;
Dafür nutzt man etwas, das nennt sich "debuggen".

> 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.

Luckie 20. Nov 2009 21:21

Re: Währungsrechner funktioniert nicht
 
Zitat:

Zitat von himitsu
Dieses Debuggen sollten einem eigentlich ganz zu Anfang beigebracht werden.

Wie ich auch schon aus anderen Threads erfahren habe, ist dies wohl nicht üblich an Schulen Hilfe zur Selbsthilfe zu lehren -- zumindest im Informatikunterricht. :?

himitsu 20. Nov 2009 21:33

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"

fatalerror 20. Nov 2009 21:50

Re: Währungsrechner funktioniert nicht
 
Zitat:

Zitat von himitsu
drum wäre es mal schön, wenn auch die Lehrer mal zu uns kommen würden.

Nun ich bin ein Vertreter dieser hier scheinbar unbeliebten Berufsgattung (Berufsschullehrer für Informatik aus der Schweiz). Manchmal staune ich hier schon was in diesem Forum für pauschale Vorwürfe an uns Lehrer gemacht werden. Besonders interessant finde ich es, wenn Schüler während eines ganzen Semesters einfach rumsitzen, jegliche Mitarbeit während des Unterrichts verweigern und dann ein paar Tage vor Abgabetermin einer Arbeit hier im Forum nach der Lösung suchen.

himitsu 20. Nov 2009 22:31

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).

Luckie 20. Nov 2009 23:08

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.

Wolfgang Mix 21. Nov 2009 09:31

Re: Währungsrechner funktioniert nicht
 
@Michael
Zitat:

Wie ich auch schon aus anderen Threads erfahren habe, ist dies wohl nicht üblich an Schulen Hilfe zur Selbsthilfe zu lehren -- zumindest im Informatikunterricht.
Die Erkenntnis ist wohl eher aus Deiner Glaskugel :mrgreen:

Gruß

Wolfgang

David Martens 21. Nov 2009 12:22

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:
if not TryStrToFloat(edt1.text, kurs) then !Fehler bei der Eingabe!
damit hast du gleich einen Test ob der Benutzer eine Zahl eingegeben hat
2. warum das ganze 3 mal, dann ist in kurs ja nur der Wert vom letzten Textfeld

Dann noch
Delphi-Quellcode:
Str(euro/kurs:8:2,s);
,da finde ich die Format Function besser.

Hier, wie ich es machen würde:
Delphi-Quellcode:
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.
Da die beiden Click-Funktionen fast gleich sind, sollte man sie zu einer Funktion zusammendampfen:
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]));
...

rojhat2049 21. Nov 2009 21:10

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

Wolfgang Mix 21. Nov 2009 21:19

Re: Währungsrechner funktioniert nicht
 
Zeige uns doch einmal bitte den genauen Arbeitsauftrag.
Häufig scheitert unsere Hilfe an der genauen Fragestellung.

rojhat2049 21. Nov 2009 21:22

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:
 val(edt1.text.....)
hängen geblieben weil ic hdas falsch eingegeben hatte

Wolfgang Mix 21. Nov 2009 22:06

Re: Währungsrechner funktioniert nicht
 
Meine Glaskugel sagt; "Verstehe ich nicht"
Beschreibe das bitte doch einmal genauer!

Gruß

Wolfgang

rojhat2049 22. Nov 2009 15:07

Re: Währungsrechner funktioniert nicht
 
wir haben einen Quelllückentext bekommen

DeddyH 22. Nov 2009 15:40

Re: Währungsrechner funktioniert nicht
 
Und ebendieser scheint ein Staatsgeheimnis zu sein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:07 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