Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Taschenrechner mit Rest (6/5= 1 rest 1) (https://www.delphipraxis.net/158779-taschenrechner-mit-rest-6-5%3D-1-rest-1-a.html)

Tytomik 2. Mär 2011 17:10

Taschenrechner mit Rest (6/5= 1 rest 1)
 
hallo,
ich bin grad dabei einen taschenrechner zu programmieren.
Will einen der auch bin rest rechnet da ich aber / habe muss ich real zahlen nehemn und keine integer zahlen ( also kein div und mod). Und dann habe ich gelesen das man das mir round ab und aufrunden kann aber wo ist hier der fehler ( button6).



Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Label1: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Button5: TButton;
    Label2: TLabel;
    Button6: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  a,b,c,d: Real;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
a:= strtofloat(Edit1.Text);
b:= strtofloat(Edit2.Text);
c:= a+b;
Label1.Caption:=floattostr(c);
Form1.color:=random(255*255*255);

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
a:= strtofloat(Edit1.Text);
b:= strtofloat(Edit2.Text);
c:= a-b;
Label1.Caption:=floattostr(c);
Form1.color:=random(255*255*255);
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
a:= strtofloat(Edit1.Text);
b:= strtofloat(Edit2.Text);
c:= a*b;
Label1.Caption:=floattostr(c);
Form1.color:=random(255*255*255);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
a:= strtofloat(Edit1.Text);
b:= strtofloat(Edit2.Text);
If b=0
then begin showmessage('Division durch 0 nicht möglisch');
c:= a/b;
Label1.Caption:=floattostr(c);
Form1.color:=random(255*255*255);
end;
end;

procedure TForm1.Button5Click(Sender: TObject);
var d: Integer;
begin
randomize;
d:=random(4);
case d of
0: Button5.Click;
1: Button2.Click;
2: Button3.Click;
3: Button4.Click;


end;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
a:=round(strtofloat);//hier wird der Fehler angezeigt
b:=round(strtofloat);
c:=a div b;
Label1.caption:=floattostr(c);
d:=a mod b;
Label2.Caption:=floattostr(d);
end;
end.

Danke

Luckie 2. Mär 2011 17:14

AW: Taschenrechner mit Rest (6/5= 1 rest 1)
 
Delphi-Quellcode:
a:=round(strtofloat);
Guck dir die Zeile noch mal genau an. Und eventuell hilft es auch sich mal die Fehlermeldung genau durchzulesen

Aphton 2. Mär 2011 17:18

AW: Taschenrechner mit Rest (6/5= 1 rest 1)
 
StrToFloat ist genauso wie Round eine Funktion, die bestimmte Parameter verlangt! Der einen übergibst du einen Parameter, der anderen nicht!

rollstuhlfahrer 2. Mär 2011 17:19

AW: Taschenrechner mit Rest (6/5= 1 rest 1)
 
Und gib bitte den Komponenten aussagekräftige Namen. Button1-Button6 sagen NICHTS aus.

Bernhard

Tytomik 2. Mär 2011 17:25

AW: Taschenrechner mit Rest (6/5= 1 rest 1)
 
Danke aber wie müsste das den dann heißen?
Delphi-Quellcode:
a:=round(strtofloat);

Tytomik 2. Mär 2011 17:33

AW: Taschenrechner mit Rest (6/5= 1 rest 1)
 
ach so ich habe da ja vergessen woher der String kommt aber irr-wie zeigt er mir immer noch ne fehlermeldung an:

Delphi-Quellcode:
procedure TForm1.Button6Click(Sender: TObject);
begin
a:=round(strtofloat(Edit1.Text));
b:=round(strtofloat(Edit2.Text));
c:=a div b;
Label1.caption:=floattostr(c);
d:=a mod b;
Label2.Caption:=floattostr(d);
end;
end.

Spanky 2. Mär 2011 17:40

AW: Taschenrechner mit Rest (6/5= 1 rest 1)
 
Wie lautet denn die Fehlermeldung?

Aphton 2. Mär 2011 17:41

AW: Taschenrechner mit Rest (6/5= 1 rest 1)
 
Ja, weil a und b Fließkommawerte sind und "div" nur bei Ganzzahlen (Integer) funktioniert.
Dafür einfach die Variablen lokal vom Typ Integer deklarieren!

Aphton 2. Mär 2011 17:43

AW: Taschenrechner mit Rest (6/5= 1 rest 1)
 
Also so...
Delphi-Quellcode:
procedure TForm1.Button6Click(Sender: TObject);
var
  neuA, neuB, neuC, neuD: Integer;
begin
neuA:=round(strtofloat(Edit1.Text));
neuB:=round(strtofloat(Edit2.Text));
neuC:=neuA div neuB;
Label1.caption:=inttostr(neuC);
neuD:=neuA mod neuB;
Label2.Caption:=inttostr(neuD);
end;

Tytomik 2. Mär 2011 17:49

AW: Taschenrechner mit Rest (6/5= 1 rest 1)
 
aber wenn man das ohne round macht also auch mit integer zaheln geht das nicht warum??

Tytomik 2. Mär 2011 17:51

AW: Taschenrechner mit Rest (6/5= 1 rest 1)
 
Aphton wenn ich das mache wie du geht das mit dem rest aber das geteilt nicht mehr reagiert der button garnicht??

Aphton 2. Mär 2011 18:05

AW: Taschenrechner mit Rest (6/5= 1 rest 1)
 
Zitat:

Zitat von Tytomik (Beitrag 1085442)
(...) aber das geteilt nicht mehr reagiert der button garnicht??

Häh?

Tytomik 2. Mär 2011 18:29

AW: Taschenrechner mit Rest (6/5= 1 rest 1)
 
danke es geht. Ich hatte den If satz zu spend mit end beendet.

rollstuhlfahrer 3. Mär 2011 12:10

AW: Taschenrechner mit Rest (6/5= 1 rest 1)
 
Zitat:

Zitat von Tytomik (Beitrag 1085448)
Ich hatte den If satz zu spend mit end beendet.

auch hier: hä?

DP-Maintenance 25. Apr 2011 20:07

Dieses Thema wurde am "25. Apr 2011, 21:07 Uhr" von "mkinzler" aus dem Forum "Neuen Beitrag zur Code-Library hinzufügen" in das Forum "Object-Pascal / Delphi-Language" verschoben.

hans ditter 25. Apr 2011 22:08

AW: Taschenrechner mit Rest (6/5= 1 rest 1)
 
@rollstuhlfahrer

ich glaube er meinte, dass er den if-Satz zu spät mit end beendet hat.

@aphton

Also, 100% bin ich mir auch nicht sicher, aber ich denke er meinte, dass der Button für Division nun gar nicht mehr funktionierte... :lol:

LG; hans ditter

xdboyking 1. Mär 2012 18:03

AW: Taschenrechner mit Rest (6/5= 1 rest 1)
 
4:5

himitsu 1. Mär 2012 18:29

AW: Taschenrechner mit Rest (6/5= 1 rest 1)
 
? :gruebel:

mkinzler 2. Mär 2012 06:41

AW: Taschenrechner mit Rest (6/5= 1 rest 1)
 
0 Rest 4


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