Jól oldottam meg ezt az érettségi feladatot? (Pascalban)
Próbálom megcsinálni, de az a baj, hogy nem egyértelmű hogy mit várnak el, és a megoldókulcsok se valami bőbeszédűek... :/
Van ez a feladat:
"A kiserlet.txt állományban egy pénzfeldobás-sorozat eredményét találja. Mivel
a sorozat hossza tetszőleges lehet, ezért az összes adat memóriában történő egyidejű
eltárolása nélkül oldja meg a következő feladatokat! Feltételezheti, hogy egymilliónál több
adata nem lesz.
3. Állapítsa meg, hány dobásból állt a kísérlet, és a választ a mintának megfelelően írassa ki
a képernyőre! "
Én ezt így oldottam meg. Jó ez így?
Sysutils minek?
Amúgy jó..
Érettségire.
valamelyik tutorial videoban ő is ezt csinálta. Végül nem azt követtem, mert ő valami más verzióban dolgozhatott, mert az Assign helyett Assignfile-t használt, amit az én 3.0-ás pascalom nem ismert...
Kiemelném a "összes adat memóriában történő egyidejű
eltárolása nélkül oldja meg a következő feladatokat!" mondatot. Most akkor ennek megfelelően csináltam? Mert őszintén nem sok fogalmam van róla hogy mit is akar ez jelenteni... Esetleg egy tömbbe kellett volna belerakni az adatokat és onnan kiolvasni?
Szia.
Igen, jól csináltad,
"ezért az összes adat memóriában történő egyidejű
eltárolása nélkül oldja meg a következő feladatokat!" pontosan azt jelenti, hogy tömbök nélkül kell megoldani, ha tömbbel csináltad volna, akkor az adatok a memóriában lennének.
Üdv.
"pontosan azt jelenti, hogy tömbök nélkül kell megoldani,"
Nem egészen azt jelenti.
A feltétel az, hogy a teljes adathalmazt nem tárolhatja egyidejűleg a memóriában, tehát blokkos beolvasást, kisebb tömbméretet alkalmazhatott volna.
AssignFile/CloseFile használata azért lett volna jobb, mert a későbbiekben pascalról átléphetsz object pascalra, ha megszokod, hogy ott az assign mást takar.
de azt írta hogy "identifier not found: Assignfile", szóval vagy valamit nem importáltam be, amit kellett volna, vagy csak régi verziót használok amiben még nincs ilyen.
Amúgy köszi a válaszokat! :)
"identifier not found: Assignfile"
Elhagytad az elejéről a {$mode objfpc} direktívát (ld. #4, object pascal).
Két változat a fenti direktívával:
{$mode objfpc}
uses Crt;
var
x : integer;
s : char;
f : TextFile;
begin
ClrScr;
AssignFile(f, 'szoveg.txt');
Reset(f);
if IOResult = 0 then
begin
x := 0;
while not Eof(f) do
begin
Inc(x);
ReadLn(f, s);
WriteLn(x, '. dobas: ', s);
end;
CloseFile(f);
WriteLn('Osszesen ', x, ' dobas volt.');
end
else WriteLn('hiba');
ReadKey;
end.
// // // // // // // // // //
{$mode objfpc}
uses Crt;
var
x : integer;
s : char;
f : TextFile;
begin
ClrScr;
AssignFile(f, 'szoveg.txt');
{$I+}
try
Reset(f);
x := 0;
while not Eof(f) do
begin
Inc(x);
ReadLn(f, s);
WriteLn(x, '. dobas: ', s);
end;
WriteLn('Osszesen ', x, ' dobas volt');
CloseFile(f);
except
writeln('Hiba!');
end;
ReadKey;
end.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!