AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zufallsvariable

Offene Frage von "Hans33"
Ein Thema von Hans33 · begonnen am 21. Nov 2008 · letzter Beitrag vom 22. Nov 2008
Antwort Antwort
Seite 2 von 4     12 34      
Hans33

Registriert seit: 13. Nov 2008
56 Beiträge
 
Turbo Delphi für Win32
 
#11

Re: Zufallsvariable

  Alt 22. Nov 2008, 12:48
Ja klappt auch soweit aber die zu erratenen zahl ist immer 0!!
auch wenn ich das Projekt schließe und dann nochmal starte. Muss das so sein?
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: Zufallsvariable

  Alt 22. Nov 2008, 12:51
Poste mal deinen gesamten Quelltext. Bei mir kommen nach jedem Neustart des Programms neue Zufallszahlen heraus ...

Du darfst die Initialisierung des Zufallsgenerator, durch den Aufruf von der Prozedur Randomize nicht vergessen!
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
Hans33

Registriert seit: 13. Nov 2008
56 Beiträge
 
Turbo Delphi für Win32
 
#13

Re: Zufallsvariable

  Alt 22. Nov 2008, 12:55
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  public
    z : integer;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm} 

procedure TForm1.Button1Click(Sender: TObject);
var r : real;
begin
  r := StrToFloat(Edit1.Text);

       if r < z then Label2.Caption := 'Zu niedrig
  else if r > z then Label2.Caption := 'Zu hoch
  else if r = z then Label2.Caption := 'Erraten';
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
randomize;
z := random(100)+1;
end;
end.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#14

Re: Zufallsvariable

  Alt 22. Nov 2008, 13:01
Wieso vergleichst Du ganze mit Fließkommazahlen?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Hans33

Registriert seit: 13. Nov 2008
56 Beiträge
 
Turbo Delphi für Win32
 
#15

Re: Zufallsvariable

  Alt 22. Nov 2008, 13:05
Warum? Ist das falsch?
Wenn ja wie mach ichs anders??
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#16

Re: Zufallsvariable

  Alt 22. Nov 2008, 13:09
Hier mal ein schnell runtergetipptes Beispielprojekt (implementation-Teil):
Delphi-Quellcode:
uses Math;

procedure TfrmRaten.btnRatenClick(Sender: TObject);
var Ratezahl: Integer;
begin
  Ratezahl := StrToIntDef(edtEingabe.Text,0);
  case Sign(Ratezahl - Zahl) of
     0: ShowMessage('Erraten');
     1: ShowMessage('Zu hoch');
    -1: ShowMessage('Zu niedrig');
  end;
  edtEingabe.SetFocus;
  edtEingabe.SelectAll;
end;

procedure TfrmRaten.FormCreate(Sender: TObject);
begin
  Randomize;
  Zahl := Random(100) + 1;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
blackdrake

Registriert seit: 22. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#17

Re: Zufallsvariable

  Alt 22. Nov 2008, 13:14
@Hans33: Wenn die zu erratende Zahl eine ganze Zahl sein sollte, wieso solltest du dann dem Benutzer erlauben, eine Fließkommazahl einzugeben? Wenn der Benutzer 9.5 eingibt, ist das schlicht und einfach ein falscher Wert. Das ist genau so, wie wenn er "a" eingibt, ist auch falsch.

StrToIntDef aus dem vorherigen Post wandelt eine ungültige Eingabe in 0 um und somit erhält der Benutzer keine Fehlermeldungen bei einer Kommazahl oder einem nicht-numerischen Wert.
Daniel Marschall
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#18

Re: Zufallsvariable

  Alt 22. Nov 2008, 13:53
Macht sich bloß dumm, wenn der Benutzer dann nicht darauf hingewiesen wird, das er eine falsche Eingabe macht und immer weiter macht ...
Ich glaube aber das Grundproblem ist hier einfach das Verständnis, weswegen man nicht unbedingt eine Abfrage der Benutzereingabe machen sollte.
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#19

Re: Zufallsvariable

  Alt 22. Nov 2008, 13:56
Wer so blöd ist, beim Zahlenraten ein "a" oder sowas einzugeben, hat es nicht besser verdient
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Hans33

Registriert seit: 13. Nov 2008
56 Beiträge
 
Turbo Delphi für Win32
 
#20

Re: Zufallsvariable

  Alt 22. Nov 2008, 13:59
was ist dann falsch?
Ich kann kein denkfehler erkennen!
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  public
    z :integer;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.FormCreate(Sender: TObject);
begin
randomize;
z := random(50)+1;
end;
procedure TForm1.Button1Click(Sender: TObject);
var r : real;
begin
  r := StrTofloat(edit1.Text);

       if r < z then Label2.Caption := 'Zu niedrig'
  else if r > z then Label2.Caption := 'Zu hoch'
  else if r = z then Label2.Caption := 'Erraten';
end;
end.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:10 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