Komolyan gondolta az aki ezt kirakta az oktatas.hu -ra érettségi megoldásnak?
Ahogy már előttem is elmondták, lehet másféle kódot írni, minden kódban lehet hibát és javítanivalót találni vagy egyszerűen más stílust szeretni.
Örülök, hogy a #16-ban végre egyetlen konkrét kifogást is említettél. A háromféle lehetőség még határeset. Természetesen az a gyerek, aki a képes olvasókönyv helyett a Clean Code-ból tanulta az olvasást, azonnal egy tetszőleges számú járműtípusra általánosítható megoldást készítene.
Átlag Ödön viszont, akit jól felkészítettek az érettségire, és jól meg is tanulta az anyagot, és van érzéke a programozáshoz, valószínűleg azt fogja gondolni: "Ezt a feladatot más esetben általánosíthatóan oldanám meg, egy járműtömb bevezetésével, de a tanárom a lelkemre kötötte, hogy az érettségin csak azt oldjam meg, amit kér a feladat, mert többért nem adnak pontot, megy az idő, és a bonyolultság a hibalehetőséget növeli." Így megy ez.
Három fajtát tökéletesen meg lehet így oldani, az optimalizálás továbbra sem követelmény, ezt már mondtam neked, a szépség sem, a gyorsaság ellenben igen. Nem tudom, te vettél-e részt ilyen érettségin, és hány százalékos eredménnyel, de talán már tudod, hogy ott az időből van a legkevesebb.
Ez a három ifes megoldás azért jó, mert egy nagyon egyszerű adatszerkezet tartozik hozzá és egy egyszerű gondolati séma. Meg lehetne csinálni case szerkezettel is, ami jelen esetben bonyolultabb, több soros lenne, és növelné a hibalehetőséget, hogy kimarad egy break, vagy el lehetne dobni a beszédes változóneveket is és felépíteni egy bonyolultabb adatszerkezetet n féle járműre, 0 pontért. Minek? Rengeteg mindent lehetne még csinálni vele szintén 0 pontért.
A megoldásnak az is a dolga, hogy a diákokat ne ijessze el. Így mindenki láthatja, hogy ennyire egyszerűen meg lehet csinálni egy működő megoldást, és aki úgy érzi, hogy tud jobbat, az még azt a bónuszt is megkapja, hogy okosabbnak érezheti magát a tételkitűző bizottságnál, nulla érettségiztetési tapasztalattal.
"ha pedig jobban belegondolok valószínű a bonyolultabb C/C++ kódot meg sem értené a diák,"
Látod, csak kezded érteni a lényeget. Nem is kell megértenie. Nem követelmény a bonyolultság. Az egyszerűség igen. Ez egy egyszerű feladat, ami egyszerű eszközöket igényel. Pontosan annyit kell tudnia a megoldásnak, amit a feladat kér.
"tekintettel arra, hogy Python/Pascal/C#/Java a divat gimnáziumban."
A programnyelv választása a tanár vagy a munkaközösség részéről jóval több, mint puszta divat, de ennek a megvitatása már tényleg nem tartozik ide.
Érdemes lenne megismerkedned az alaptantervvel, a kerettantervvel, a tantárgy és a téma céljaival és kimeneti követelményrendszerével, meg még néhány másik dologgal, hogy megfontolt véleményt tudj alkotni. Az iskola is csak olyan, mint a foci, hogy mindenki ért hozzá, mert már látott egyet. Ez a kód itt teljesen megfelel arra, amire való, a három ifes vizsgálattal együtt.
Az a baj, hogy míg te C++-os megoldást írtál (és vársz el), az oktatas.hu-s általános jellegű. Egy ilyen megoldást azoknak is értenie kell, akik a C++-ról nem is hallottak, még ha minimális is ez a halmaz.
Pythonban (ami a legjobb nyelv érettségire) pl. nincs switch-case.
Az pedig szimplán nem igaz, hogy nem tanít, és kevésbé lenne átlátható. Az átláthatóságot pl. a "const auto" rontja, nem javítja.
És mint # 21/21 Időpont ma 07:36 megemlítette, érettségin időhiány van. Programozásra érdemes minél kevesebbet szánni, mert a többi sokkalta pepecselősebb, mint, hogy valaki azzal tököljön, hogy rossz adatsorra is működjön.
(azt pedig akkor is megjegyzem, ha te teljesen másra gondoltál: néhány órával ezelőtt még azt kérted számon, hogy "túlságosan kihasználja a C++ adta lehetőségeket", aztán idedobsz egy olyat ami még jobban ezt teszi. Komolyan?)
Tisztában vagyok vele, hogy érettségin határidőre nem lehet tökéletes kódot írni bugmentessen maximum pontszámra, nem is az érettségiző diákok kódjára mondtam, hogy rossz.
De ha már valaki örült a konkrét példának írok még egyet:
illik = illik and ( (keresett[j]==jarmu[i].rendszam[j]) or (keresett[j]=='*') );
Biztos sokat segít a diáknak ha látja ezt a kódot, debugolni akarja, hogy tanuljon belőle majd le sem fordul mert az "and" és "or" nem az ANSI C/ANSI C++ és vakarja a fejét, hogy akkor most mi is van.
Le lehet, de állítgatni kell a beállításokon.
De az érvelést én itt befejeztem, aki szerint ez megfelelő kód akármire is, használja a benne látottakat.
Tök feleslegesen bizonygatod az igazad, mert vagy hülyeségeket beszélsz, vagy azt a pár meglátást ismételgeted papagáj módjára, amivel nyitottad a vitát.
G.
Engem nagyon érdekelne, hogy az említett kódban mi "felesleges", illetve mi "nem optimális"
Milyen lenne szerintetek az optimális kód?
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!