Autor Beitrag
Massa
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25



BeitragVerfasst: Di 26.08.08 15:45 
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:


ausblenden volle Höhe 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


Zuletzt bearbeitet von Massa am Di 26.08.08 16:19, insgesamt 2-mal bearbeitet
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10184
Erhaltene Danke: 1259

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: 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:

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

_________________
There are 10 types of people - those who understand binary and those who don´t.
Massa Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25



BeitragVerfasst: Di 26.08.08 15:57 
Ich danke für den Hinweis und entschuldige mich dafür.
Natürlich werde ich es sofort ändern.
Grenzgaenger
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 26.08.08 21:54 
und wo liegt das problem?

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

ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25



BeitragVerfasst: 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