Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Warum kann delphi net rechnen ? Unerklärliches Problem (https://www.delphipraxis.net/156487-warum-kann-delphi-net-rechnen-unerklaerliches-problem.html)

Fredchenhh 3. Dez 2010 16:30

Warum kann delphi net rechnen ? Unerklärliches Problem
 
Hey leute ,
hab folgendes Programmiert :
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    BTGroesser: TButton;
    BTKleiner: TButton;
    Label1: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure BTGroesserClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  RateZahl:Integer;
  RateZahlMin:Integer;
  RateZahlMax:Integer;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
RateZahl:=50;
RateZahlMin:=0;
RateZahlMax:=100;
Edit1.Text:=IntToStr(RateZahl);
Edit2.Text:=IntToStr(RateZahlMax);
Edit3.Text:=IntToStr(RateZahlMin);
end;

procedure TForm1.BTGroesserClick(Sender: TObject);
begin
RateZahlMin:=RateZahl;
RateZahl:=RateZahl+Round(RateZahlMax-RateZahlMin/2);
Edit1.Text:=IntToStr(RateZahl);
Edit2.Text:=IntToStr(RateZahlMax);
Edit3.Text:=IntToStr(RateZahlMin);
end;

end.
Mir geht es darum das ich die Zahl erraten kann an die jemand denkt. Das Problem ist wenn ich auf den Größer Button klicke kommt 125 bei raus aber wenn ich es nachrechne MÜSSEN es 75 sein. Was ist da falsch?LG

DeddyH 3. Dez 2010 16:43

AW: Warum kann delphi net rechnen ? Unerklärliches Problem
 
Klammern vergessen?
Delphi-Quellcode:
RateZahl:=RateZahl+Round((RateZahlMax-RateZahlMin)/2);
Übrigens: wieso verwendest Du Fließkommaoperationen bei ganzen Zahlen?

[edit] Sry, Willkommen in der DP :dp: [/edit]

Fredchenhh 3. Dez 2010 17:04

AW: Warum kann delphi net rechnen ? Unerklärliches Problem
 
Oh mist stimmt ja Punkt vor Strich rechnung. Was ist eine Fließkommaoperation?

mkinzler 3. Dez 2010 17:07

AW: Warum kann delphi net rechnen ? Unerklärliches Problem
 
Zahlen mit Nachkommastellen.

himitsu 3. Dez 2010 17:24

AW: Warum kann delphi net rechnen ? Unerklärliches Problem
 
Integeroperationen sind schneller und optimaler, wenn man eh bei den Integern bleibt.

Delphi-Quellcode:
RateZahl := RateZahl + Trunc((RateZahlMax - RateZahlMin) / 2);

RateZahl := RateZahl + (RateZahlMax - RateZahlMin) div 2;
Wenn (RateZahlMax - RateZahlMin) positiv ist und es gerundet werden soll, dann muß man einfach nur noch die Hälfte des Teilers dazurechnen, vor dem Teilen.
Delphi-Quellcode:
RateZahl := RateZahl + Round((RateZahlMax - RateZahlMin) / 2);

RateZahl := RateZahl + (RateZahlMax - RateZahlMin + 1) div 2;

Fredchenhh 4. Dez 2010 08:01

AW: Warum kann delphi net rechnen ? Unerklärliches Problem
 
Und was ändert das?

mkinzler 4. Dez 2010 08:09

AW: Warum kann delphi net rechnen ? Unerklärliches Problem
 
Im 1. Fall entsgehen gebrochene Zahlen als Zwischenergebnis, doieses muss wieder zu einer Ganzzahl gewandelt werden, was u.U. zu einem anderen Ergebnis führen kann

DeddyH 4. Dez 2010 08:10

AW: Warum kann delphi net rechnen ? Unerklärliches Problem
 
Stand doch da:
Zitat:

Zitat von himitsu (Beitrag 1065965)
Integeroperationen sind schneller und optimaler, wenn man eh bei den Integern bleibt.


divBy0 4. Dez 2010 09:45

AW: Warum kann delphi net rechnen ? Unerklärliches Problem
 
---

Sir Rufo 4. Dez 2010 09:47

AW: Warum kann delphi net rechnen ? Unerklärliches Problem
 
Das wurde doch schon hinreichend geklärt ... und der TE hatte es auch schon verstanden ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:04 Uhr.
Seite 1 von 2  1 2      

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