Einzelnen Beitrag anzeigen

funkuchn

Registriert seit: 20. Sep 2009
Ort: Boblitz
81 Beiträge
 
Delphi 6 Professional
 
#1

6 aus 49 will nicht so richtig

  Alt 20. Sep 2009, 14:51
Hi Leute!!
Erstmal zur Erklärung, ich soll 6 aus 49 programmieren, mache das in 3 memos, im 1ten werden die zahlen eingegeben,
im 2ten lottozahlen erzeugt und im 3ten die übereinstimmungen angezeigt.
Funktionier soweit. Jetzt habe ich aber das Problem, dass ich beim Eingeben der Zahlen auch doppelte
Zahlen, wie 2,2,2 eingeben kann, keine Ahnung wie ich das Beheben soll
Manchmal gibt der mir dann bei den Übereinstimmungen auch doppelte Zahlen an, ich bin ziemlich verzweifelt,
habe das ganze Wochenende schon dran gebastelt und sehe nun gar nicht mehr durch.
Guckt bitte mal meinen Quelltxt durch, ob ihr den / die Fehler seht
Vielen Dank, LG Susi
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i,z,x,y,anz,o: integer;
{startet Zufallszahlen für Memo2}
begin
randomize;
For i:=1 TO 6 DO
 begin
 z:=random(49)+1;
 memo2.lines.add(IntToStr(z));
 end;
{zieht zufällige Superzahl}
begin
randomize;
 Superzahl:=random(10)+1;
 edit2.Text:=(IntToStr(Superzahl));
end;
{Vergleich der eingegebenen mit den gezogenen Zahlen}
anz:=0;
For x:=0 To memo1.Lines.Count-1 Do
 For y:=0 To memo2.Lines.Count-1 Do
  IF memo1.Lines[x]=memo2.Lines[y]
  then
   begin
   memo3.Lines.add(memo1.lines[x]);
   anz:=anz+1;
   label5.caption:=IntToStr(anz);
   end;
   
{Vergleich der Superzahlen}
If edit1.Text=edit2.Text
then
 begin
 edit3.Text:=edit1.Text;
 label8.Caption:='Superzahl stimmt überein!!'
 end
else
label8.caption:='leider nicht..';

{Elememinierung doppelter Zahlen}
for i:=0 To memo2.Lines.count-1 DO
 begin
 o:=i+1;
 while o<memo2.lines.count do
  begin
  IF memo2.lines[i]=memo2.Lines[o] then
  begin
  memo2.lines.Delete(i);
  dec(o);
  end;
  inc(o);
  end;
  end;

{Fehlerabfederung}
anz:=0;
if memo1.Lines.Count<>6 then
 begin
 ShowMessage('Bitte geben Sie genau 6 Zahlen als Tipp ein!');
 exit;
 end;
 try
  For x:=0 TO memo1.lines.count-1 DO begin
  if not ((strToInt(memo1.Lines[x])<50) and (strToInt(memo1.Lines[x])>0)) then begin
  Showmessage('Bitte geben Sie nur Zahlen zwischen 1 und 49 ein!');
  exit;
end;
end;
 except
 Showmessage('Fehler! Bitte geben Sie Zahlen ein!');
end;
 try
 if not ((strToInt(edit1.Text)<10))
 then
 begin
 showmessage('Bitte geben Sie nur Zahlen zwischen 0 und 9 ein!');
 exit;
end;
 except
 Showmessage('Fehler! Bitte geben Sie Zahlen ein!');
end;
end;
end.
[edit=Matze][delphi]-Tag geschlossen. MfG, Matze[/edit]
  Mit Zitat antworten Zitat