Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Array für Lotto-Statistik verwenden


Massa - Di 26.08.08 15:45
Titel: Array für Lotto-Statistik verwenden
Hallo ihr Tüftler.

Ich hätte eine Frage zu einem kleinen Programm von mir.

Und zwar:
Zur Zeit bin ich an einem Lottospiel dran.
Soweit ist auch alles fertig. Es zeigt 1000 Lottoreihen an und sagt/zeigt mir, wo ich, wieviele Treffer habe.

Damit ich jetzt aber nicht selber zählen muss, wie oft ich drei/vier/fünf und sechs Richtige habe, wollte ich
es automatisch in vier Panles anzeigen lassen. In dem ersten Panel soll angezeigt werden wie oft ich drei Richtige hatte, im zweiten vier Richtige und immmer so weiter.


Hier erstmal mein Code:



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:
unit mLotto0;

interface

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

type
  TForm1 = class(TForm)
    LiAnzeige: TListBox;
    Bt20Jahre: TButton;
    Pn3: TPanel;
    Pn4: TPanel;
    Pn5: TPanel;
    Pn6: TPanel;
    procedure FormActivate(Sender: TObject);
    procedure Bt20JahreClick(Sender: TObject);
  private
    ziehung, tippreihe:tLottozahlen;
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormActivate(Sender: TObject);
begin
  ziehung:=tLottozahlen.create;
  tippreihe:=tLottozahlen.create;
  randomize;
  tippreihe.add(5);             //
  tippreihe.add(9);             //das sind die Zahlen,
  tippreihe.add(13);            //die man als Tipp
  tippreihe.add(26);            //abgeben kann. 
  tippreihe.add(31);            //
  tippreihe.add(42);            // 
end;

procedure TForm1.Bt20JahreClick(Sender: TObject);
var i,k,treffer: integer; s:string;
begin
  LiAnzeige.clear;
  for i:= 1 to 1000 do
  begin
    ziehung.setZufall;
    s:='';
    treffer:=0;
    for k:= 1 to 49 do
      if ziehung.istEnthalten(k) then
      begin
        s:=s+Format('%3d',[k]);
        if tippreihe.istEnthalten(k) then inc(treffer);
    end;
      if treffer > 2 then
        for k:= 1 to treffer do
          s:=s+'x';
    LiAnzeige.items.add(s);

  end;
end;
end.



Damit ich eine solche Statistik machen kann, habe ich mir überlegt ein Array zu verwenden.

Meine Frage ist nun, wie ich das ganze anstellen kann.

Ich danke schonmal im Vorraus.
Gruß
Massa


Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Di 26.08.2008 um 15:52


Narses - Di 26.08.08 15:53

Moin und :welcome:!

Bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Richtlinien [http://www.entwickler-ecke.de/richtlinien.html]:

1.2 Beiträge:
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...]

Einfach oben bei Deinem ersten Beitrag auf user defined image oder user defined image klicken und den Titel ändern. Danke Dir!

Vorschlag: "array für Lotto-Statistik benutzen" :idea:

cu
Narses


Massa - Di 26.08.08 15:57

Ich danke für den Hinweis und entschuldige mich dafür.
Natürlich werde ich es sofort ändern.


Delete - Di 26.08.08 21:54

und wo liegt das problem?

du brauchst halt 'n array bei welchem du die jeweilige zahl erhöhst..


Delphi-Quelltext
1:
2:
3:
4:
5:
var 
 myArr: array[1..49of integer;

for i := 0 to mylottozahlen.count do
 inc(myArr[myLottozahl.gezogeneZahl]);


that's all.


Massa - Mi 27.08.08 16:54

Hallo Grenzgaenger.

Danke für deine Antwort.
Doch habe ich das Problem, dass ich nicht weiß, wo ich dein Lösungsvorschlag hinschreiben soll.

Es wäre nett, wenn du mir das noch sagen könntest. Und falls es dir nicht zu viel ist, könntest du mir auch sagen, was die einzelnen Befehle machen. Könntest du vielleicht auch die Komponenten so bezeichnen, wie ich sie genannt haben (damit ich nicht durcheinander komme)?

Gruß
Massa

Moderiert von user profile iconNarses: überflüssige Leer-zeilen-umbrüche entfernt


Massa - Do 28.08.08 19:03

Hat denn wirlkich keiner eine Lösung für mich?

Ich fände es wirklich nett, wenn mir jemand helfen könnte.


Gruß
Massa