Olyan problémába ütköztem hogy a 2015 októberi emelt informatika érettségi programozás feladat részében úgy kérik a feladatok megoldását hogy a forrást ne tároljuk el a memóriában. Hogy érti ezt?
Pythonban programozok, és ha nem kérnek ilyet így csinálnám ahogy körülbelül mindet:
lista = list()
forrásfájl = open('blabla.txt')
for sor in forrásfájl:
lista.append(sor.strip())
forrásfájl.close()
Na szerintem ez az a megoldás ami pont nem jó. ezért kérdezem hogyan kéri a feladat. Ne tároljam el listában? Csak nyersen dolgozzak vele? Ha igen akkor hogyan tudok idexeléssel vegig mrnni rajta? Mert az egyik feladat megoldásához idexelés lenne a praktikus.
Ez tényleg nem megoldás, de nagyon udvarias dolog lett volna a válaszolókkal szemben, ha belinkelted volna a feladatsort, vagy legalább bemásoltad volna a pontos szöveget, hogy ne nekünk kelljen keresgélni.
"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."
Ez leginkább azt jelenti, hogy röptében dolgozod fel az adatokat, tehát nem a listán mész végig, hanem a bejövő adatokon. A ronda megoldás kezdőknek, hogy minden feladat előtt visszaállsz a file elejére, és újra beolvasod (volt ilyen megoldás 2015-ben), az elegáns megoldás, hogy minden sor beolvasása után megoldasz egy lépést a 3-6. feladatból, és a végén egyben kiírod az összes eredményt. Vagy beolvashatod 1-esével, 100-asával is, de annak nem sok értelme van, nem ezt várják.
Nézd meg a mintamegoldást, nem Python, de azért segít.
Nem.
A lista.append(sor.strip()) helyett rögtön fel kell dolgoznod a beolvasott sort és nem eltárolni a listában.
„...hogyan tudok idexeléssel vegig mrnni rajta? Mert az egyik feladat megoldásához idexelés lenne a praktikus.”
Nem fogok utánajárni, hogy miféle feladatról van szó, de a kikötés nyilván éppen azt célozza, hogy a kézenfekvő indexelős megoldás helyett keress másikat.
„A strippeléssel lepucolom a sorok végét, ilyenkor már nem az egész forrás van beolvasva.”
Ja, én meg odaírom a végére, hogy "kakukk", aztán törlöm az utolsó hat karaktert, akkor már nem az eredetit olvasom be. Tényleg arra játszanál egy érettségin, hogy valami csűrés-csavarással kimagyarázd a feladat megkerülését?
@#6:
Szívesen. Egyébként, mit szépítsük, hazudtam, és mégiscsak megnéztem a feladatot. A teljesen egyértelmű megfogalmazása alapján indokolatlannak tűnik az értelmezését firtató kérdés, a megoldása pedig letudható a sorban beolvasott adatok menet közbeni könyvelésével, ami mellesleg nemigen tér el attól, mintha egy előre beolvasott listán végeznéd el a műveleteket.
Kedves kérdező!
Igen, jó a megállapításod mivel azt kéri a feladat, hogy semmilyen változóba vagy tömbbe ne tároljuk el a nyers szöveges fájlt, tehát beolvasva kell dolgozni rajta. 1. válaszoló "nagyon udvarias dolog lett volna a válaszolókkal szemben, ha belinkelted volna a feladatsort" ott van, hogy 2015 októberi feladatsor, ha válaszolsz az adott kérdésre akkor vedd a fáradtságot, hogy utánanézel. Köszönöm!
„ha válaszolsz az adott kérdésre akkor vedd a fáradtságot, hogy utánanézel. Köszönöm!”
Úgy is van, Első! És légy nagyon hálás a kérdezőnek, amiért az lehetőséget teremtett neked a válaszolásra! Neki, éppúgy, mint lufisman kollégának, joga van pontatlanul idézni a feladat elvárásait, hogy ezzel a kis csicskáztatással tesztelje a hozzászólók talpraesettségégét. Majd még illendőséget vársz el attól, aki segítséget kér tőled... Arcátlan ripők, ez elő ne forduljon máskor! Értve?
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!