GARANTIR DESCONTO

Fórum JAVA MORSE #588954

18/11/2017

0

Boa noite!

Estou a fazer um programa em Java, que tem te traduzir frases de Morse para Português e vice-versa...Deixo aqui o meu código para poderem ver o que se pode fazer.

Os problemas que tenho são:
- traduz para português mas imprime mal os espaços e nem sempre traduz bem
- nao traduz para Morse

Não é permitida a utilização de métodos das classes Arrays, Integer e Math do package java.lang.

Obrigada desde ja, por tirarem um bocadinho do vosso tempo para me ajudar, é que eu sou nova nisso e tenho algumas dificuldades em expressar o que quero, no código!



import java.util.Scanner;

public class Morse {

public static void main(String[] args) {
char ABC[] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', ' '};
String[] MORSE = {
".-", "-...", "-.-.", "-..", ".", //A,B,C,D,E
"...", "--.", "....", "..", ".---", //F,G,H,I,J
"-.-", ".-..", "--", "-.", "---", //K,L,M,N,O
".--.", "--.-", ".-.", "...", "-", //P,Q,R,S,T
"..-", "...-", ".--", "-..-", "-.--", //U,V,W,X,Y
"--.." //Z
};

Scanner in = new Scanner(System.in);


/// COMMENT:
///
/// PODES COMEÇAR POR LER UMA SÓ FRASE, MAS DEPOIS TERÁ QUE EXISTIR UM CICLO ONDE LÊS FRASES CONTINUAMENTE
/// ATÉ SER INTRODUZIDA UMA LINHA IGUAL A "*".
/// DEVES USAR O MÉTODO equals PARA COMPARAR Strings, ex: if (fraseIn.equals(outraFrase)) ...
///
System.out.println("Insira uma frase.");
String fraseIn = in.nextLine();

//words - fraseIn dividida por palavras, atraves do metodo split()
String[] words = fraseIn.split(" ");
char primLetra = fraseIn.charAt(0);
char fim = '*';

//ciclo1
for (int i = 0; i < words.length; i++) {
//char primLetra = words[i].charAt(0);

if (primLetra == '.' || primLetra == '-') { //traducao de MORSE para ABC
//ciclo1.1
for (int j = 0; j < MORSE.length; j++) {
if (words[i].equals(MORSE[j])) {
System.out.print((char) ('a' + j));//unicode - e impresso o indice relativo a a+o indice da letra analisada
// if (i < words.length && j == words[i].length()) {
// System.out.print(" ");
// ++i;
// j = 0;
// break;
//
// }
}
}
}
else {
/// COMMENT:
///
/// AQUI TENS QUE FAZER UM CICLO PARA PERCORRER CADA CARÁCTER DA PALAVRA CORRENTE, words[i]
/// E DEPOIS, USANDO O ARRAY MORSE TRADUZIR CADA LETRA A..Z OU a..z PARA A LETRA EM CORRESPONDENTE




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

if (words[i].equals(ABC[j])) {
System.out.print(MORSE[i]);//PRECISO QUE ESTeJA ESCRITO QUE VAI MUDAR PARA MORSE

//for (int l = 0; l < ABC.length; ++l) {

}
while (!fraseIn.equals(" ")) {
System.out.println(" ");
break;
}
}
}
}
}
}
Beatrzi Delgado

Beatrzi Delgado

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar