Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Taschenrechner mit Delphi für Schule! (https://www.delphipraxis.net/128240-taschenrechner-mit-delphi-fuer-schule.html)

Yanni 26. Jan 2009 19:03


Taschenrechner mit Delphi für Schule!
 
Hallo, wir sollen en Taschenrechner in Delphi schreiben (also eig nur in pascal ,aber das war mir zu einfach, hab mich an delphi gehockt)
Jetz hab ich das Problem das mir die Fehlermeldung kommt:
[Fehler] Unit1.pas(49): Es gibt keine überladene Version von 'IntToStr', die man mit diesen Argumenten aufrufen kann
[Fehler] Unit1.pas(53): ';' erwartet, aber '.' gefunden
[Fehler] Unit1.pas(55): Deklaration erwartet, aber Dateiende gefunden
[Fehler] Unit1.pas(22): Ungenügende Forward- oder External-Deklaration: 'TForm1.Memo1Change'
[Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden

Hab ma alle fehler reingeschrieben, weil ich mir net sicher bin,was davon zuu gebrauchen ist.
Und hier der Quelltext dazu
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Button1: TButton;
    Edit3: TEdit;
    Label5: TLabel;
    Label6: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Memo1Change(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var zahl1, zahl2,ende: integer;
    ergebnis: real;
    opperator: integer;
begin
zahl1 := StrToInt(Edit1.Text);
zahl2 := StrToInt(Edit2.Text);
opperator := StrToInt (Edit3.Text);
case opperator of
1: ergebnis := zahl1 + zahl2;
2: ergebnis := zahl1 - zahl2;
3: ergebnis := zahl1 * zahl2;
4: ergebnis := zahl1 / zahl2;
   Label4.Caption := IntToStr(ergebnis);
end;

   read(ende);
end.
Vielen Dank für eure Antworten

Klaus01 26. Jan 2009 19:06

Re: Taschenrechner mit Delphi für Schule!
 
Guten Abend,

einen real Wert kannst Du so nicht umwandeln:
Delphi-Quellcode:
Label4.Caption := IntToStr(ergebnis);
Delphi-Quellcode:
Label4.Caption := FloatToStr(ergebnis);
wäre besser.

und es fehlt noch ein end;

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var zahl1, zahl2,ende: integer;
    ergebnis: real;
    opperator: integer;
begin
  zahl1 := StrToInt(Edit1.Text);
  zahl2 := StrToInt(Edit2.Text);
  opperator := StrToInt (Edit3.Text);
  case opperator of
    1: ergebnis := zahl1 + zahl2;
    2: ergebnis := zahl1 - zahl2;
    3: ergebnis := zahl1 * zahl2;
    4: ergebnis := zahl1 / zahl2;
  end;
  Label4.Caption := IntToStr(ergebnis);
  read(ende);
end;

end.
Wenn man halbwegs vernünftig einrückt, fällt das auch auf.
Grüße
Klaus

mkinzler 26. Jan 2009 19:06

Re: Taschenrechner mit Delphi für Schule!
 
Ergebnis ist auch nicht vom Typ Integer -> FloatToStr()

DeddyH 26. Jan 2009 19:07

Re: Taschenrechner mit Delphi für Schule!
 
Hallo und Willkommen in der DP :dp:

für Fließkommazahlen musst Du FloatToStr() verwenden statt IntToStr. Und vor dem letzten "end." fehlt noch ein "end;"
Mehr hab ich auf den ersten Blick nicht entdeckt.

Yanni 26. Jan 2009 19:09

Re: Taschenrechner mit Delphi für Schule!
 
Habs gemacht

sieht jetz so aus
Delphi-Quellcode:
begin
zahl1 := StrToInt(Edit1.Text);
zahl2 := StrToInt(Edit2.Text);
opperator := StrToInt (Edit3.Text);
case opperator of
1: ergebnis := zahl1 + zahl2;
2: ergebnis := zahl1 - zahl2;
3: ergebnis := zahl1 * zahl2;
4: ergebnis := zahl1 / zahl2;
   Label4.Caption := FloatToStr(ergebnis);
end;

   read(ende);
end;
end.
Bekomme die Meldung
[Fehler] Unit1.pas(49): Konstantenausdruck erwartet

Wat nun?^^
sry für die dummen fragen

DeddyH 26. Jan 2009 19:12

Re: Taschenrechner mit Delphi für Schule!
 
Delphi-Quellcode:
case opperator of
  1: ergebnis := zahl1 + zahl2;
  2: ergebnis := zahl1 - zahl2;
  3: ergebnis := zahl1 * zahl2;
  4: ergebnis := zahl1 / zahl2;  
end;
Label4.Caption := FloatToStr(ergebnis); //hierhin

Yanni 26. Jan 2009 19:12

Re: Taschenrechner mit Delphi für Schule!
 
danke hab alles hinbekommen, musste die memo procedure noch löschen und das ende am end :D
VIELEN DANK

Yanni 26. Jan 2009 19:25

Re: Taschenrechner mit Delphi für Schule!
 
So das Programm an sich funktioniert, ich würd noch gern wissen, wie es aussieht mit Design von dem Programm ,kann ich irgendwie en bild als hintergrund nehmen o.ä?

DeddyH 26. Jan 2009 19:28

Re: Taschenrechner mit Delphi für Schule!
 
Theoretisch ja, aber ich würde an Deiner Stelle meine Zeit nicht mit "Klickibunti-Design" verschwenden, sondern lieber auf eine vernünftige Fehlerbehandlung achten.

mkinzler 26. Jan 2009 19:29

Re: Taschenrechner mit Delphi für Schule!
 
Ist natürlich möglich. Für ein Schulprogramm aber m.E. nicht notwendig.

Btw. Pushen wird hier nicht gern gesehen. wenn weniger als 24 Stunden vergangen sind und noch keiner geantwortet hat und du noch Ergänzugen hast, einfach letzen Beitrag mit Edit bearbeiten. Danke.

quendolineDD 26. Jan 2009 19:30

Re: Taschenrechner mit Delphi für Schule!
 
Und vielleicht für eine einfache Weiterbenutzung solltest du auch Operator mit einem p schreiben ...

Yanni 26. Jan 2009 19:32

Re: Taschenrechner mit Delphi für Schule!
 
Hatte Operator sicherheitshalber mit 2 p geschrieben, net,dass es da irgendeine verwechselung gibt :)
aber das änder ich jetz noch
aber zur frage mit dem design...wie würde das denn gehen?
hat jemand en tutorial auf lager? weil wir machne in der schule pascal aber turbopascal d.h. dos-ansicht -.-
und das mag ich net so...bin schönes design gewohnt :D

DeddyH 26. Jan 2009 19:36

Re: Taschenrechner mit Delphi für Schule!
 
Lass Dein Programm mal laufen und gib ins Edit1 mal "ABC" ein. Da nützt auch schönes Design nichts ;)

mkinzler 26. Jan 2009 19:38

Re: Taschenrechner mit Delphi für Schule!
 
Function follows Design :mrgreen:

Yanni 26. Jan 2009 19:41

Re: Taschenrechner mit Delphi für Schule!
 
mein lehrer macht mir en komischen eindruck, deswegen wollt ich mit design nochmal hervorstechen.abgesehen davon,dass ich delphi benutzt hab :D
Wenn ich mal wieder ne Frage oder so,komm ich wieder hier her :)
coole community


edit1: Hätte da noch ne Frage, wie kann das Zahlengebiet erweitern? Integer ist ja nur in nem bestimmten zahlenbereich -3xxxx i-was mit +3xxxx, weiß es nemmer genau
wie heißt die dazugehörige art von variablen?
was muss ich dann noch wechseln?

Edit2: habs gefundne ,einfach auf real wechseln,danke trotzdem^^

Yanni 28. Jan 2009 21:50

Re: Taschenrechner mit Delphi für Schule!
 
Hallo, ich bin es nochmal!
wie füge ich meiner case-variable wurzeln ein?
habe es bis jetz so:
Delphi-Quellcode:
case operator of
1: ergebnis := zahl1 + zahl2;
2: ergebnis := zahl1 - zahl2;
3: ergebnis := zahl1 * zahl2;
4: ergebnis := zahl1 / zahl2;
5: ergebnis := sqrt(zahl1);

end;
weiß aber net,was daran falsch sein soll, er erwartet ne eingabe in Feld 2...kann ich da ne if-konstruktion einbauen um zu sagen: wenn nur kästchen 1 ausgefüllt wurde, udn die rechenoperation 5(-->wurzel ziehen) erwünscht ist, soll er wurzelziehen?
vielen dank

Teekeks 29. Jan 2009 05:59

Re: Taschenrechner mit Delphi für Schule!
 
Ja


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