Hogyan tudok megirni egy olyan programot, amelyhez ha hozzácsatolok egy txt. Szöveges fájlt, és beirok X számú betűt (mondjuk a, á, d, g, h, e, é, s) kiadja azokat a szavakat, amelyek ebben a txt fájlban megtalálhatók?
A txt. fájlom a Magyar Értelmező Késziszótár, lényegében olyan programot szeretnék irni, amelybe hogyha bepötyögök pár betűt, akkor kiirja a lehetséges magyar szóalkotásokat ezekből a betűkből!
Hogyan kivitelezhető ez?
Igazából lassú programot, de könnyűt:
Betöltöd az egészet a programba, majd szavakra bontod és egy ciklus végigfut rajta, ha talál xy betűt akkor kiírja.
Ugyanez, de másként, hátha érthetőbb:
Megnyitja a fájlt, tartalmát beolvassa egy stringbe, amit széttördel szavakra, ebből lesz egy stringtömb. Ezután a fájl bezárható, a szótömbbel dolgozunk tovább.
Beírtak egy betűt, vagy egy kezdőszakaszt; ekkor a ciklusnak minden szóra ellenőriznie kell, hogy van-e megfelelé kezdőszelete. Ha a fájl szoros ábécében tartalmazza a szavakat, akkor gyorsítható bináris kereséssel. A keresés talál egy megfelelő szót, ekkor elindul két irányban, és kiír minden szót, amíg a kezdőszelet egyezik. Viszont ekkor a szótár karbantartására kell egy rendezett beszúrás.
Utolsó: nem erről van szó, "akkor kiirja a lehetséges magyar szóalkotásokat ezekből a betűkből!", tehát ő azt akarja, hogy arra, hogy a, y, u, t, k kiadja, hogy kutya.
Ehhez az kell, hogy minden szóhoz megadj egy halmazt (vagy multisetet, attól függően, hogy hogy kezeled az ismétlődő betűket), aztán már csak egy "rendezés" kell a halmazok között (tartalmazási reláció igazából, nem igazi rendezés, mert nem aszimmetrikus).
iostream:
Szerintem elég ha szavanként végigmegy az egészen, és mikor végigért kezdi megint a következő betűvel. Tehát csak olyan szavak maradnak majd meg, amikben mindegyik betű megvan.
először az összes k, majd ku, majd kut és így tovább.
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!