Mahdoton koulutehtävä... :'(

so sick n' tired

Okei...mun täytyy tehdä C - ohjelma, joka kääntää normaalin tekstin morsetukseksi,mutta en ole tähän mennessä onnistunut.Olen määritellyt vakiotaulukot const string morseCode[] = {".-",...,"--.."} morseaakkosille ja const char alphabets[] = {'a',...,'z'} ja tehnyt seuraavanlaisen kääntäjäfunktion:

string morseToAlphabet(string morse)
{
string translation = "";
for(int i = 0; i < morse.length(); i )
{
if(morse[i] == morseCode[0])
{
translation = alphabets[0];
}
else if(morse[i] == morseCode[1])
{
translation = alphabets[1];
}
//...
else if(morse[i] == morseCode[25])
{
translation = alphabets[25];
}
else if(morse[i] = ' ')
{
translation = "";
}
else
{
translation = "[error]";
}
}
return translation;
}

Tämä tietenkin herjaa siitä,kun morse[i]:tä(yksittäinen merkki)verrataan merkkijonoon eli morseCode[]:n alkioon ja kääntäminen ei siten onnistu,mutta sekin menee pieleen,jos määrittelee morseaakkoset yksittäisiksi merkeiksi(char),sitten se tulostaa ihan hölmöjä.Miten tämän sitten saa tehtyä,siinäpä kysymys?

Kiitos jo etukäteen neuvoista!:)

4

1227

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • mites tämä...

      sanot

      "Olen määritellyt vakiotaulukot const string morseCode[] = {".-",...,"--.."} morseaakkosille ja const char alphabets[] = {'a',...,'z'}"

      Mikä on tämä morse[i]?
      Yksittäinen merkki, mistä tullut?
      Mikä idea on verrata sitä morsekoodiin?

      • keksa

        ja c voit indeksoida stringiää tolleen

        string keksa = "keksa";

        char eka = keksa[0]; // eli merkki k

        Jos se string morse on vaikka "hello world", niin eihän sen ekaa merkkiä voi mihinkään morseCode-taulukon alkioon verrata, koska siellä oli ne morsemerkit ja ne on useita merkkejä putkessa ..--

        Lisäksi sulla on nyt 25 kertaa sama koodi tehtynä ja sen pitäis jo kertoa sulle, että pitää tehdä aliohjelma jota kutsua loopissa. Mitäs jos tulee 480 aakkosta lisää? Teet saman koodin about 500 kertaa lisää vai?

        string morseToAlphabet(string morse)
        {
           string translation = "";

           for(int i = 0; i < morse.length(); i )
           {
              translation = getMorseCodeForChar(morse.charAt(i)); // charAt() kait toimii c tai sitten[i]

           }
        return translation;
        }

        string getMorseCodeForChar(char merkki)
        {
        string paluuArvo="";

           for(int i = 0; i < alphabets.length(); i ) // en tiedä onko tuota .length() taulukolle c :ssa
           {
              if(merkki == alphabets[i]) //onko merkki joku aakkonen?
              {
                 paluuArvo = morseCode[i] ",";   //lisätään morsemerkki merkkijono
              }
              else if(merkki == ' ') paluuArvo = ",";
              

           }

           return paluuArvo;
        }


      • so sick n' tired
        keksa kirjoitti:

        ja c voit indeksoida stringiää tolleen

        string keksa = "keksa";

        char eka = keksa[0]; // eli merkki k

        Jos se string morse on vaikka "hello world", niin eihän sen ekaa merkkiä voi mihinkään morseCode-taulukon alkioon verrata, koska siellä oli ne morsemerkit ja ne on useita merkkejä putkessa ..--

        Lisäksi sulla on nyt 25 kertaa sama koodi tehtynä ja sen pitäis jo kertoa sulle, että pitää tehdä aliohjelma jota kutsua loopissa. Mitäs jos tulee 480 aakkosta lisää? Teet saman koodin about 500 kertaa lisää vai?

        string morseToAlphabet(string morse)
        {
           string translation = "";

           for(int i = 0; i < morse.length(); i )
           {
              translation = getMorseCodeForChar(morse.charAt(i)); // charAt() kait toimii c tai sitten[i]

           }
        return translation;
        }

        string getMorseCodeForChar(char merkki)
        {
        string paluuArvo="";

           for(int i = 0; i < alphabets.length(); i ) // en tiedä onko tuota .length() taulukolle c :ssa
           {
              if(merkki == alphabets[i]) //onko merkki joku aakkonen?
              {
                 paluuArvo = morseCode[i] ",";   //lisätään morsemerkki merkkijono
              }
              else if(merkki == ' ') paluuArvo = ",";
              

           }

           return paluuArvo;
        }

        "Lisäksi sulla on nyt 25 kertaa sama koodi tehtynä ja sen pitäis jo kertoa sulle, että pitää tehdä aliohjelma jota kutsua loopissa. Mitäs jos tulee 480 aakkosta lisää? Teet saman koodin about 500 kertaa lisää vai?"

        Onhan se tyhmää tehdä oma koodi joka aakkoselle(niitähän vois olla vaikka 500,mutta en mä sitten tietenkään olis tehnyt mitään noin tyhmää).Oon ohjelmoinu vasta vähän aikaa ja olin vähän epätoivoinen tämän tehtävän kanssa,kun ei olla käyty vielä stringien kaikkia hienouksia läpi ja maikka käski kattoa omatoimisesti yheltä enkunkieliseltä sivustolta vinkkejä tähän meidän etätehtävään...:-D Mut kiitti,tota täytyy kokeilla! :-)


      • keksa
        so sick n' tired kirjoitti:

        "Lisäksi sulla on nyt 25 kertaa sama koodi tehtynä ja sen pitäis jo kertoa sulle, että pitää tehdä aliohjelma jota kutsua loopissa. Mitäs jos tulee 480 aakkosta lisää? Teet saman koodin about 500 kertaa lisää vai?"

        Onhan se tyhmää tehdä oma koodi joka aakkoselle(niitähän vois olla vaikka 500,mutta en mä sitten tietenkään olis tehnyt mitään noin tyhmää).Oon ohjelmoinu vasta vähän aikaa ja olin vähän epätoivoinen tämän tehtävän kanssa,kun ei olla käyty vielä stringien kaikkia hienouksia läpi ja maikka käski kattoa omatoimisesti yheltä enkunkieliseltä sivustolta vinkkejä tähän meidän etätehtävään...:-D Mut kiitti,tota täytyy kokeilla! :-)

        kun itse aloittelin koodaamista, niin piti koodata annetun luvun kertoma.

        Aloin tekemään ohjelmaa ja tein aina uuden metodin, kun joku halusi syöttää uuden luvun ohjelmaan.

        int annettu_luku


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Metsäkoneen kuljettaja huuteli tutkijalle

      "voisit kyllä ottaa rintaliivit pois ennen kuin tulet minulle juttelemaan, hän sanoo." https://yle.fi/a/74-20106446 On
      Suomussalmi
      704
      10250
    2. Suomi on täysin sekaisin

      Jo ties monettako päivää hirveä itku ja poru jostain helvetin nilviäisistä. https://www.is.fi/taloussanomat/art-2000010
      Maailman menoa
      421
      4543
    3. Kaikki ei vieläkään usko luontokatoon.

      Suomussalmen Hukkajoella foliohattu metsäkoneen kuljettaja tuhosi tuhansia harvinaisia jokihelmisimpukoita eli raakkuja
      Kajaani
      92
      3084
    4. Sano vain suoraan, että nyt riittää

      ettei kiinnosta. Sano, että lopeta! En ihmettelisi, jos olet saanut tarpeeksesi ja toivot minun ymmärtävän lopettaa. Eh
      Ikävä
      43
      2875
    5. Ohhoh! Ex-pääministeri Sanna Marinin Joni-rakas paljasti ilouutisen: "Tässä kuussa..."

      Sanna Marin on ollut naimisissa Markus Räikkösen kanssa. Nyt hänen seurassaan on usein julkkishiusmuotoilija Joni Willb
      Kotimaiset julkkisjuorut
      55
      2704
    6. Mari Rantanen asettaa sairaan lapsen edun oman uransa edelle - (tekikö Marin samaa)

      Noin toimii kunnon vastuuntuntoinen äiti, mutta siitäkin nämä mt-ongelmaiset vasemmistolaiset häntä täällä haukkuvat. "
      Maailman menoa
      230
      2698
    7. Mitä ajattelet aina

      Kun hän tulee näköpiiriin?
      Ikävä
      154
      1874
    8. Luokatonta toimintaa

      Tyrmistyttävää toimintaa Stora Enson korjuu yrittäjältä Hukkajoella. Täyttä piittaamattomuutta laeista ja luontoarvoista
      Suomussalmi
      73
      1748
    9. Ensimmäisestä kohtaamisesta saakka

      minulla on ollut hämmentynyt olo. Miten voit tuntua siltä, että olisin tuntenut sinut aina? Sinun kanssasi on yhtä aikaa
      Ikävä
      14
      1640
    10. Maailmankuulu homopingviini on kuollut

      Minä niin toivoin että pariskunta olisi saatu kunniavieraiksi ensi kesän Prideen. 💔 "Maailmankuulu homopingviini on k
      Lapua
      6
      1443
    Aihe