Kezdőoldal » Számítástechnika » Programozás » Hogyan kellene ennek a feladat...

Hogyan kellene ennek a feladatnak neki kezdenem?

Figyelt kérdés

[link] 10.oldal


Hogyan kellene letárolnoma betu-szam párosokat?? Én legelőször úgy gondolnám, hogy van egy struktúrám/osztályom ami tárol egy azonosítót és egy char típusú listát. Majd létrehozok egy ilyen struktúra tipusú listát amibe megy egy azonosító ami a számokat jelöli 2-től 9-ig, a másik felébe (azaz ami listát fogad) meg az adott sámhoz lehetséges betűk pl 2 és A, B, C. De ez így nem egy szép megoldása ennek (gondolom én), valamint rengeteg sor is. Miként lehetne ezt megoldani? (Maguk a feladatok ezután már nem jelentenének nagy nehéséget ahogy így átfutottam, de az adatszerkezet létrehozására nincs megoldásom)


2019. nov. 30. 22:58
 1/4 anonim ***** válasza:
Én tuti egy sima függvényt csinálnék, ami visszaadja a paraméterként átadott betű kód változatát, abban egy pár if-else/case aztán kész
2019. nov. 30. 23:15
Hasznos számodra ez a válasz?
 2/4 anonim ***** válasza:
100%

Csinálhatod, ahogyan az első írta vagy feltöltesz egy tömböt amikben eltárolód a betűhöz tartozó kódot.


TÖMB = [2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,7,8,8,8,9,9,9,9];


Az "a" betű ASCII kódja 97 a "b" betűi 98 és így tovább egészen a "z" betűig, aminek 122, tehát egy betű kódját így kapod meg TÖMB[ASCII_KÓD('g')-97].

2019. dec. 1. 08:11
Hasznos számodra ez a válasz?
 3/4 anonim ***** válasza:

public class SmsSzavak

    {

        Dictionary<char, int> _karakterKodok;

        Dictionary<string, List<string>> _szoKodok;

        StringBuilder _sb;


        public SmsSzavak()

        {

            _karakterKodok = new Dictionary<char, int>();

            int karakterSzam = 1;

            int i = 'a';

            for (; i < 'o' + 1; i++)

            {

                if ((i - 'a') % 3 == 0)

                {

                    karakterSzam++;

                }

                _karakterKodok.Add((char)i, karakterSzam);

            }

            karakterSzam++;

            for (; i < 's' + 1; i++)

            {

                _karakterKodok.Add((char)i, karakterSzam);

            }

            karakterSzam++;

            for (; i < 'v' + 1; i++)

            {

                _karakterKodok.Add((char)i, karakterSzam);

            }

            karakterSzam++;

            for (; i < 'z' + 1; i++)

            {

                _karakterKodok.Add((char)i, karakterSzam);

            }


            _szoKodok = new Dictionary<string, List<string>>();

            string[] szavak = File.ReadAllLines("szavak.txt");

            _sb = new StringBuilder();

            foreach (var szo in szavak)

            {

                foreach (var betu in szo)

                {

                    _sb.Append(_karakterKodok[betu]);

                }

                if (_szoKodok.ContainsKey(_sb.ToString()))

                {

                    _szoKodok[_sb.ToString()].Add(szo);

                }

                else

                {

                    _szoKodok.Add(_sb.ToString(), new List<string>());

                    _szoKodok[_sb.ToString()].Add(szo);

                }

                _sb.Clear();

            }

        }

2019. dec. 1. 16:53
Hasznos számodra ez a válasz?
 4/4 A kérdező kommentje:
Köszönöm a válaszokat. Végül az #1-es válaszoló megoldásával oldottam meg (amire magam is gondoltam egyébként, csak a túl sok sok miatt nem akartam).De elehet majd, ha valamikor újra megoldom a feladaot kipróbálom a 2. illetve 3. lehetőséget is
2019. dec. 4. 22:34

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!