Segítséget szeretnék kérni egy Pascal programmal kapcsolatban. A mostani emelt-szintû érettségi programozási feladatát akarom megcsinálni. A lényeg, hogy van egy lottosz.dat nevû fájl, amiben a 2003-as év 51 hetének lottoszámait tartalmazza, minden sorban 5 szám szóközökkel elválasztva. A lényeg, hogy ebbõl kell adatokat kiolvasni többféle célra. Van, amikor csak a megadott számú sort ki kell iratni a képernyõre, van amikor az adatokkal számolni kell (statisztikai céllal).
Én úgy gondoltam, hogy a fájlt típusos fájlként deklarálom, a típus pedig 5 integerbõl álló tömb.
Ebben az esetben a fájl minden sora egy-egy elemnek számítana, mert a szóközökkel elválasztott 5 szám egy-egy tömböt alkot. Vagy ez így nem mûködhet? Mert én így próbáltam egy ilyen tömbbe beolvasni a fájl n. elemét, de a tömbbe nem a megfelelõ számok kerültek, hanem 4- és 5-jegyû számok, amik, nem tudom honnan kerültek oda. Hogy értsétek a dolgot, berakom a forrást:
program lotto;
uses crt;
type comb=array [1..5] of integer;
var lottosz : file of comb;
szamok,temp : comb;
cs,i,n : integer;
sz : string;
begin
clrscr;
(*Az 52. hét nyeroszámainak bekérése*)
for i:=1 to 5 do begin
write('Irja be az 52. hét ',i,'. nyeroszámát!');
readln(szamok);
end;
(*A számok sorbarendezése és kiírása*)
for i:=1 to 4 do begin
for n:=1 to 4 do begin
if szamok[n]>szamok[n+1] then begin
cs:=szamok[n];
szamok[n]:=szamok[n+1];
szamok[n+1]:=cs;
end;
end;
end;
write('Az 52. hét felh. által megadott nyeroszámai: ');
for i:=1 to 5 do
write(szamok,' ');
(*1-51 közötti szám bekérése, a számnak megfelelo sorszámú hét
nyeroszámainak kiírása*)
writeln;
write('Irjon be egy számot 1-tol 51-ig'); readln(n);
assign(lottosz, 'lottosz.dat');
reset(lottosz);
seek(lottosz,n);
read(lottosz,temp);
write('A(z) ',n,'. hét lottoszámai: ');
for i:=1 to 5 do
write(temp,' ');
end.
Nah. Az elsõ két rész nem számít, az az elsõ részfeladathoz kell, de azok sikerültek is. A harmadik rész lenne a lényeg, létszi nézze meg nekem valaki, hogy miért nem mûködi. Az általam létrehozott comb típus nem megfelelõ a fájlhoz? Vagy ezt szöveges fájlként kellen kezelni?