• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Iceman

Conversor de moedas (urgente)

14 mensagens neste tópico

amigos estou com um problema neste programa e queria pedir se me ajudavam a resolve lo.

este programa é composto por duas partes. uma em que convertemos de moeda para moeda e a segunda em que convertemos de moeda para moedas....

o problema é que isto esta cheio de erros e nao funciona como eu quero. se alguem me ajuda se agradecia... aqui fica o programa :

#include <stdio.h>
#include <conio.h>
main(){
       float num1=0;
       float usdolar;
   float libraesterlina;
   float dolaraustralia;
   float real; 
   float iene; 
   float dolarcanada;
   float franco;
       float rublo;
       int num2=0;
       int num3=0;
       int num4=0;
       float res=0;
       char a;
       char b;
       char esc;
       char oper='s';       
       do{       
       printf ("Escolha a funcao que pretende:\n");
       printf ("[a] Moeda para Moedas\n[b] Moeda para Moeda\n");
       scanf("%c",&esc);
switch(esc){      
case 'b': printf ("Insira o numero da moeda que deseja converter:\n\n");
       printf ("1 Euro(UE)\n2 US Dolar(EUA)\n3 Libra Estrelina(Reino Unido)\n4 Dolar(Australia)\n5 Real(Brasil)\n6 Iene(Japao)\n7 Dolar(Canada)\n8 Franco(Suica)\n9 Rublo(Russia)\n");
       scanf("%d",&num2);
       printf("observe a seguinte tabela.\n");
       printf("\n1 Euro(UE)\n2 US Dolar(EUA)\n3 Libra Esterlina(Reino Unido)\n4 Dollar(Australia)\n5 Real(Brasil)\n6 Iene(Japao)\n7 Dolar(Canada)\n8 Franco(suica)\n9 Rublo(Russia)\n\n");
        printf("Insira o numero da moeda que deseja converter, perante a tabela anterior: ");
        scanf("%d", &num4);
          switch(num4){
          case 1: printf("a conversao sera em euro");
          break; 
          case 2: printf("a conversao  sera de Us dolar");
          break;
          case 3:printf("a conversao sera de libra esterlina");
          break; 
          case 4:printf("a conversao sera de dolar australia");
          break;
          case 5: printf("a conversao sera de real");
          break;
          case 6: printf("a conversao sera de iene");
          break;
          case 7: printf("a conversao sera de dolar canada");
          break;
          case 8: printf("a conversao sera de franco");
          break;
          case 9: printf("a conversao sera de rublo");
          break;
          default:printf ("Nao existe este tipo de conversao");}
   printf("\nInsira o valor a converter:\n");
       scanf ("%f",&num1);}
       switch (esc){
          case 1: switch (num4){
          case 1: printf("o valor e equivalente.");
          break;
          case 2: printf("o resultado e: %0.2f", res=num1*1.34);
          break;
          case 3: printf("o resultado e: %0.2f", res=num1*0.68);
          break;
          case 4: printf("o resultado e: %0.2f", res=num1*1.63);
          break;
          case 5: printf("o resultado e: %0.2f", res=num1*2.61);
          break;
          case 6: printf("o resultado e: %0.2f", res=num1*163.34);
          break;
          case 7: printf("o resultado e: %0.2f", res=num1*1.46);
          break;
          case 8: printf("o resultado e: %0.2", res=num1*1.66);
          break;
          case 9: printf("o resultado e: %0.2f", res=num1*34.96);
          break;
          default: printf("Nao introduziu um numero pre-definido antes"); }
          break;
          case 2: switch (num4){
          case 1: printf("o resultado e: %0.2f", res=num1*0.74);
          break;
          case 2: printf("o valor e equivalente");
          break;
          case 3: printf("o resultado e: %0.2f", res=num1*0.51);
          break;
          case 4: printf("o resultado e: %0.2f", res=num1*1.22);
          break;
          case 5: printf("o resultado e: %0.2f", res=num1*1.94);
          break;
          case 6: printf("o resultado e: %0.2f", res=num1*121.48);
          break;
          case 7: printf("o resultado e: %0.2f", res=num1*1.08);
          break;
          case 8: printf("o resultado e: %0.2f", res=num1*1.23);
          break;
          case 9: printf("o resultado e: %0.2f", res=num1*25.77);
          break;
          default: printf("Nao introduziu um numero pre-definido antes"); }
          break;
          case 3: switch (num4){ 
          case 1: printf("o resultado e: %0.2f", res=num1*1.47);
          break;
          case 2: printf("o resultado e: %0.2f", res=num1*1.97);
          break;
          case 3: printf("o valor e equivalente");
          break;
          case 4: printf("o resultado e: %0.2f", res=num1*2.40);
          break;
          case 5: printf("o resultado e: %0.2f", res=num1*3.82);
          break;
          case 6: printf("o resultado e: %0.2f", res=num1*239.48);
          break;
          case 7: printf("o resultado e: %0.2f", res=num1*2.14);
          break;
          case 8: printf("o resultado e: %0.2f", res=num1*12.43);
          break;
          case 9: printf("o resultado e: %0.2f", res=num1*51.71);
          break;
          default: printf("Nao introduziu um numero pre-definido antes"); }
          break;
          case 4: switch (num4) {
          case 1: printf("o resultado e: %0.2f", res=num1*0.61);
          break;
          case 2: printf("o resultado e: %0.2f", res=num1*0.82);
          break;
          case 3: printf("o resultado e: %0.2f", res=num1*0.42);
          break;
          case 4: printf("o valor e equivalente");
          break;
          case 5: printf("o resultado e: %0.2f",res=num1*1.59);
          break;
          case 6: printf("o resultado e: %0.2f", res=num1*99.77);
          break;
          case 7: printf("o resultado e: %0.2f", res=num1*0.89);
          break;
          case 8: printf("o resultado e: %0.2f", res=num1*1.01);
          break;
          case 9: printf("o resultado e: %0.2f", res=num1*21.56);
          break;
          default: printf("Nao introduziu um numero pre-definido antes"); }
          break;
          case 5:  switch (num4) {
          case 1: printf("o resultado e: %0.2f", res=num1*2.61);
          break;
          case 2: printf("o resultado e: %0.2f", res=num1*1.94);
          break;
          case 3: printf("o resultado e: %0.2f", res=num1*3.82);
          break;
          case 4: printf("o resultado e: %0.2f", res=num1*1.59);
          break;
          case 5: printf("o valor e equivalente");
          break;
          case 6: printf("o resultado e:: %0.2f", res=num1*0.02);
          break;
          case 7: printf("o resultado e: %0.2f", res=num1*1.79);
          break;
          case 8: printf("o resultado e: %0.2f", res=num1*1.57);
          break;
          case 9: printf("o resultado e: %0.2f", res=num1*0.075);
          break;
          default: printf("Nao introduziu um numero pre-definido antes"); }
          break;
          case 6:  switch (num4) {
          case 1: printf("o resultado e: %0.2f", res=num1*163.34);
          break;
          case 2: printf("o resultado e: %0.2f", res=num1*121.48);
          break;
          case 3: printf("o resultado e: %0.2f", res=num1*239.46);
          break;
          case 4: printf("o resultado e: %0.2f", res=num1*99.77);
          break;
          case 5: printf("o resultado e: %0.2f", res=num1*62.68);
          break;
          case 6: printf("o valor e equivalente");
          break;
          case 7: printf("o resultado e:: %0.2f", res=num1*112.07);
          break;
          case 8: printf("o resultado e: %0.2f", res=num1*98.66);
          break;
          case 9: printf("o resultado e: %0.2f", res=num1*4.69);
          break;
          default: printf("Nao introduziu um numero pre-definido antes"); }
          break;
          case 7:   switch (num4) {
          case 1: printf("o resultado e: %0.2f", res=num1*1.46);
          break;
          case 2: printf("o resultado e: %0.2f", res=num1*1.08);
          break;
          case 3: printf("o resultado e: %0.2f", res=num1*2.14);
          break;
          case 4: printf("o resultado e: %0.2f", res=num1*0.89);
          break;
          case 5: printf("o resultado e: %0.2f", res=num1*0.56);
          break;
          case 6: printf("o resultado e: %0.2f", res=num1*0.009);
          break;
          case 7: printf("o valor e equivalente");
          break;
          case 8: printf("o resultado e: %0.2f", res=num1*0.88);
          break;
          case 9: printf("o resultado e: %0.2f", res=num1*0.042);
          break;
          default: printf("Nao introduziu um numero pre-definido antes"); }
          break;
          case 8:   switch (num4) {
          case 1: printf("o resultado e: %0.2f", res=num1*1.66);
          break;
          case 2: printf("o resultado e: %0.2f", res=num1*7.23);
          break;
          case 3: printf("o resultado e: %0.2f", res=num1*2.43);
          break;
          case 4: printf("o resultado e: %0.2f", res=num1*1.01);
          break;
          case 5: printf("o resultado e: %0.2f", res=num1*0.63);
          break;
          case 6: printf("o resultado e: %0.2f", res=num1*0.010);
          break;
          case 7: printf("o resultado e: %0.2f", res=num1*1.14);
          break;
          case 8: printf("o valor e equivalente");
          break;
          case 9: printf("o resultado e: %0.2f", res=num1*0.048);
          break;    
          default: printf("Nao introduziu um numero pre-definido antes"); }
          break;
          case 9: switch (num4) {
          case 1: printf("o resultado e: %0.2f", res=num1*34.36);
          break;
          case 2: printf("o resultado e: %0.2f", res=num1*25.77);
          break;
          case 3: printf("o resultado e: %0.2f", res=num1*51.71);
          break;
          case 4: printf("o resultado e: %0.2f", res=num1*21.56);
          break;
          case 5: printf("o resultado e: %0.2f", res=num1*12.65);
          break;
          case 6: printf("o resultado e: %0.2f", res=num1*0.22);
          break;
          case 7: printf("o resultado e: %0.2f", res=num1*22.8);
          break;
          case 8: printf("o resultado e: %0.2f", res=num1*21.31);
          break;
          case 9: printf("o valor e equivalente");
          break;
          default: printf("Nao introduziu um numero pre-definido antes"); 
          break; }
	   printf("\nPara continuar prima [s]\n");
             oper=getche();
             while(oper=='s'||oper=='S');
case 'a':printf ("Escolha a conversao que deseja realizar indicando o respectivo numero:\n\n");
       printf ("1 Euro(UE)\n2 US Dolar(EUA)\n3 Libra Estrelina(Reino Unido)\n4 Dolar(Australia)\n5 Real(Brasil)\n6 Iene(Japao)\n7 Dolar(Canada)\n8 Franco(Suica)\n9 Rublo(Russia)\n");
       scanf("%d",&num3);}
       printf("Insira o valor a converter:\n");
       scanf ("%f",&num1);
       switch(num3){
        case 1: printf("\no resultado e equivalente\n");
        break;
        case 2: printf("\no resultado e: %.2f\n",res=num1 *1.34);
        break;
        case 3: printf("\no resultado e: %.2f\n",res=num1 *0.68);
        break;
        case 4: printf("\no resultado e: %.2f\n",res=num1 *1.64);
        break;
        case 5: printf("\no resultado e: %.2f\n",res=num1 *2.63);
        break;
        case 6: printf("\no resultado e: %.2f\n",res=num1 *163.32);
        break;
        case 7: printf("\no resultado e: %.2f\n",res=num1 *1.46);
        break;
        case 8: printf("\no resultado e: %.2f\n",res=num1 *1.66);
        break;
        case 9: printf("\no resultado e: %.2f\n",res=num1 *34.84);
        break;
        default:printf("Nao introduziu um numero pre-definido antes");
        }switch(num3){
        case 1: printf("\no resultado e: %.2f\n",res=num1 *0.74);
        break;
        case 2: printf("\no resultado e equivalente\n");
        break;
        case 3: printf("\no resultado e: %.2f\n",res=num1 *0.51);
        break;
        case 4: printf("\no resultado e: %.2f\n",res=num1 *1.22);
        break;
        case 5: printf("\no resultado e: %.2f\n",res=num1 *1.94);
        break;
        case 6: printf("\no resultado e: %.2f\n",res=num1 *121.48);
        break;
        case 7: printf("\no resultado e: %.2f\n",res=num1 *1.08);
        break;
        case 8: printf("\no resultado e: %.2f\n",res=num1 *1.23);
        break;
        case 9: printf("\no resultado e: %.2f\n",res=num1 *25.77);
        break;
        default:printf("Nao introduziu um numero pre-definido antes");
        }switch(num3){
        case 1: printf("\no resultado e: %.2f\n",res=num1 *1.47);
        break;
        case 2: printf("\no resultado e: %.2f\n",res=num1 *1.97);
        break;
        case 3: printf("\no resultado e equivalente\n");
        break;
        case 4: printf("\no resultado e: %.2f\n",res=num1 *2.40);
        break;
        case 5: printf("\no resultado e: %.2f\n",res=num1 *3.82);
        break;
        case 6: printf("\no resultado e: %.2f\n",res=num1 *239.46);
        break;
        case 7: printf("\no resultado e: %.2f\n",res=num1 *2.18);
        break;
        case 8: printf("\no resultado e: %.2f\n",res=num1 *2.43);
        break;
        case 9: printf("\no resultado e: %.2f\n",res=num1 *51.71);
        break;
        default:printf("Nao introduziu um numero pre-definido antes");
         }switch(num3){
        case 1: printf("\no resultado e: %.2f\n",res=num1 *0.61);
        break;
        case 2: printf("\no resultado e: %.2f\n",res=num1 *0.82);
        break;
        case 3: printf("\no resultado e: %.2f\n",res=num1 *0.42);
        break;
        case 4: printf("\no resultado e equivalente\n");
        break;
        case 5: printf("\no resultado e: %.2f\n",res=num1 *1.59);
        break;
        case 6: printf("\no resultado e: %.2f\n",res=num1 *99.77);
        break;
        case 7: printf("\no resultado e: %.2f\n",res=num1 *0.89);
        break;
        case 8: printf("\no resultado e: %.2f\n",res=num1 *1.01);
        break;
        case 9: printf("\no resultado e: %.2f\n",res=num1 *21.56);
        break;
        default:printf("Nao introduziu um numero pre-definido antes");
         }switch(num3){
        case 1: printf("\no resultado e: %.2f\n",res=num1 *0.38);
        break;
        case 2: printf("\no resultado e: %.2f\n",res=num1 *0.52);
        break;
        case 3: printf("\no resultado e: %.2f\n",res=num1 *0.26);
        break;
        case 4: printf("\no resultado e: %.2f\n",res=num1 *0.63);
        break;
        case 5: printf("\no resultado e equivalente\n");
        break;
        case 6: printf("\no resultado e: %.2f\n",res=num1 *62.68);
        break;
        case 7: printf("\no resultado e: %.2f\n",res=num1 *0.56);
        break;
        case 8: printf("\no resultado e: %.2f\n",res=num1 *0.63);
        break;
        case 9: printf("\no resultado e: %.2f\n",res=num1 *12.65);
        break;
        default:printf("Nao introduziu um numero pre-definido antes");
         }switch(num3){
        case 1: printf("\no resultado e: %.2f\n",res=num1 *0.006);
        break;
        case 2: printf("\no resultado e: %.2f\n",res=num1 *0.008);
        break;
        case 3: printf("\no resultado e: %.2f\n",res=num1 *0.004);
        break;
        case 4: printf("\no resultado e: %.2f\n",res=num1 *0.01003);
        break;
        case 5: printf("\no resultado e: %.2f\n",res=num1 *0.02);
        break;
        case 6: printf("\no resultado e equivalente\n");
        break;
        case 7: printf("\no resultado e: %.2f\n",res=num1 *0.009);
        break;
        case 8: printf("\no resultado e: %.2f\n",res=num1 *0.010);
        break;
        case 9: printf("\no resultado e: %.2f\n",res=num1 *0.22);
        break;
        default:printf("Nao introduziu um numero pre-definido antes");
         }switch(num3){
        case 1: printf("\no resultado e: %.2f\n",res=num1 *0.69);
        break;
        case 2: printf("\no resultado e: %.2f\n",res=num1 *0.92);
        break;
        case 3: printf("\no resultado e: %.2f\n",res=num1 *0.47);
        break;
        case 4: printf("\no resultado e: %.2f\n",res=num1 *1.12);
        break;
        case 5: printf("\no resultado e: %.2f\n",res=num1 *1.79);
        break;
        case 6: printf("\no resultado e: %.2f\n",res=num1 *112.07);
        break;
        case 7: printf("\no resultado e equivalente\n");
        break;
        case 8: printf("\no resultado e: %.2f\n",res=num1 *1.14);
        break;
        case 9: printf("\no resultado e: %.2f\n",res=num1 *22.8);
        break;
        default:printf("Nao introduziu um numero pre-definido antes");
         }switch(num3){
        case 1: printf("\no resultado e: %.2f\n",res=num1 *0.60);
        break;
        case 2: printf("\no resultado e: %.2f\n",res=num1 *0.81);
        break;
        case 3: printf("\no resultado e: %.2f\n",res=num1 *0.41);
        break;
        case 4: printf("\no resultado e: %.2f\n",res=num1 *0.99);
        break;
        case 5: printf("\no resultado e: %.2f\n",res=num1 *1.57);
        break;
        case 6: printf("\no resultado e: %.2f\n",res=num1 *98.66);
        break;
        case 7: printf("\no resultado e: %.2f\n",res=num1 *0.88);
        break;
        case 8: printf("\no resultado e equivalente\n");
        break;
        case 9: printf("\no resultado e: %.2f\n",res=num1 *21.31);
        break;
        default:printf("Nao introduziu um numero pre-definido antes");
         }switch(num3){
        case 1: printf("\no resultado e: %.2f\n",res=num1 *0.029);
        break;
        case 2: printf("\no resultado e: %.2f\n",res=num1 *0.039);
        break;
        case 3: printf("\no resultado e: %.2f\n",res=num1 *0.020);
        break;
        case 4: printf("\no resultado e: %.2f\n",res=num1 *0.047);
        break;
        case 5: printf("\no resultado e: %.2f\n",res=num1 *0.075);
        break;
        case 6: printf("\no resultado e: %.2f\n",res=num1 *4.69);
        break;
        case 7: printf("\no resultado e: %.2f\n",res=num1 *0.042);
        break;
        case 8: printf("\no resultado e: %.2f\n",res=num1 *0.048);
        break;
        case 9: printf("\no resultado e equivalente\n");
        break;
        default:printf("Nao introduziu um numero pre-definido antes");
        break;
             }printf("\nPara continuar prima [s]\n");
             oper=getche();
             }while(oper=='s'||oper=='S');
        getchar();
        getchar();
        }

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

será que ninguem me é capaz de dar uma maozinha??? é que preciso mesmo disto para quarta feira de manha:S  :bye2: :down:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Dar uma mãozinha significa o quê?

Assim ninguém te ajuda, expõem dúvidas concretas e mete o código que tens dúvidas no fórum. ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

olha desculpa la mas o codigo esta ai no forum ta no rar... quem abrir o rar e o programa ve logo os erros...

se te custa muito eu ponho o codigo fora do rar, assim escusas de sacar os miseros 5kb do programa...

cumpz.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

IceMan, o colega Hipnoted tem uma certa razão no que está a dizer, e eu passo a explicar:

É que parecendo que não se o código estiver no post com mais facilidade as pessoas teem tendência a ver e dar uma dica, pois a terem de estar a sacar, e abrir o rar e etc... se bem que é óbvio ( :) ) que não dá nenhum trabalho por ai alem, mas desincentiva a quem por aqui passa. Dai o comentário do Hipnoted.

;) ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

bem se tiver melhor assim... nao sei porque ficou riscado e etc mas pronto... ai tem o codigo

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

bem se tiver melhor assim... nao sei porque ficou riscado e etc mas pronto... ai tem o codigo

Já está corrigido...

Quanto ao código, já ouviste falar em constantes? Funções?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Também era bom que especificasses de que erros estás a falar.

Erros de compilação não é. Mas diz onde está a falhar na tua perspectiva.

Já agora se isto é mesmo C devias guardar o ficheiro em .c e não em .cpp.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Hipnoted, o problemas esta na junçao dos programas, eles separados estao a trabalhar bem, agora juntos nem por isso, quando faz o ciclo ele nao me deixa escolher o que quero fazer se quero a opçao A ou a B... dando me logo uma data de erros aseguir  :down: ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sujestoes?????? alguem da??? ou alguem consegue arranjalo??

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sujestoes?????? alguem da??? ou alguem consegue arranjalo??

Sugiro que restrutures o programa todo, de momento está mesmo mal organizado.

Por exemplo, podes fazer o seguinte:

#define EURO_TO_DOLLAR 1.34

// ou

const float EURO_TO_DOLLAR = 1.34;

// ou ainda mais facil, usas um array com as taxas de conversao

float TAXAS_EURO[] = {1.34, 0.68, 13.27, etc...};

// depois quando tiveres a converter

printf("%.2f",  num1*EURO_TO_DOLLAR[num4-1]); // comeca a contar do 0, logo num4-1

// com este metodo ja vais poupar algumas linhas de codigo


0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

obrigado mas com tanta treta que me disseram, nao cheguei a conclusao nenhuma... bigado na mesma...

[topico encerrado]

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

obrigado mas com tanta treta que me disseram, nao cheguei a conclusao nenhuma... bigado na mesma...

[topico encerrado]

O melhor mesmo é começares a ler alguma coisa desde início. Comprar um livro ou ler uns tutoriais da net fazia-te bem. ;)

É que se não aprendes as bases não te safas...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sem mentir muito, nunca vi tanto switch/case em tão poucas linhas de código!

Não entendeste o que o Triton disse?

É basicamente substituir metade desses switch/case com um array em que tens as taxas de converção para cada moeda.

O indice do array é o número da opção.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora