Ir para o conteúdo
andremachado

[Resolvido] Código Morse - Dúvida

Mensagens Recomendadas

andremachado

Boa noite

Eu estou a desenvolver um código em linguagem c, porém sou muito novato, por isso pedia compreensão pelos erros que tenho no meu código provisório que mostrarei a seguir...

Programa :

Desenvolver um problema que recebe como Imput o código morse fornecido pelo utilizador, o numero de palavras de um dicionário, e as palavras do dicionário e sai como output o numero de frases possíveis com aquele dicionário

http://uva.onlinejudge.org/external/11/1113.html - está aqui descrito

Exemplo :

imput :

.---.--.-.-.-.---...-.---.

6

AT

TACK

TICK

ATTACK

DAWN

DUSK

output :

2

Restrições:

aceita só letras maiúsculas

palavras do dicionário máximo =10 000

numero de caracteres da sequência morse = 1000

atenção: caso algum caracter do morse nao tem correspondencia na palavra -> lixo -> nao devolve nada

código actual:

...

funcoes passar morse para letras e letras para morse:

...

Editado por brunoais
Código removido a pedido

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

antes do mais, parabéns por não vires pedir que te façam o trabalho.

agora as más notícias :

na string com o código morse não existe espaços entre simbolos o que invalida completamente todo o teu algoritmos de codificação/descodificação.

pequenos erros/anotações:

int main()
{

 char phr[1000];
 // isto é um array de caracteres, nunca irás guardar palavras aqui ...

 fgets(morse,1000,stdin);
 // fazes bem em usar o fgets, no entanto tens de te lembrar que :
 //  - se a string inserida tiver mais de 1000 caracteres, vai ficar lixo no buffer de leitura
 //  - se tiver menos, tens de tirar o caracter '\n' lido e que foi escrito no buffer 'morse'

 printf("sentence invalidates (over 1000 characters)");
 // ok, apresentas a mensagem, mas no entanto continuas a executar o código

 scanf("%d",&np);
 // les bem o número, mas não te esqueças da limpeza do buffer de leitura

 strcmp (morse, s2); /*create spaces in morse code - string funcion*/
 // errado, a única coisa que faz é comparar strings, em que uma delas (s2) nem sequer está inicializada

 // a função main deverá retornar algo !!!
}

typedef struct smorse{
   char letter;
   char *morse;
} Morsecode[100];
// 100 !!! elá, mas afinal só precisas de 27 ...
// não te esquecas que o tipo de dados fica automaticamente definido como um array !!!

morsecode[100]
// então a declaração do tipo de dados ??
// não deveria ser [i]Morsecode[/i] ???
// e sem [100], isso já está no tipo de dados

// o resto nem vi porque como disse acima, necessitas de rever o problema por causa dos espaços no código morse


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Convidado
Este tópico está fechado a novas respostas.

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.