Kezdőoldal » Számítástechnika » Programozás » Jól oldottam meg ezt az...

Jól oldottam meg ezt az érettségi feladatot? (Pascalban)

Figyelt kérdés

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?


[link]



2018. márc. 17. 23:48
 1/10 anonim ***** válasza:

Sysutils minek?

Amúgy jó..

Érettségire.

2018. márc. 18. 00:56
Hasznos számodra ez a válasz?
 2/10 A kérdező kommentje:

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?

2018. márc. 18. 01:41
 3/10 coopper ***** válasza:
100%

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.

2018. márc. 18. 07:06
Hasznos számodra ez a válasz?
 4/10 anonim ***** válasza:
100%

"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.

2018. márc. 18. 07:41
Hasznos számodra ez a válasz?
 5/10 A kérdező kommentje:

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! :)

2018. márc. 18. 10:46
 6/10 anonim ***** válasza:
Milyen elvárást nem tartasz egyértelműnek?
2018. márc. 18. 11:23
Hasznos számodra ez a válasz?
 7/10 anonim ***** válasza:
A blokkos beolvasás felesleges bonyolítás. Érettségin vagy beolvassuk az összes adatot egyben, vagy feldolgozzuk röptében a beolvasás közben. Általában az előbbit szokták kérni, ritkán az utóbbit.
2018. márc. 18. 11:25
Hasznos számodra ez a válasz?
 8/10 tabaki ***** válasza:

"identifier not found: Assignfile"


Elhagytad az elejéről a {$mode objfpc} direktívát (ld. #4, object pascal).

2018. márc. 18. 21:02
Hasznos számodra ez a válasz?
 9/10 tabaki ***** válasza:

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.

2018. márc. 18. 21:42
Hasznos számodra ez a válasz?
 10/10 A kérdező kommentje:
köszi a választ !
2018. márc. 18. 22:01

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!