Kezdőoldal » Számítástechnika » Programozás » Mit kell használnom, hogy ez...

Mit kell használnom, hogy ez megvalósulhasson? C++

Figyelt kérdés

A magyar nyelv összes szavát bele kéne tenni valamibe,mit szoktak használni erre?

Listát,tömböt?


Mi erre a legjobb módszer?


Aztán én bekérek a billentyűzetről egy karkatert(i) vagy egy hosszabb szónak egy részét(iszi) és akkor pl:

std::cin >> i;

És akkor ki íratódik az összes i betűvel kezdődő szó.


Majd ezt másképp megoldani újra.

cin >> i betűvel kezdődő és cin >> p betűvel végződő szók legyenek ki íratva az összes.


Nagyjából magyarázzátok el ennek a megvalósítási folyamatát köszike :)


2011. dec. 9. 21:42
 1/9 _Jessy_ ***** válasza:
Fájlban tárolod, aztán onnan szeded elő. Vagy adatbázis, de ez egy ilyen feladathoz nem feltétlenül szükséges.
2011. dec. 9. 21:57
Hasznos számodra ez a válasz?
 2/9 A kérdező kommentje:

Mit értesz fájl és adatbázis alatt?

Egy egyszerű txt fájlra gondolsz?

És az adatbázis lécszíves ki fejtenéd bővebben köszike.

Tudod még kezdő vagyok és a 24 órás könyvben csak a mutatóknál tartok :D

2011. dec. 9. 21:59
 3/9 anonim ***** válasza:

Jó lenne, ha kicsit jobban meg tudnád fogalmazni a kérdést.

Az "összes" magyar szó kicsit sok. Arra már külön adatbázist érdemes használni, egy sima tömb kevés. (Egyszerűen nem lenne elég hely a memóriában és bevinni sem lenne egyszerű...)



Amúgy meg ha nincs db, akkor egy sima szöveges file megteszi. Mondjuk. (Semmiképpen sem a programban tárolva kell velük dolgozni!)

Ebben az esetben pedig végig tudsz menni soronként a fileon és megnézni, hogy mivel kezdődik, ha egyezik akkor kiíratod.


Kb így lehetne megoldani.

Pár soros kód, HA megvannak a szavak külön fileban.

2011. dec. 9. 22:02
Hasznos számodra ez a válasz?
 4/9 anonim ***** válasza:

Amúgy:

Adatbázis - [link]


De amúgy file olvasáshoz:

[link]

[link]

2011. dec. 9. 22:05
Hasznos számodra ez a válasz?
 5/9 anonim ***** válasza:
+1: [link]
2011. dec. 9. 22:06
Hasznos számodra ez a válasz?
 6/9 _Jessy_ ***** válasza:

Akkor sima text fájlban. Egyébként az "alap" szabak kényelmesen elférnek a memóriában. Azt hiszem Arany Jánosnak volt a szókincs 30 ezer körüli. Tekintve, hogy a szavak átlagosan 7 betűből állnak ez 7*30k = 210k Még ha létezne is mindegyiknek 1000 formája (toldalékok, ragok stb.) akkor is kb. 300-400 megáról lenne szó. De egy kezdő esetében azt hiszem ez is megteszi:

[link]

2011. dec. 9. 22:10
Hasznos számodra ez a válasz?
 7/9 anonim ***** válasza:
Az összes szó volt a kérdésben. :P :D
2011. dec. 9. 22:23
Hasznos számodra ez a válasz?
 8/9 _Jessy_ ***** válasza:
A Wikiről csak annyit, hogy aki nem veszi észre, hogy linkek alatt megtalálható a többi kezdőbetű is, ne akarjon ilyen programot írni :D Másfelől kérdés, hogy mit tekintesz "összes szónak". Mert ha csak a számneveket veszed, mindegyiket külön szónak, akkor tényleg reménytelen a dolog.
2011. dec. 9. 23:58
Hasznos számodra ez a válasz?
 9/9 anonim ***** válasza:

Mindenképpen fájlban fogod tárolni az adatbázist, de beolvasás után elfér a memóriában is. Párszázezer szó az nem olyan sok, 1-2 MByte, overheaddel együtt max 10, de akkor az már durva becslés volt.


A kérdés, hogy mit akarsz elérni?

Ha csak annyi, hogy kezdőbetű alapján tudj keresni, akkor érdemes egy vectorba beletúrni az összeset rendezve, és utána binary search algoritmussal (szintén benne van a standard könyvtárban) megkeresed az i-betűs szavak. Erre pl javaslom az equal_range függvény és egy olyan összehasonlító művelet létrehozását, ami a kezdőbetűt veszi csak figyelembe. Ekkor megkapod a tartomány elejét és a végét is.


Ha az utolsó betű is kell, akkor lehet érdemes kétféle rendezésben tartani őket, egyik normál rendezés, másikban az utolsó betű szerint rendezed, hasonlóan mint fent kikeresed a megfelelő részeket, és veszed a két halmaz metszetét lekérésnél.


Ha ennél bonyolultabb kell, akkor ahhoz megfelelő adatszerkezet kell. Érdemes például megnézni a TRIE adatszerkezetet.

2011. dec. 10. 10:52
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!