Adriano Kairo 0 Denunciar post Postado Novembro 10, 2014 Bom dia! Gostaria que alguém me mostrasse onde esta o erro nessa algoritmo. algoritmo "EXERCÍCIO27" // Função :RECEBER UM NÚMERO DECIMAL E CONVERTER PARA BINÁRIO,OCTAL E HEXADECIMAL DE ACORDO COM A ESCOLHA DO USUÁRIO // Autor : // Data : 10/11/2014 // Seção de Declarações var numero:inteiro binario: caracter funcao conversao(numero:inteiro;binario:caracter):caracter inicio Enquanto numero > 1 faca binario <- numero mod 2 + binario numero <- numero /2 Se numero = 0 ou numero = 1 Entao binario <- numero + binario fimse fimenquanto retorne binario fimfuncao inicio // Seção de Comandos Escreval("Digite o núemero") Leia(numero) binario <- conversao(numero) fimalgoritmo Compartilhar este post Link para o post Compartilhar em outros sites
brunokchimbo 2 Denunciar post Postado Novembro 14, 2014 1 - Declarou o nome dos parâmetros com o mesmo nome das variáveis do programa principal.2 - Não se pode passar apenas 1 parâmetro e implementar uma função recebendo 2. funcao conversao(numero:inteiro; binario:caracter):caracter binario <- conversao(numero) 3 - Tá cheio de erros.....inclusive de lógica. Aí vai um exemplo. /*Converte um numero na base 10 para um numero em uma base qualquer. -->Samuel Macedo*/ #include <stdio.h> char numparacar(int); main() { long int bcknum,num,base,i,ind=0; char j='A',numimp,vetnum[1000],vetch[1000]; printf("Numero (em base 10): "); scanf("%d",&num); printf("Base para a qual o numero sera convertido: "); scanf("%d",&base); bcknum = num; for(i=0;i<1000;i++) vetch = 0; while(num>0){ numimp = num%base; if(numimp > 9){ numimp = numparacar(numimp); vetch[ind]=1; } vetnum[ind] = numimp; ++ind; num = num / base; } printf("%d(10) = ",bcknum); j=ind; while(vetnum[j]==0)j--; for(;j>=0;j--){ if(vetch[j]==1) printf("%c",vetnum[j]); else printf("%d",vetnum[j]); } printf("(%d)\n",base); } char numparacar(NUM) { int a;char b='A'; for(a=10;a<NUM;a++) b++; return b; } /*------------------------------*/ /*converte de qualquer base para decimal -->Samuel Macedo*/ #include <stdio.h> #include <stdlib.h> #include <ctype.h> int letparaint(char); main() { int numint,i,j,base,valdec=0,valexp,exp; char gt[2],num[100]; scanf("%s",&num); scanf("%d",&base); //printf("numero carregado: %s",num); for(i=0;num!='{FONTE}';i++); exp=i-1; //printf("EXP: %d\n",exp); for(i=0;num!='{FONTE}';i++){ valexp=1; for(j=0;j<exp;j++){ valexp=valexp*base; // printf("valexp: %d\n",valexp); } if(num>='0'&& num<='9'){ gt[0]= num; gt[1]='{FONTE}'; numint = atoi(gt); //printf("numint -> %d\n",numint); } else{ numint = letparaint(num); } valdec+=(numint*valexp); --exp; } printf("Valor decimal: %d\n",valdec); } int letparaint(char LET) { int cont=0,i,j; tolower(LET); for(i=LET;i>'a';i--) ++cont; cont+=10; //printf("---->%d",cont); return cont; } Mãos à obra! Compartilhar este post Link para o post Compartilhar em outros sites