Skezzz Posted December 18, 2012 at 11:54 AM Report #487663 Posted December 18, 2012 at 11:54 AM Apareceu uma dificuldade no meio do trabalho e gostava que alguem me pudesse ajudar a fazer uma tabela conversora de caracters, através do teclado ou de um ficheiro em formato csv. Por exemplo, Caracter: A Codigo: 3 e ao escrever a mensagem para codificar, como por exemplo "Nao sei nada" converter as letras em numeros e colocar numa matriz de 2,3 ou 4 linhas dependendo da ordem da matriz. Obrigado.
HappyHippyHippo Posted December 18, 2012 at 01:05 PM Report #487677 Posted December 18, 2012 at 01:05 PM acho que o problema é duma complexidade que se eu fosse a ajudar alguma coisa teria o problema feito ... mas vou tentar se o fazer por ti primeirop e antes do demais, não é matrix ... não faço ideia porque é que o pessoal teima em hamar matrix a um array, que raio de livros/sites andam voçes a ler !!! matrix é um objecto matemático muiti-dimensional, o que tu queres só tem uma dimensão, como um vector e que em informática chamasse array. segundo tens que pensar que tens 10 dígitos e bem mais caracteres (e se fores contar com os acentuados, ui ...) depois de pensar numa função injectiva que transforma o teu caracter no número, caso contrário é impossivel fazer a operação inversa. depois disso, cria duas funções : - codificar (aplicar a tua função) - descodificar (aplicar o inverso da função) IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
SuissoS Posted December 18, 2012 at 04:08 PM Report #487706 Posted December 18, 2012 at 04:08 PM nao percebi nada . nao sei mesmo nada de programaçao . tive 10 a programação com muita sorte mesmo . nao da para porem em linha de codigo de netbeans um exemplo de codificação da mensagem ?
HappyHippyHippo Posted December 18, 2012 at 04:35 PM Report #487711 Posted December 18, 2012 at 04:35 PM (edited) nao da para porem em linha de codigo eu não o farei porque se é para aprenderes, não é para eu fazer, mas eu dou-te uma linha de código então : public static void main(String[] args) Edited December 18, 2012 at 04:36 PM by HappyHippyHippo IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
apocsantos Posted December 18, 2012 at 04:49 PM Report #487712 Posted December 18, 2012 at 04:49 PM Boa tarde, Qual seria a vantagem para ti, de te darem o trabalho feito ? Partindo do principio que terás uma boa resposta para a pergunta anterior (fico à espera da resposta), deixo-te uma pequena ajuda. public tabela = new HashMap <String,codigo> (); Cordiais cumprimentos, Apocsantos "A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"
Skezzz Posted December 19, 2012 at 09:02 AM Author Report #487790 Posted December 19, 2012 at 09:02 AM Bem o que eu pretendia era algo como isto mas não sei muito bem como o fazer private static void tabelaConversora(char[] carac, int[] codigo, int nC) throws FileNotFoundException, IOException { System.out.println("Pretende digitar a tabela conversora de carateres ou por ficheiro? (T/F)"); String res = in.next(); String resp; if ("F".equals(res)) { System.out.println("Digite o nome do ficheiro"); String nome = in.next(); Scanner input = new Scanner(new File(nome + ".csv")); } else { if ("T".equals(res)) { do { System.out.println("Deseja introduzir o caracter e codigo ou por ordem como coloca os caracteres? (Codigo/Ordem)"); resp = in.next(); } while (!"Codigo".equals(resp) && !"codigo".equals(resp) && !"Ordem".equals(resp) && !"ordem".equals(resp)); if ("Codigo".equals(resp) || "codigo".equals(resp)) { for (int i = 0; i < nC; i++) { System.out.print("Caracter: "); System.out.print("Codigo de " + carac[i] + ": "); codigo[i] = in.nextInt(); } } if ("Ordem".equals(resp) || "ordem".equals(resp)) { for (int x = 0; x < nC; x++) { System.out.println("Escreva os caracteres pela sequencia que deseja (Ex: 1º digitado = 1)"); } } } } }
apocsantos Posted December 19, 2012 at 12:17 PM Report #487797 Posted December 19, 2012 at 12:17 PM Bom dia, Podias ler o ficheiro .csv para um HashMap, onde armazenarias todos os caracteres da tabela ascii e os "correspondentes codificados". Depois de teres carregada a tabela para o HashMap (Key,Value) podes usar o metodo containsKey para procurares cada caracter no HashMap e obteres o "correspondente codificado". Para fazer o inverso podes usar o metodo containsValue do HashMap em que em vez de pesquisares pela "key" pesquisas pelo "valor" e podes obter o correspondente "não-codificado". Para mim parece-me ser a solulão mais lógica, pois com um HashMap ficas logo com um objecto que te armazena de forma indexada "chave" e "valor" em que a cada "chave" corresponde apenas um "valor". Penso que já ontem te tinha deixado um exemplo de como crirar o HashMap, e podes sempre ver na documentação oficial da linguagem Java. Qualquer duvida, pergunta! De resto penso que podes re-utilizar o teu código todo... até podes ler do ficheiro para o HashMap, ou ler do teclado e colocar os dados no HashMap. Cordiais cumprimentos, Apocsantos "A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now