Lécci, Lécci tanícsatok meg programozni
-
#135
Hello!
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[i]);
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[i],' ');
(*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[i],' ');
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?
Ja és itt van a lottosz.dat egy részlete:
37 42 44 61 62
18 42 54 83 89
5 12 31 53 60
1 28 47 56 70
Na így néz ki a fájl, csak 51 soron keresztül.
Előre is köszi.