Új hozzászólás Aktív témák
-
Karma
félisten
válasz
zsambek
#5503
üzenetére
No én is utolértem magam közben, válaszolok erre is...
Egyetértek, a feladatsor határozottan nehezebb mint a korábbi. Bár az oktatás is követné ezt színvonalban. Érződik, hogy próbálják a Pascalt leépíteni (ez önmagában nem baj), csak ennek eszközéül azt választották, hogy az ezt választó diákokat jól megszivatják...
Említettem kicsit korábban, hogy a hetedik és a hatodik feladat ugyanaz, és jobban jársz, ha ebben a sorrendben próbálod őket megoldani. A hetedik tényleg "baromi" nehéz, sokkal nagyobb ráfordítást igényel, mint a korábbi évek zárófeladatai.
Mondjuk annyi különbség van, hogy itt nem kell neked azon gondolkodnod, hogy "mit is kéne kihoznom a meglévő adatokból hogy válaszolhassak a kérdésre?", mert kerek perec leírták, hogy mi a cél: olyan szerkezetet kell felépítened, mint amit a "rendezett" oszlopban látsz. A kérdés csak a "hogyan?".
Ez most az a szituáció, hogy egy vagy két darab sima, egydimenziós lista nem elég. Ez egy "fésűs lista" is lehetne (ahogy a közoktatás csúfolja), de szerintem célravezetőbb, ha kapásból Dictionaryt építesz belőle.
Méghozzá egy Dictionary<string, List<string>>-et, amivel a kulcs az ABC-rendezett szó, és a hozzá tartozó listában vannak a konkrét szavak a szótárból.
A stratégia a következő:
0) Csinálsz egy ilyen Dictionary objektumot (továbbiakban: dict)
1) Ciklusban, egyszer végigmész a szótáron. Minden elemére:
1/a) veszed a szó ABC-rendezett alakját (továbbiakban: key)
1/b) a dict.ContainsKey(key) metódussal megnézed, hogy az adott kulccsal találkoztál-e már
- ha igen, akkor dict[key]-jel megszerzed a hozzá tartozó listát, és annak az Add metódusával eldugod a szót
- ha viszont nem, akkor létrehozol egy új List<string>-et, belerakod a szót, és a listát elteszed a dict-ben a key-hez. Pl.: dict[key] = list;
2) Ha a végére értél, nincs más dolgod, mint rendezni a dict.Keys-t a kulcs hossza alapján, és e szerint kiírni.A hatodik feladat pedig annyi, hogy veszed a maximális hosszú kulcsokat, és sorban kiírod a képernyőre a hozzá tartozó szavakat. Ha a dict megvan, ez pofonegyszerű

Érzem, hogy a 2) lépés elég nagy logikai ugrás, de azért remélem a gondolatmenet átjön. Ha nem, akkor szólj feltétlen.
És egyébként LINQ-kel az egész egy sor.
-
Alexios
veterán
válasz
zsambek
#5503
üzenetére
Bár annyira nem néztem most át a kódod, és nem tudom mennyire ismered a debug-olási lehetőségeket, de azért jóljöhet, ha breakpointokat helyezel el ott ahol nem azt csinálja a programod amit szeretnél, nagyobb eséllyel fogsz rájönni arra, hogy mi a baj magadtól, hiszen látod a változók aktuális értékeit pl.
Bár hirtelen elnézve szerintem az a kód ebben a formában jó.
Viszont ilyet:
Convert.ToString(szo1)
tökfölösleges csinálni, hiszen a szo1 eleve egy string, a foreachnél látszik a deklaráció
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- HiFi műszaki szemmel - sztereó hangrendszerek
- exHWSW - Értünk mindenhez IS
- NVIDIA GeForce RTX 3080 / 3090 / Ti (GA102)
- World of Tanks - MMO
- Poco F8 Ultra – forrónaci
- Sorozatok
- OFF TOPIC 44 - Te mondd, hogy offtopic, a te hangod mélyebb!
- eMAG vélemények - tapasztalatok
- World of Tanks - OFF topic
- BestBuy ruhás topik
- További aktív témák...
- Legion 5 Pro 16ACH6H 16" QHD+ IPS Ryzen 5 5600H RTX 3060 16GB 512GB NVMe gar
- Meta Quest 3 512Gb
- Olcsó Gamer PC-Számítógép! Csere-Beszámítás!I5 6600 /GTX 1650 Super / 16GB DDR4 / 256 SSD + 1TB HDD
- Predator Helios Neo 18 18" QHD+ IPS i9-14900HX RTX 4070 32GB 512GB NVMe magyar vbill gar
- Asus GTX 1060 - 6GB
- HIBÁTLAN iPhone 13 Pro 128GB Alpine Green -1 ÉV GARANCIA - Kártyafüggetlen, MS2978
- FIFA 16 Playstation 4
- Samsung Galaxy Xcover Pro / 4/64GB / Kártyafügetlen / 12Hó Garancia
- HP 150W töltők (19.5V 7.7A) kis kék, kerek, 4.5x3.0mm
- Használt számítógépek/merevlemezek számlával, garanciával! Ingyen Foxpost/PostaPont!
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


