NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Morseovka

V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Jan Ulrich
Člen
Avatar
Jan Ulrich:22.1.2017 8:35
Scanner sc = new Scanner(System.in);

        System.out.println("Zadej zprávu v abecedě (bez diakritiky), bez mezer: ");
        String s = sc.nextLine();

        String zprava = "";

        String[] morseovyZnaky = {".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."};
        String abecedniZnaky = "abcdefghijklmnopqrstuvwxyz";



        for (int j = 0; j <= s.length(); j++) // for (int j = 0; j <= s.length; j++) char abecedniZnak = s.charAt(j)
        {
         char abecedniZnak = s.charAt(j);
         System.out.println(abecedniZnak);
         int index = -1;
         String mznak = " ";

         for (int i = 0; i < abecedniZnaky.length(); i++)
         {

             if (abecedniZnaky.charAt(i) == abecedniZnak)
             {
                 index = i;
             }
         }

             if (index >= 0)
             {
                 mznak = morseovyZnaky[index];
             }
             zprava = zprava + mznak;
         }
        System.out.println("Dekódovaná zpráva : " + zprava);

Ahoj, poradí někdo zkušenější, proč toto nefunguje Díky!

 
Odpovědět
22.1.2017 8:35
Avatar
Odpovídá na Jan Ulrich
Petr Štechmüller:22.1.2017 9:25

Ahoj, mohl jsi sem alespoň hodit chybu, kterou to vypíše.
Naštěstí to není potřeba, protože chyba je vidět na první pohled.
V prvním for cyklu:

for (int j = 0; j <= s.length(); j++)

iteruješ od 0 do celé délky vstupu, což je problém. Ten vstup si můžeš představit jako pole a Ty zacházíš mimo hranice pole. Takže si to oprav takto:

for (int j = 0; j < s.length(); j++) // Odstraň to rovnítko
Nahoru Odpovědět
22.1.2017 9:25
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.