Entwickler-Ecke

Sonstiges (Delphi) - wie wird eine zufallszahl erzeugt?


smily - Fr 26.01.07 19:02
Titel: wie wird eine zufallszahl erzeugt?
Hallo!!
ich hoffe ihr könnt mir helfen! ich soll ein programm erstellen, das eine zufalllszahl von 1...100 erzeugt sowie tipps entgegennimmt und auswertet(richtig/zu groß/zu klein). beim programmstart soll die zahl festgelegt werden, dass erreich ich doch durch einen doppellick aufs formular oder?? dann muss ich "randomize; ..." (im quelltext rot)eingeben. und davor habe ich meine zufallszahl "zuz" im interface in der var -zeile eingegeben. war das falsch?? wenn ich eine zahl eingeben kommt nämlich immer nur dass die zahl zu klein ist selbst bei 100! "ez" ist übrigens die zahl die der nutzer in der edit-komponente eingibt.
danke schon mal!!





Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Label1: TLabel;
    Edit1: TEdit;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    procedure FormCreate(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1; <span style="color: red">zuz:Integer</span>;


implementation

{$R *.dfm}

  procedure TForm1.FormCreate(Sender: TObject);
        begin
        randomize;
        zuz:= random (100)+1;
        end;




procedure TForm1.BitBtn2Click(Sender: TObject);
begin
Close;
end;

procedure TForm1.BitBtn3Click(Sender: TObject);
begin
Edit1.Clear;
Panel2.Caption:= '  '
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
var ez, zuz : Integer;
begin
ez:=StrToInt(Edit1.Text);

if ez=zuz
        then panel2.Caption:= 'Herzlichen Glückwunsch! Ihre Zahl ist richtig!!'
                else
                if ez>zuz
                then panel2.Caption:= 'Ihre Zahl ist zu groß!'
                        else
                        if ez<zuz
                        then panel2.Caption:= 'Ihre Zahl ist zu klein!';

end;

end.


Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt


Blackheart666 - Fr 26.01.07 19:38


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
var
  Form1: TForm1;
  zuz,ez:Integer;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  randomize;
  zuz:= random (100)+1;
end;

procedure TForm1.BitBtn2Click(Sender: TObject);
begin  
  Close;
end;  

 
procedure TForm1.BitBtn3Click(Sender: TObject);
begin  
  Edit1.Clear;
  Panel2.Caption:= '  '
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  ez:=StrToInt(Edit1.Text);
  if ez=zuz
        then panel2.Caption:= 'Herzlichen Glückwunsch! Ihre Zahl ist richtig!!'
                else  
                if ez>zuz
                then panel2.Caption:= 'Ihre Zahl ist zu groß!'  
                        else
                        if ez<zuz  
                        then panel2.Caption:= 'Ihre Zahl ist zu klein!';
end;

end.


Coder - Fr 26.01.07 19:42
Titel: Re: wie wird eine zufallszahl erzeugt?
Nimm mal aus TForm1.BitBtn1Click die Definition der Variable zuz heraus.
Ich vermute das überschreibt die globale Definiton der Variable zuz.
Eine Variable solltest du nur einmal definieren.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
procedure TForm1.BitBtn1Click(Sender: TObject);
var ez, zuz : Integer;
begin
ez:=StrToInt(Edit1.Text);

if ez=zuz
        then panel2.Caption:= 'Herzlichen Glückwunsch! Ihre Zahl ist richtig!!'
                else
                if ez>zuz
                then panel2.Caption:= 'Ihre Zahl ist zu groß!'
                        else
                        if ez<zuz
                        then panel2.Caption:= 'Ihre Zahl ist zu klein!';

end;

end.


MfG