Zero 0 #1 Posted March 4, 2008 E aí galera. Esse aplicativo utiliza o speaker do gabinete para transmitir mensagens em código morse. O usuário escreve a mensagem, o programa converte para código morse e trasmite pelo speaker. Note: se o speaker da sua máquina não estiver funcionando a mensagem não será transmitida. Código: #include <stdio.h> #include <conio.h> #include <dos.h> #include <math.h> char morse[600]; int c = 0; int main() { char msg[200]; int i; void addDitDah(char); printf("Telegrafo C v1.0\n"); printf("por Raphael Pina Viana\n\n"); printf("Mensagem: "); for(i = 0; i < 200; i++) { printf("%c", msg[i] = getch()); if(msg[i] == 13) { msg[i] = '\0'; break; } } printf("\n"); printf("\n\nEncriptando mensagem ... "); for(i = 0; i <= 200; i++) { /* Converte para Alfabeto em Codigo Morse */ switch(msg[i]) { case (int)'a': { addDitDah('.'); addDitDah('-'); addDitDah('0'); break; } case (int)'b': { addDitDah('-'); addDitDah('.'); addDitDah('.'); addDitDah('.'); addDitDah('0'); break; } case (int)'c': { addDitDah('-'); addDitDah('.'); addDitDah('-'); addDitDah('.'); addDitDah('0'); break; } case (int)'d': { addDitDah('-'); addDitDah('.'); addDitDah('.'); addDitDah('0'); break; } case (int)'e': { addDitDah('.'); addDitDah('0'); break; } case (int)'f': { addDitDah('.'); addDitDah('.'); addDitDah('-'); addDitDah('.'); addDitDah('0'); break; } case (int)'g': { addDitDah('-'); addDitDah('-'); addDitDah('.'); addDitDah('0'); break; } case (int)'h': { addDitDah('.'); addDitDah('.'); addDitDah('.'); addDitDah('.'); addDitDah('0'); break; } case (int)'i': { addDitDah('.'); addDitDah('.'); addDitDah('0'); break; } case (int)'j': { addDitDah('.'); addDitDah('-'); addDitDah('-'); addDitDah('-'); addDitDah('0'); break; } case (int)'k': { addDitDah('-'); addDitDah('.'); addDitDah('-'); addDitDah('0'); break; } case (int)'l': { addDitDah('.'); addDitDah('-'); addDitDah('.'); addDitDah('.'); addDitDah('0'); break; } case (int)'m': { addDitDah('-'); addDitDah('-'); addDitDah('0'); break; } case (int)'n': { addDitDah('-'); addDitDah('.'); addDitDah('0'); break; } case (int)'o': { addDitDah('-'); addDitDah('-'); addDitDah('-'); addDitDah('0'); break; } case (int)'p': { addDitDah('.'); addDitDah('-'); addDitDah('-'); addDitDah('.'); addDitDah('0'); break; } case (int)'q': { addDitDah('-'); addDitDah('-'); addDitDah('.'); addDitDah('-'); addDitDah('0'); break; } case (int)'r': { addDitDah('.'); addDitDah('-'); addDitDah('.'); addDitDah('0'); break; } case (int)'s': { addDitDah('.'); addDitDah('.'); addDitDah('.'); addDitDah('0'); break; } case (int)'t': { addDitDah('-'); addDitDah('0'); break; } case (int)'u': { addDitDah('.'); addDitDah('.'); addDitDah('-'); addDitDah('0'); break; } case (int)'v': { addDitDah('.'); addDitDah('.'); addDitDah('.'); addDitDah('-'); addDitDah('0'); break; } case (int)'w': { addDitDah('.'); addDitDah('-'); addDitDah('-'); addDitDah('0'); break; } case (int)'x': { addDitDah('-'); addDitDah('.'); addDitDah('.'); addDitDah('-'); addDitDah('0'); break; } case (int)'y': { addDitDah('-'); addDitDah('.'); addDitDah('-'); addDitDah('-'); addDitDah('0'); break; } case (int)'z': { addDitDah('-'); addDitDah('-'); addDitDah('.'); addDitDah('.'); addDitDah('0'); break; } case 32: { addDitDah('/'); break; } case 0: { addDitDah('\0'); break; } } } printf("[OK]\n\nPressione qualquer tecla para trasmitir mensagem ..."); getch(); for(i = 0; i <= 600; i++) { nosound(); delay(9 * pow(10, 15)); if(morse[i] == '.') { sound(200); delay(10000); } else if(morse[i] == '-') { sound(200); sleep(1); } else if(morse[i] == '0') sleep(1); else if(morse[i] == '/') sleep(2); else if(morse[i] == '\0') break; } printf("\n\nTrasmissao terminada."); getch(); return 1; } void addDitDah(char DitDah) { morse[c] = DitDah; c++; } Download(*.exe + *.c): http://rapidshare.com/files/97004799/Tel_grafo.rar.html Abraço. Share this post Link to post Share on other sites
Renek 0 #2 Posted March 6, 2008 Nego digita OI e ja era. Não funfa. Share this post Link to post Share on other sites
smeagoulh 0 #3 Posted March 7, 2008 (Aproveitando a reply que escrevi por engano antes) Funciono aqui, porém na hora de digitar ta muito cheio de furos, quando eu aperto uma seta aparece um espaço e um H, O backspace não acaba, possibilitando que eu digite por cima do "mensagem: ". Tirando isso, amei o programa (Código Morse+Programação, amei) Share this post Link to post Share on other sites
Speedy 0 #4 Posted March 7, 2008 Eu tentei aqui algumas vezes não deu não! Share this post Link to post Share on other sites
Zero 0 #5 Posted March 14, 2008 Desculpem, mas acho que vocês estão cometendo algum erro. Acabei de baixar e conferir o código fonte e o executável. Ambos estão perfeitos. Códigos perfeitos, funcionabilidade perfeita. Abraços. Share this post Link to post Share on other sites
Black Gooden 0 #6 Posted March 14, 2008 Pessoal Testado e aprovado Aqui funcionou prefeitamente Eu tenho uma versão em vb.net Deixa eu procurar ela AUHauhAUHauhA =p Share this post Link to post Share on other sites
Bernaz 0 #7 Posted March 14, 2008 Aonde eu colo esse código ? Como abre ? Obrigado. Bernaz Share this post Link to post Share on other sites
mos 0 #8 Posted April 14, 2008 Não funcionou aqui. Eu uso o dev-c++ e dá erro quanto ao sound,nosound e ao delay. Já tentei pesquisar no google todinho, mas num encontrei solução. Desconfio que o problema seja na biblioteca conio.h, ouvi falar de uma chamada conio2.h, mas para fazê-la funcionar no dev teria que criar um projeto e depois adicionar o libconio.a nos parâmetros, mas como não tenho a biblioteca conio2.h nem o arquivo libconio.a então resolvi perguntar aqui. Alguém sabe resolver? Isso é tudo que aparece nos erros: [Linker error] undefined reference to `nosound' [Linker error] undefined reference to `delay' [Linker error] undefined reference to `sound' [Linker error] undefined reference to `delay' [Linker error] undefined reference to `sound' ld returned 1 exit status Share this post Link to post Share on other sites
felpozo 0 #9 Posted May 20, 2008 tentei compilar deu o mesmo erro do mos peguei o executável que ta lá pra download e funcionou, só achei que ta muito lento... mas o programa ta bom^^ Share this post Link to post Share on other sites
ExzenTriscH 0 #10 Posted June 5, 2008 Bom o programa é bom, mais aqui deu um pequeno problema do Backspace...Acho que o mesmo erro que o smeagoulh... Mais nada muito sério...Fora isso é um bom programada Share this post Link to post Share on other sites
the_labrax 0 #11 Posted August 11, 2008 Faltou suporte a caracteres maiúsculos... Recomendo algo como... if((str[i]>=65)%%(str[i]<=90)) str[i]+=32; Mas em geral tá bom. (: Brincadeirinha, bom trabalho Zero. Share this post Link to post Share on other sites
HenneT 3 #12 Posted September 7, 2008 Uso dev-C++ e da erro na compilação, Compilador: Default compiler Executando gcc.exe... gcc.exe "...\Sem Título12.c" -o "...\Sem Título12.exe" -I"C:\Dev-Cpp\include" -L"C:\Dev-Cpp\lib" ...\CONFIG~1\Temp/ccEHbaaa.o(.text+0x70e):Sem Título12.c: undefined reference to `nosound' ...\CONFIG~1\Temp/ccEHbaaa.o(.text+0x71c):Sem Título12.c: undefined reference to `delay' ...\CONFIG~1\Temp/ccEHbaaa.o(.text+0x738):Sem Título12.c: undefined reference to `sound' ...\Temp/ccEHbaaa.o(.text+0x744):Sem Título12.c: undefined reference to `delay' ...\Temp/ccEHbaaa.o(.text+0x762):Sem Título12.c: undefined reference to `sound' collect2: ld returned 1 exit status Execução terminada Está ai o log, acho que ele não reconheçe os includes. Abraços HenneT, Share this post Link to post Share on other sites