Jump to content
Sign in to follow this  
Zero

Telégrafo - Trasmissão em Código Morse

Recommended Posts

Zero    0
Zero

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
Renek

Nego digita OI e ja era. Não funfa.

Share this post


Link to post
Share on other sites
smeagoulh    0
smeagoulh

(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
Speedy

Eu tentei aqui algumas vezes não deu não!

Share this post


Link to post
Share on other sites
Zero    0
Zero

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
Black Gooden

Pessoal Testado e aprovado :) Aqui funcionou prefeitamente :) Eu tenho uma versão em vb.net :D Deixa eu procurar ela AUHauhAUHauhA =p

Share this post


Link to post
Share on other sites
Bernaz    0
Bernaz

Aonde eu colo esse código ?

Como abre ?

 

Obrigado.

Bernaz

Share this post


Link to post
Share on other sites
mos    0
mos

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
felpozo

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
ExzenTriscH

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
the_labrax

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
HenneT

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
Guest
This topic is now closed to further replies.
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×