Hirdetés

Keresés

Új hozzászólás Aktív témák

  • proci985

    MODERÁTOR

    válasz kmisi99 #1601 üzenetére

    üss fel egy könyvet és nézz utánna, vektort sokkal egyszerűbb használni, mint egy statikus tömböt szvsz. map is csak leírva hangzik bonyolultan.

    alternatíva: szerintem egyszerűbb egy kétdimenziós tömb, aminél a nulladik tömbelem az angol, első a magyar. ha a szöveges állományt pl le lehet tárolni egy tömbben, és jól veszem ki, hogy nem feltétlenül kell fileból olvasgatni.

    aztán forciklus, végigmész a tömb nulladik elemein, ha egyezik a beírt és a tömbben letárolt string, akkor pedig kiíratod a tömb[1] es elemet. csúnya megoldás, de szerintem ennél egyszerűbben nem megy. előny, hogy nem kell két tömb (macera őket egymáshoz láncolni), hátrány van sok, de alapvetően iskolapéldának lekódolni egyszerű.

  • WonderCSabo

    félisten

    válasz kmisi99 #1601 üzenetére

    Akkor deklarálsz magadnak két sima, statikus tömböt, ugyanolyan mérettel. Feltételezed, hogy a szópárak száma megegyezik, de legalábbis nem nagyobb a tömbök méreténél. Van egy / két fájlod, amely(ek)ben soronként egy szó/pár van. Soronként végighaladsz a fájl(ok)on, és berakod a tömb i-dik elemébe. Ezzel feltöltötted az "adatbázist". A fordítás pedig úgy történik, hogy egy for ciklussal végigmész az angol szavakat tartalmazó tömbön, ha az aktuális elem egyezik a fordítandó szóval, akkor megjegyzed az elem indexét. És ezt az indexű elemet kéred el a másik, magyar szavakat tartalmazó tömbtől.

    A lineáris keresés pont az, amit az előző bekezdés uccsó előtti mondatában írtam. Végigmész minden elemen, és ha az aktuális elem megegyezik a keresendővel, megjegyzed az indexet, és kilépsz a ciklusból. És azért lineáris, mert az algoritmus futásideje lineárisan arányos az elemek számával.

    A vektor, vagyis a C++ - ban vector, egy dinamikus adatszerkezet, pontosabban egy dinamikus tömb. Ha megtelik, és akarsz még elemet belerakni, automatikusan növeli a méretét.

Új hozzászólás Aktív témák