Kezdőoldal » Számítástechnika » Programozás » Hogyan oldanátok meg az...

Hogyan oldanátok meg az alábbi C++ feladatot?

Figyelt kérdés

A 2014-es emelt informatika érettségi egyik programozási feladatáról van szó. Egy színház eladott jegyeinek számát korábban összeszámoltuk egy txt fájl segítségével, most egy másik txt fájl alapján kéne megoldani a következő feladatot:


Határozza meg, hogy melyik árkategóriában adták el a legtöbb jegyet! Az eredményt

írassa ki a képernyőre az alábbi formában:

Például:

A legtöbb jegyet a(z) 3. árkategóriában értékesítették.


A txt fájl tartalma:


22222111111111122222

22222111111111122222

22222111111111122222

22222111111111122222

33322211111111222333

33333222211222233333

33333222211222223333

33333222222222233333

44444333322233344444

44444333333333344444

55444443333333444455

55555544444444555555

55555544444444555555

55555544444444555555

55555555555555555555


15 sorból, és 20 oszlopból áll, bocsánat ha GYIK tördelte volna a sorokat. Mindegyik szám egy árkategóriát jelöl. Hogyan oldanátok meg a feladatot?



2016. máj. 9. 17:15
 1/6 anonim ***** válasza:
Fent kell legyen a megoldás is.
2016. máj. 9. 17:59
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:

Tehát ha jól értem össze kell számolni hogy 1-ből, 2-ből 3-ból 4-ből vagy 5-ből van a legtöbb a fájlban?


Egyik megoldás hogy karakterről karakterre beolvasod a fájlt, és attól függően hogy 1, 2, 3, 4 vagy 5, növeld a megfelelő változót (amit 0-ról indítasz), vagy tömb elemet.


Másik megoldás hogy beolvasod egy stringbe az egész fájlt és std::count-tal megszámlálod az 1, 2, 3, 4 és 5 előfordulásának számát.


Ezek után egy maximumkiválasztással megmondod hogy melyikből van a legtöbb.

2016. máj. 9. 18:00
Hasznos számodra ez a válasz?
 3/6 anonim ***** válasza:
0%

#2 A második alternatíváddal csak az a probléma, hogy

1. Nem hatékony

2. Egy érettségi feladatnál nem a beépített függvények hívogatása a lényeg.

2016. máj. 9. 22:45
Hasznos számodra ez a válasz?
 4/6 anonim ***** válasza:

@#3

1. Egy érettségi feladatnál nem a hatékonyság a lényeg,

2. Lehet használni az érettségin beépített függvényeket ezért ismeretük kifejezetten előny.


Ami azt illeti mind a kettő O(n) komplexitású, nagy fájloknál a sebességet a beolvasás sebessége fogja meghatározni egy pufferelt beolvasás _sokkal_ hatékonyabb mint a bájtonkénti beolvasás. Optimalizáljon az aki szeretne, nem erről szól az érettségi. Ugyan ez igaz a függvények használatára is: ha meg van írva akkor ne írd meg újra hanem használd. Vannak feladatok az érettségin amik pontosan erre akarnak rávezetni.

2016. máj. 9. 23:31
Hasznos számodra ez a válasz?
 5/6 anonim ***** válasza:
Másrészt egy primitív count függvényt felesleges is lenne folyton újraírogatni, 1 for meg return az egész.
2016. máj. 10. 13:18
Hasznos számodra ez a válasz?
 6/6 anonim ***** válasza:
0%

Nem felesleges, elvégre épp az lenne a lényeg, hogy képes-e egyszerű algoritmusokat megírni.

Másrészt meg az O(n) nagyon szépen hangzik, csak hadd ne mondjam, hogy O(n) és O(n) között milliószoros különbségek lehetnek. Jelen esetben 5 db count() hívása, vs egy darab ciklus implementálása, ami on the go összeszámolja mind az 5 jegytípust. Mikor hatékonyságról beszéltem, erre céloztam. És az utóbbit legalább te írod meg, nem egy beépített függvényt hívsz meg 5 alkalommal, ami éppenséggel pont a lényege lenne egy érettségis számonkérésnek. A töri érettséginek sem lenne sok értelme, ha válaszok helyett csak beírod a könyvek címét, ahol megtalálható. Nem attól teszel tanúbizonyságot a a programozási tudásodról, hogy tudsz fejből 3 standard függvényt, és meg tudod őket hívni. A feladatot megoldja, csak épp lópikulát nem igazol.

2016. máj. 10. 14:09
Hasznos számodra ez a válasz?

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!