1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Numeração romana

Discussão em 'Programação' iniciada por Nakatsuke, 30 de Dezembro de 2008. (Respostas: 25; Visualizações: 3151)

  1. Olá pessoal eu so novo aqui no forúm, e presiso de auda para fazer um programa de converção de numeros inteiros para nº romanos... e eu comecei com o "switch()" e tem q ir ate 3999... se me poderem dar umas dicas de como começar ou outra maneira mais facil postem aqui por favor
     
  2. nfh

    nfh Power Member

    Essa tua abordagem é a da força bruta :) e não é de todo conveniente ires por aí.

    Não sei qual a linguagem em que estás a programar, mas dou-te um ponto de partida para estudares o algoritmo que podes implementar:
    http://www.blackwasp.co.uk/NumberToRoman.aspx
     
  3. nsilvio

    nsilvio Power Member

    Eu, a pensar que ia ter um bom passatempo a fazer este programa... e descobri este sitio:
    http://www.moxlotus.alternatifs.eu/programmation-converter.html
     
  4. Eu na escola esto a trabalhar com o Borland C, mas em casa como tenho o vista e ainda nao consegui mudar a linguagem do teclado o meu stor disse-me para sacar o Dev C++, e sao completamente diferentes. Só na parte onde pomos "main void (main)" é diferente é so por "main (void)". Obrigado para a ajudar, to a ver que vo aprender muito aqui neste forum :P
     
  5. Aparicio

    Aparicio /dev/mod
    Staff Member

    Não será "void main(void)". :P

    De qualquer forma é sempre boa prática por int main(), com void ou sem void lá dentro, ou int main( int argc, char **argv) caso seja para receber argumentos.

    EDIT:
    De qualquer forma é sempre boa prática por int main(void) ou int main( int argc, char **argv) caso seja para receber argumentos.
     
    Última edição: 30 de Dezembro de 2008
  6. hmm... Obrigado ainda não tinha pensado bem nessa possibilidade.... Porque se eu poser void main (void), no dev C dá-me um erro... no programa
     
  7. Baderous

    Baderous Banido

    Segundo as normas C99, é com. Com significa que não recebe nenhum argumento. Sem significa que recebe um número variável de argumentos.
     
  8. Aparicio

    Aparicio /dev/mod
    Staff Member

    Então int main() é igual a int main( int argc, char **argv) ?
     
  9. Aparicio

    Aparicio /dev/mod
    Staff Member

  10. mas continua a dar-me erro... vejam só

    Código:
    #include<stdio.h>
    #include<conio.h>
    #include<stdlib.h>
    
    [COLOR=Red]int void ();[/COLOR]
    
    {
                      char nc;
                      
                      printf("Insira o nº que deseja Converter");
                      scanf("%c",& nc);
                      
                      switch()
                      {
                              case1: printf("I");break;
                              case2: printf("II");break;
                              case3: printf("III");break;
                              case4: printf("IV");break;
                              case5: printf("V");break;
                              case6: printf("VI");break;
                              case7: printf("VII");break;
                              case8: printf("VIII");break;
                              case9: printf("IX");break;
                      }
    }
    
     
    Última edição pelo moderador: 1 de Janeiro de 2009
  11. Aparicio

    Aparicio /dev/mod
    Staff Member

    Ninguém disse que podia ser int void ();
    Mete int main(void);

    E falta o argumento do switch.
     
  12. Continua dar-me erro
    Código:
    [COLOR=Red]int void (main);[/COLOR]
    
    {
                      char nc;
                      
                      printf("Insira o nº que deseja Converter");
                      scanf("%c",& nc);
                      
                      switch(i)
                      {
    
     
    Última edição pelo moderador: 1 de Janeiro de 2009
  13. ja encontrei um dos erros, era a virgula no no fim, mas afora dame erro nisto " { ", não sei porque dá erro....
     
    Última edição: 31 de Dezembro de 2008
  14. Aparicio

    Aparicio /dev/mod
    Staff Member

    Se calhar convinha estudares o básico de C. :wvsore:

    Tu estás a por int void (main); e é int main (void);

    Depois de onde é que vêm o i no argumento switch, deveria lá estar o nc.
     
  15. ya, ja encontrei, e afinal dava void main (void), o problema era o " ; ", mas agora da-me erro no " { ".
     
  16. Aparicio

    Aparicio /dev/mod
    Staff Member

    Escapou-me o pormenor da vírgula. Assim já deveria funcionar, mete aí o código como tens agora.
     
  17. Código:
    #include<stdio.h>
    #include<conio.h>
    #include<stdlib.h>
    
    void main (void)
    
    {
                      char nc;
                      
                      printf("Insira o nº que deseja Converter");
                      scanf("%c",& nc);
                      
                      switch(i)
                      {
                              case1: printf("I");break;
                              case2: printf("II");break;
                              case3: printf("III");break;
                              case4: printf("IV");break;
                              case5: printf("V");break;
                              case6: printf("VI");break;
                              case7: printf("VII");break;
                              case8: printf("VIII");break;
                              case9: printf("IX");break;
                      }
    }
    
    aqui ta o meu pseudo-código
     
    Última edição pelo moderador: 1 de Janeiro de 2009
  18. Aparicio

    Aparicio /dev/mod
    Staff Member

    Código:
    #include<stdio.h>
    #include<conio.h>
    #include<stdlib.h>
    
    [COLOR=Red][B]int[/B][/COLOR] main (void)
    {
       char nc;
                      
       printf("Insira o nº que deseja Converter");
       scanf("%c",& nc);
                      
       switch([COLOR=Red][B]nc[/B][/COLOR])
       {
           case [B][COLOR=Red]'1'[/COLOR][/B]: printf("I");break;
           case [B][COLOR=Red]'2'[/COLOR][/B]: printf("II");break;
           case [B][COLOR=Red]'3'[/COLOR][/B]: printf("III");break;
           case [B][COLOR=Red]'4'[/COLOR][/B]: printf("IV");break;
           case [B][COLOR=Red]'5'[/COLOR][/B]: printf("V");break;
           case [B][COLOR=Red]'6'[/COLOR][/B]: printf("VI");break;
           case [B][COLOR=Red]'7'[/COLOR][/B]: printf("VII");break;
           case [B][COLOR=Red]'8'[/COLOR][/B]: printf("VIII");break;
           case [B][COLOR=Red]'9'[/COLOR][/B]: printf("IX");break;
       }
    }
    
    Assim funciona, repara bem nas correcções.

    Ah, isso não é pseudo-código, é mesmo código, ou então o seu propósito não era compilar.
     
  19. Hmm... pois, porque eu pus o nc como char não é verdade??
     

Partilhar esta Página