Advertisement
Guest User

Maxwell Albuquerque MaXwEllDeN

a guest
Mar 30th, 2017
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 9.06 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <locale.h>
  3. #include <string.h>
  4.  
  5. void MENU2(void);
  6.  
  7. void le_codigo(int);
  8.  
  9. void traduz_para_morse(char*);
  10.  
  11. char* traduz_para_latino(char*);
  12.  
  13. void imprime_traducao(char*);
  14.  
  15. int main(){
  16.     setlocale(LC_ALL, "Portuguese");
  17.  
  18.     int escolha;
  19.  
  20.     printf("\n\nPROGRAMA TRADUTOR: Código Morse <---> Alfabeto Latino\n\n");
  21.  
  22.     printf("MENU:\n\nDigite 1 para traduzir a mensagem do CÓDIGO MORSE para o ALFABETO LATINO.\n\n");
  23.  
  24.     printf("Digite 2 para traduzir a mensagem do ALFABETO LATINO para o CÓDIGO MORSE.\n\n");
  25.  
  26.     printf("Digite 0 para SAIR do programa.\n\n");
  27.  
  28.     scanf("%d",&escolha);
  29.  
  30.     if(escolha==1)
  31.         le_codigo(escolha);
  32.     else if(escolha==2)
  33.         le_codigo(escolha);
  34.     else if(escolha==0)
  35.         return 0;
  36.  
  37.     MENU2();
  38.  
  39.  
  40.  
  41. return 0;
  42. }
  43.  
  44. void MENU2(void){
  45.     int opcao,opcao2;
  46.     printf("\nDeseja realizar mais uma tradução?\n\n 1 - SIM\t\t 2 - NÃO\n\n");
  47.     scanf("%d",&opcao);
  48.  
  49.     if(opcao==1){
  50.  
  51.     printf("MENU:\n\nDigite 1 para traduzir a mensagem do CÓDIGO MORSE para o ALFABETO LATINO.\n\n");
  52.  
  53.     printf("Digite 2 para traduzir a mensagem do ALFABETO LATINO para o CÓDIGO MORSE.\n\n");
  54.  
  55.     scanf("%d",&opcao2);
  56.  
  57.     if(opcao2==1)
  58.         le_codigo(opcao2);
  59.  
  60.     else if(opcao2==2)
  61.         le_codigo(opcao2);
  62.     }
  63.  
  64.     else if(opcao==2){
  65.         return ;
  66.     }
  67.  
  68. return;
  69. }
  70.  
  71. void le_codigo(int ESCOLHA){
  72.  
  73.     char string_morse[1000],string_latino[1000];
  74.  
  75.     if(ESCOLHA==1){
  76.         printf("\nDigite o Código Morse:\n\n");
  77.         fflush(stdin);
  78.         gets(string_morse);
  79.         imprime_traducao(traduz_para_latino(string_morse));
  80.     }
  81.  
  82.     else if(ESCOLHA==2){
  83.         printf("\nDigite o Código em Alfabeto Latino:\n\n");
  84.         fflush(stdin);
  85.         gets(string_latino);
  86.         traduz_para_morse(string_latino);
  87.         }
  88.  
  89.  
  90. return;
  91. }
  92.  
  93.  
  94.  
  95. void traduz_para_morse(char *strg_latino){
  96.  
  97.  
  98.  
  99.     while(*strg_latino!='\0'){
  100.  
  101.         switch(*strg_latino){
  102.             case 'A':
  103.                 printf(".- ");
  104.                 break;
  105.             case 'B':
  106.                 printf("-... ");
  107.                 break;
  108.             case 'C':
  109.                 printf("-.-. ");
  110.                 break;
  111.             case 'D':
  112.                 printf("-.. ");
  113.                 break;
  114.             case 'E':
  115.                 printf(". ");
  116.                 break;
  117.             case 'F':
  118.                 printf("..-. ");
  119.                 break;
  120.             case 'G':
  121.                 printf("--. ");
  122.                 break;
  123.             case 'H':
  124.                 printf(".... ");
  125.                 break;
  126.             case 'I':
  127.                 printf(".. ");
  128.                 break;
  129.             case 'J':
  130.                 printf(".--- ");
  131.                 break;
  132.             case 'K':
  133.                 printf("-.- ");
  134.                 break;
  135.             case 'L':
  136.                 printf(".-.. ");
  137.                 break;
  138.             case 'M':
  139.                 printf("-- ");
  140.                 break;
  141.             case 'N':
  142.                 printf("-. ");
  143.                 break;
  144.             case 'O':
  145.                 printf("--- ");
  146.                 break;
  147.             case 'P':
  148.                 printf(".--. ");
  149.                 break;
  150.             case 'Q':
  151.                 printf("--.- ");
  152.                 break;
  153.             case 'R':
  154.                 printf(".-. ");
  155.                 break;
  156.             case 'S':
  157.                 printf("... ");
  158.                 break;
  159.             case 'T':
  160.                 printf("- ");
  161.                 break;
  162.             case 'U':
  163.                 printf("..- ");
  164.                 break;
  165.             case 'V':
  166.                 printf("...- ");
  167.                 break;
  168.             case 'W':
  169.                 printf(".-- ");
  170.                 break;
  171.             case 'X':
  172.                 printf("-..- ");
  173.                 break;
  174.             case 'Y':
  175.                 printf("-.-- ");
  176.                 break;
  177.             case 'Z':
  178.                 printf("--.. ");
  179.                 break;
  180.             case '1':
  181.                 printf("·---- ");
  182.                 break;
  183.             case '2':
  184.                 printf("··--- ");
  185.                 break;
  186.             case '3':
  187.                 printf("···-- ");
  188.                 break;
  189.             case '4':
  190.                 printf("····- ");
  191.                 break;
  192.             case '5':
  193.                 printf("····· ");
  194.                 break;
  195.             case '6':
  196.                 printf("-···· ");
  197.                 break;
  198.             case '7':
  199.                 printf("--··· ");
  200.                 break;
  201.             case '8':
  202.                 printf("---·· ");
  203.                 break;
  204.             case '9':
  205.                 printf("----· ");
  206.                 break;
  207.             case '0':
  208.                 printf("----- ");
  209.                 break;
  210.             case '.':
  211.                 printf("·-·-·- ");
  212.                 break;
  213.             case ',':
  214.                 printf("--··-- ");
  215.                 break;
  216.             case '?':
  217.                 printf("··--·· ");
  218.                 break;
  219.             case '\'':
  220.                 printf("·----· ");
  221.                 break;
  222.             case '!':
  223.                 printf("-·-·-- ");
  224.                 break;
  225.             case '/':
  226.                 printf("-··-· ");
  227.                 break;
  228.             case '&':
  229.                 printf("-·--·- ");
  230.                 break;
  231.             case ':':
  232.                 printf("·-··· ");
  233.                 break;
  234.             case ';':
  235.                 printf("---··· ");
  236.                 break;
  237.             case '=':
  238.                 printf("-·-·-· ");
  239.                 break;
  240.             case '-':
  241.                 printf("-···- ");
  242.                 break;
  243.             case '_':
  244.                 printf("-····- ");
  245.                 break;
  246.             case '"':
  247.                 printf("··--·- ");
  248.                 break;
  249.             case '$':
  250.                 printf("·-··-· ");
  251.                 break;
  252.             case '@':
  253.                 printf("···-··- ");
  254.                 break;
  255.             case 'Ã':
  256.                 printf("·--·-· ");
  257.                 break;
  258.             case 'Á':
  259.                 printf("·-·- ");
  260.                 break;
  261.             case 'À':
  262.                 printf("---- ");
  263.                 break;
  264.             case 'É':
  265.                 printf("··-·· ");
  266.                 break;
  267.             case 'Í':
  268.                 printf("--·-· ");
  269.                 break;
  270.             case 'Õ':
  271.                 printf("··--· ");
  272.                 break;
  273.             case 'Ó':
  274.                 printf("·-··- ");
  275.                 break;
  276.             case 'Ú':
  277.                 printf("-·--· ");
  278.                 break;
  279.             case 'Ç':
  280.                 printf("-·-·· ");
  281.                 break;
  282.             case ' ':
  283.                 printf(" ");
  284.                 break;
  285.  
  286.         }
  287.  
  288.         strg_latino++;
  289.  
  290.     }
  291. return;
  292. }
  293.  
  294. char* traduz_para_latino(char *strg_morse){
  295.  
  296.     char* aux;
  297.     char resultado[1000] = "";
  298.     aux = strtok(strg_morse, " "); // Separa strg_morse procurando os espaços ' '
  299.  
  300.     while (aux != NULL) {  // Enquanto ele conseguir separar
  301.  
  302.         if(strcmp(aux,".-")==0)
  303.             strcat(resultado,"A");
  304.         else if(strcmp(aux,"-...")==0)
  305.             strcat(resultado,"B");
  306.         else if(strcmp(aux,"-.-.")==0)
  307.             strcat(resultado,"C");
  308.         else if(strcmp(aux,"-..")==0)
  309.             strcat(resultado,"D");
  310.         else if(strcmp(aux,".")==0)
  311.             strcat(resultado,"E");
  312.         else if(strcmp(aux,"..-.")==0)
  313.             strcat(resultado,"F");
  314.         else if(strcmp(aux,"--.")==0)
  315.             strcat(resultado,"G");
  316.         else if(strcmp(aux,"....")==0)
  317.             strcat(resultado,"H");
  318.         else if(strcmp(aux,"..")==0)
  319.             strcat(resultado,"I");
  320.         else if(strcmp(aux,".---")==0)
  321.             strcat(resultado,"J");
  322.         else if(strcmp(aux,"-.-")==0)
  323.             strcat(resultado,"K");
  324.         else if(strcmp(aux,".-..")==0)
  325.             strcat(resultado,"L");
  326.         else if(strcmp(aux,"--")==0)
  327.             strcat(resultado,"M");
  328.         else if(strcmp(aux,"-.")==0)
  329.             strcat(resultado,"N");
  330.         else if(strcmp(aux,"---")==0)
  331.             strcat(resultado,"O");
  332.         else if(strcmp(aux,".--.")==0)
  333.             strcat(resultado,"P");
  334.         else if(strcmp(aux,"--.-")==0)
  335.             strcat(resultado,"Q");
  336.         else if(strcmp(aux,".-.")==0)
  337.             strcat(resultado,"R");
  338.         else if(strcmp(aux,"...")==0)
  339.             strcat(resultado,"S");
  340.         else if(strcmp(aux,"-")==0)
  341.             strcat(resultado,"T");
  342.         else if(strcmp(aux,"..-")==0)
  343.             strcat(resultado,"U");
  344.         else if(strcmp(aux,"...-")==0)
  345.             strcat(resultado,"V");
  346.         else if(strcmp(aux,".--")==0)
  347.             strcat(resultado,"W");
  348.         else if(strcmp(aux,"-..-")==0)
  349.             strcat(resultado,"X");
  350.         else if(strcmp(aux,"-.--")==0)
  351.             strcat(resultado,"Y");
  352.         else if(strcmp(aux,"--..")==0)
  353.             strcat(resultado,"Z");
  354.         else if(strcmp(aux,"·----")==0)
  355.             strcat(resultado,"1");
  356.         else if(strcmp(aux,"··---")==0)
  357.             strcat(resultado,"2");
  358.         else if(strcmp(aux,"···--")==0)
  359.             strcat(resultado,"3");
  360.         else if(strcmp(aux,"····-")==0)
  361.             strcat(resultado,"4");
  362.         else if(strcmp(aux,"·····")==0)
  363.             strcat(resultado,"5");
  364.         else if(strcmp(aux,"-····")==0)
  365.             strcat(resultado,"6");
  366.         else if(strcmp(aux,"--···")==0)
  367.             strcat(resultado,"7");
  368.         else if(strcmp(aux,"---··")==0)
  369.             strcat(resultado,"8");
  370.         else if(strcmp(aux,"----·")==0)
  371.             strcat(resultado,"9");
  372.         else if(strcmp(aux,"-----")==0)
  373.             strcat(resultado,"0");
  374.         else if(strcmp(aux,"·-·-·-")==0)
  375.             strcat(resultado,".");
  376.         else if(strcmp(aux,"--··--")==0)
  377.             strcat(resultado,",");
  378.         else if(strcmp(aux,"··--··")==0)
  379.             strcat(resultado,"?");
  380.         else if(strcmp(aux,"·----·")==0)
  381.             strcat(resultado,"\'");
  382.         else if(strcmp(aux,"-·-·--")==0)
  383.             strcat(resultado,"!");
  384.         else if(strcmp(aux,"-··-·")==0)
  385.             strcat(resultado,"/");
  386.         else if(strcmp(aux,"-·--·")==0)
  387.             strcat(resultado,"(");
  388.         else if(strcmp(aux,"-·--·-")==0)
  389.             strcat(resultado,")");
  390.         else if(strcmp(aux,"·-···")==0)
  391.             strcat(resultado,"&");
  392.         else if(strcmp(aux,"---···")==0)
  393.             strcat(resultado,":");
  394.         else if(strcmp(aux,"-·-·-·")==0)
  395.             strcat(resultado,";");
  396.         else if(strcmp(aux,"-···-")==0)
  397.             strcat(resultado,"=");
  398.         else if(strcmp(aux,"-····-")==0)
  399.             strcat(resultado,"-");
  400.         else if(strcmp(aux,"··--·-")==0)
  401.             strcat(resultado,"_");
  402.         else if(strcmp(aux,"·-··-·")==0)
  403.             strcat(resultado,"\"");
  404.         else if(strcmp(aux,"···-··-")==0)
  405.             strcat(resultado,"$");
  406.         else if(strcmp(aux,"·--·-·")==0)
  407.             strcat(resultado,"@");
  408.         else if(strcmp(aux,"·-·-")==0)
  409.             strcat(resultado,"Ã");
  410.         else if(strcmp(aux,"----")==0)
  411.             strcat(resultado,"Á");
  412.         else if(strcmp(aux,"·--·-")==0)
  413.             strcat(resultado,"À");
  414.         else if(strcmp(aux,"··-··")==0)
  415.             strcat(resultado,"É");
  416.         else if(strcmp(aux,"--·-·")==0)
  417.             strcat(resultado,"Í");
  418.         else if(strcmp(aux,"··--·")==0)
  419.             strcat(resultado,"Õ");
  420.         else if(strcmp(aux,"·-··-")==0)
  421.             strcat(resultado,"Ó");
  422.         else if(strcmp(aux,"-·--·")==0)
  423.             strcat(resultado,"Ú");
  424.         else if(strcmp(aux,"-·-··")==0)
  425.             strcat(resultado,"Ç");
  426.  
  427.         aux = strtok(NULL, " ");
  428.     }
  429.  
  430.     return resultado;
  431. }
  432.  
  433. void imprime_traducao(char *strg_traduzida){
  434.     printf("%s",strg_traduzida);
  435. return ;
  436. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement