NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
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
Patrik Marýška:14.4.2017 18:14

Ahoj,

mohl bych poprosit o radu? Zadání je takové, že mám přeložit zprávu do morseovky...

Nicméně se nemohu dopídit k tomu, proč mi to nebere :(

package pole3;


public class Pole3 {


    public static void main(String[] args) {
      String s = "J,a,k,s,e,m,a,s";
      System.out.printf("Původní zpráva %s/n:", s );

      String zprava = "";

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

      String[] znaky = s.split(",");

      for (String abecedniZnak : znaky)
      {


      int index = -1;
          for (int i = 0; i < abecedniZnaky.length(); i++)
          {
                 if (abecedniZnaky.equals(abecedniZnak))
                     index = i;
          }

      if (index >= 0)
          morseuvZnak = morseovyZnaky.charAt(index);


      zprava += morseuvZnak;
    }
      System.out.printf("Dešifrovaná zpráva %s\n", zprava);
}

      }

Mockrát děkuji :)

 
Odpovědět
14.4.2017 18:14
Avatar
Semjacko
Člen
Avatar
Odpovídá na Patrik Marýška
Semjacko:14.4.2017 18:45

Namiesto

if (abecedniZnaky.equals(abecedniZnak))
                     index = i;

Skús dať

if (abecedniZnaky.charAt(i) == abecedniZnak)
                     index = i;
 
Nahoru Odpovědět
14.4.2017 18:45
Avatar
Semjacko
Člen
Avatar
Odpovídá na Semjacko
Semjacko:14.4.2017 18:56

Oprava: if (String.value­Of(abecedniZna­ky.charAt(i))­.equals(abeced­niZnak))
index = i;

 
Nahoru Odpovědět
14.4.2017 18:56
Avatar
Patrik Marýška:15.4.2017 0:35

Díky za radu :), nicméně problém přetrvává.

Program mi píše chybu v této části:

if (index >= 0)
          morseuvZnak = morseovyZnaky.charAt(index);
 
Nahoru Odpovědět
15.4.2017 0:35
Avatar
wgamez101
Člen
Avatar
Odpovídá na Patrik Marýška
wgamez101:15.4.2017 4:10

Nemáš deklarovanú premennú morseuvZnak, tak ju zadeklaruj napr. niekde pred podmienkou. A ešte premenná morseovyZnaky je pole Stringov a nie jeden String, takže nemôžeš použiť metódu charAt(int index), ale namiesto toho musíš vybrať index v poli.

String morseuvZnak = "";
if (index >= 0)
    morseuvZnak = morseovyZnaky[index];
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
15.4.2017 4:10
There are only two kinds of programming languages: those people always bitch about and those nobody uses. -- Bjarne...
Avatar
Patrik Marýška:15.4.2017 12:16

Děkuji moc za pomoc, už to funguje. :-)

 
Nahoru Odpovědět
15.4.2017 12:16
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 6 zpráv z 6.