Program Lottozahlen(input,output);
{vergleicht gezogene Lottozahlen mit gespeicherten Lottoreihen}
Const
MIN = 1;
MAX = 49;
REIHE = 49;
MaxZahl = 14;
DATEINAME = 'c:/tp7/bin/user/Lotdat.dat';
type
tReihenZahl = MIN..REIHE;
tZahlenbereich = MIN..MAX;
tLottoIndex = MIN..MaxZahl;
tReihenIndex = MIN..REIHE;
tZahlIndex = MIN..6;
tLottoFeld = array[tLottoIndex] of tZahlenbereich;
tReihenFeld = array[tReihenIndex] of tLottoFeld;
tLottoEingabe = array[tZahlIndex] of tZahlenbereich;
VAR
YesNo:String;
Datei:text;
i : tLottoIndex;
j : tReihenIndex;
k : tZahlIndex;
LottoFeld : tLottoFeld;
ReihenFeld : tReihenFeld;
LottoEingabe : tLottoEingabe;
SuperZahl,
ZusatzZahl,
Dreier,
DreierMitZZ,
Vierer,
ViererMitZZ,
Fuenfer,
FuenferMitZZ,
Sechser,
SechserMitSZ : integer;
Procedure Abspeichern(inReihenfeld: tReihenfeld;
inLottoFeld: tLottofeld);
{abspeichern der Lottoreihen}
begin
assign(datei,DATEINAME);
Rewrite(datei);
for j := MIN to REIHE do
begin
inLottoFeld := inReihenFeld[j];
for i := MIN to MaxZahl do
begin
writeln(datei,inLottoFeld[i]);
end
end;
close(datei)
end;{abspeichern}
Procedure Laden(Var outReihenfeld: tReihenfeld;
Var outLottoFeld: tLottofeld);
{Laden der Lottoreihen}
begin
assign(datei,DATEINAME);
reset(datei);
for j := MIN to REIHE do
begin
for i := MIN to MaxZahl do
readln(datei,outLottoFeld[i]);
outReihenFeld[j] := outLottoFeld
end;
close(datei)
end;{Laden}
procedure Ausgeben(inReihenfeld:tReihenfeld;
inLottofeld:tLottoFeld);
{gibt Reihenfeld auf dem Bildschirm aus}
begin
writeln(' Ausgabe !!!');
write;
for j := MIN to REIHE do
begin
if (J = 20) or (J = 40) then
begin
writeln;
writeln('weiter ?');
writeln;
readln
end;
inLottoFeld := inReihenFeld[j];
writeln(' ', j:2,'.Lottoreihe SZ: ',inLottofeld[1]:2,' Lottozahlen : ',inLottoFeld[2]:2,
' ',inLottofeld[3]:2,' ',inLottofeld[4]:2,' ',inLottofeld[5]:2,' ',
inLottofeld[6]:2,' ',inLottofeld[7]:2,' ',inLottofeld[8]:2,' ',inLottofeld[9]:2,' ',
inLottofeld[10]:2,' ',inLottofeld[11]:2,' ',inLottofeld[12]:2,' ',inLottofeld[13]:2)
end
end;{Ausgeben}
Procedure Eingeben(var outReihenfeld: tReihenfeld;
var outLottofeld: tLottofeld);
{Reihenfeld eingeben}
begin
writeln(' Bitte Lottoreihen eingeben! Leere Stellen mit 0 auffllen! ');
writeln(' Mit Superzahl beginnen!');
for j := MIN to REIHE do
begin
for i := MIN to MaxZahl do
readln(outLottoFeld[i]);
if j < Reihe then
writeln(' n„chste Lottoreihe bitte! ');
outReihenFeld[j] := outLottoFeld
end
end;{eingeben}
Procedure Treffer(inReihenfeld: tReihenfeld;
inLottofeld: tLottofeld;
inLottoeingabe: tLottoeingabe;
inZZ,
inSZ: integer;
var outDreier: integer;
var outDreierZZ: integer;
var outVierer: integer;
var outViererZZ: integer;
var outFuenfer: integer;
var outfuenferZZ: integer;
var outSechser: integer;
var outSechserSZ: integer);
{ermittelt Lottotreffer}
var
ZZTreffer,
SZTreffer,
Treffer : integer;
begin
outDreier := 0;
outDreierZZ := 0;
outVierer := 0;
outViererZZ := 0;
outFuenfer := 0;
outFuenferZZ := 0;
outSechser := 0;
outSechserSZ := 0;
for j := MIN to REIHE do
begin
Treffer := 0;
ZZTreffer := 0;
SZTreffer := 0;
inLottoFeld := inReihenFeld[j];
if inSZ = inLottofeld[1] then
SZTreffer := SZTreffer +1;
for i := 2 to MaxZahl do
begin
for k := MIN to 6 do
begin
if inLottoeingabe[k] = inLottofeld[i] then
Treffer := Treffer + 1;
if inLottofeld[i] = inZZ then
ZZTreffer := 1;
end
end;
if (Treffer = 3) and (ZZTreffer <> 1) then
outDreier := outDreier + 1;
if (Treffer = 3) and (ZZTreffer = 1) then
outDreierZZ := OutDreierZZ + 1;
if (Treffer = 4) and (ZZTreffer <> 1) then
outVierer := outVierer + 1;
if (Treffer = 4) and (ZZTreffer = 1) then
outViererZZ := outViererZZ + 1;
if (Treffer = 5) and (ZZTreffer <> 1) then
outFuenfer := outFuenfer + 1;
if (Treffer = 5) and (ZZTreffer = 1) then
outFuenferZZ := OutFuenferZZ + 1;
if (Treffer = 6) and (SZTreffer <> 1) then
outSechser := outSechser + 1;
if (Treffer = 6) and (SZTreffer = 1) then
outSechserSZ := OutSechserSZ + 1
end;
end;{Treffer}
Procedure Eingabe(var outLottoeingabe: tLottoeingabe;
var outZZ: integer;
var outSZ: integer);
{Lottozahlen Eingeben}
begin
writeln('Bitte gezogene Lottozahlen eingeben: ');
for k := MIN to 6 do
readln(Lottoeingabe[k]);
writeln('Bitte Zusatzzahl und Superzahl eingeben : ');
readln(outZZ,outSZ)
end;{Eingabe}
procedure Auswertung(inDreier,
inDreierZZ,
inVierer,
inViererZZ,
inFuenfer,
inFuenferZZ,
inSechser,
inSechserSZ: integer);
{gibt eine Auswertung auf dem Bildschirm aus}
begin
writeln(' In den eingegebenen oder geladenen Lottoreihen wurden folgende ');
writeln(' Lottotreffer gefunden : ');
writeln;
writeln(' ',inDreier,' Dreier');
writeln(' ',inDreierZZ,' Dreier mit Zusatzzahl');
writeln(' ',inVierer,' Vierer');
writeln(' ',inViererZZ,' Vierer mit Zusatzzahl');
writeln(' ',inFuenfer,' Fnfer');
writeln(' ',inFuenferZZ,' Fnfer mit Zusatzzahl');
writeln(' ',inSechser,' Sechser');
writeln(' ',inSechserSZ,' Sechser mit Superzahl');
Writeln;
writeln(' Herzlichen Glckwunsch oder auch nicht ...');
end;{Auswertung}
begin {Hauptprogramm}
Writeln('Lottoreihen eingeben <E>');
Writeln('Lottoreihen laden <L>');
writeln('Lottoreihen ausgeben <A>');
repeat
write(' ??? ');
readln(YesNo);
if (YesNo = 'E') or (YesNo = 'e') then
begin
eingeben(reihenfeld,lottofeld);
abspeichern(reihenfeld,lottofeld);
end
else
if (YesNo = 'L') or (YesNo = 'l') then
begin
Laden(reihenfeld,lottofeld);
writeln('geladen');
eingabe(lottoeingabe,ZusatzZahl,SuperZahl);
Treffer(Reihenfeld,Lottofeld,Lottoeingabe,ZusatzZahl,SuperZahl,Dreier,DreierMitZZ,
Vierer,ViererMitZZ,Fuenfer,FuenferMitZZ,Sechser,SechserMitSZ);
Auswertung(Dreier,DreierMitZZ,
Vierer,ViererMitZZ,Fuenfer,FuenferMitZZ,Sechser,SechserMitSZ);
writeln;
Writeln('Lottoreihen eingeben <E>');
writeln('Lottoreihen laden <L>');
writeln('Lottoreihen ausgeben <A>');
write(' ??? ')
end
else
begin
Laden(reihenfeld,lottofeld);
ausgeben(reihenfeld,lottofeld);
writeln;
Writeln('Lottoreihen eingeben <E>');
writeln('Lottorehen laden <L>');
writeln('Lottoreihen ausgeben <A>');
write(' ??? ')
end
until eof;
end.{Lottozahlen}
Anfang
zurück