Título: Programa de conversiones. ayuda por favor Publicado por: HIUM en 23 Julio 2011, 00:14 am Buenas! tengo un problema con este código, por problemas ajenos pude entregar a las clases de programacion II y el profe nos recomendo este código para practicar. No entiendo algunas cosas, como por ejemplo: for(;;), la funcion unsigned long conversor.
EL CODIGO TRATA DE UNAS CONVERSIONES DE DECIMAL A BINARIO, BINARIO A OCTAL Y ASÍ SUCESIVAMENTE. NECESITO ALGUNOS TIPS DE ESTE CODIGO POR FAVOR!! #include <stdio.h> #include <conio.h> #include <stdlib.h> char menu() { char c; printf("1 - Decimal -> Binario\n"); //printf("2 - Decimal -> Octal\n"); printf("3 - Decimal -> Hexadecimal\n"); printf("4 - Binario -> Decimal\n"); //printf("5 - Binario -> Octal\n"); printf("6 - Binario -> Hexadecimal\n"); //printf("7 - Octal -> Decimal\n"); //printf("8 - Octal -> Binario\n"); //printf("9 - Octal -> Hexadecimal\n"); printf("A - Hexadecimal -> Decimal\n"); printf("B - Hexadecimal -> Binario\n"); //printf("C - Hexadecimal -> Octal\n"); printf("S - Salir\n"); printf("\nSeleccione opcion: "); c = getche(); return c; } unsigned long conversor(unsigned long n1,int base1,int base2) { unsigned long alg,mult=1,n2=0; while (n1 > 0) { alg = n1 % base1; n1 /= base1; n2 += (alg*mult); mult *= base2; } return n2; } void main() { unsigned long n; char op; for(;;) { clrscr(); op = menu(); clrscr(); switch(op) { case '1': printf("Conversor Decimal -> Binario\n"); printf("Introduza un numero Decimal: "); scanf("%lu",&n); printf("Numero Binario correspondente: "); printf("%lu",conversor(n,2,10)); break; /*case '2': printf("Conversor Decimal -> Octal\n"); printf("Introduza um numero Decimal: "); scanf("%lu",&n); printf("Numero Octal correspondente: "); printf("%lo",n); break; */ case '3': printf("Conversor Decimal -> Hexadecimal\n"); printf("Introduza um numero Decimal: "); scanf("%lu",&n); printf("Numero Hexadecimal correspondente: "); printf("%lx",n); break; case '4': printf("Conversor Binario -> Decimal\n"); printf("Introduza un numero Binario: "); scanf("%lu",&n); printf("Numero Decimal correspondente: "); printf("%lu",conversor(n,10,2)); break; /*case '5': printf("Conversor Binario -> Octal\n"); printf("Introduza un numero Binario: "); scanf("%lu",&n); printf("Numero Octal correspondente: "); printf("%lo",conversor(n,10,2)); break;*/ case '6': printf("Conversor Binario -> Hexadecimal\n"); printf("Introduza un numero Binario: "); scanf("%ld",&n); printf("Numero Hexadecimal correspondente: "); printf("%lx",conversor(n,10,2)); break; /*case '7': printf("Conversor Octal -> Decimal\n"); printf("Introduza un numero Octal: "); scanf("%lo",&n); printf("Numero Decimal correspondente: "); printf("%lu",n); break; case '8': printf("Conversor Octal -> Binario\n"); printf("Introduza un numero Octal: "); scanf("%lo",&n); printf("Numero Binario correspondente: "); printf("%lu",conversor(n,2,10)); break; case '9': printf("Conversor Octal -> Hexadecimal\n"); printf("Introduza un numero Octal: "); scanf("%lo",&n); printf("Numero Hexadecimal correspondente: "); printf("%lx",n); break; */ case 'A': case 'a': printf("Conversor Hexadecimal -> Decimal\n"); printf("Introduza un numero Hexadecimal: "); scanf("%lx",&n); printf("Numero Decimal correspondente: "); printf("%lu",n); break; case 'B': case 'b': printf("Conversor Hexadecimal -> Binario\n"); printf("Introduza un numero Hexadecimal: "); scanf("%lx",&n); printf("Numero Binario correspondente: "); printf("%lu",conversor(n,2,10)); break; /*case 'C': case 'c': printf("Conversor Hexadecimal -> Octal\n"); printf("Introduza un numero Hexadecimal: "); scanf("%lx",&n); printf("Numero Octal correspondente: "); printf("%lo",n); break; */ case 'S': case 's': exit(0); break; default: printf("Opcion invalida!"); } getch(); } } Título: Re: Programa de conversiones. ayuda por favor Publicado por: bigfu en 23 Julio 2011, 00:53 am ¿Qué es lo que no entiendes del unsigned long conversor? ¿Lo que es o lo que hace?
Título: Re: Programa de conversiones. ayuda por favor Publicado por: HIUM en 23 Julio 2011, 01:17 am esa funcion no la entiendo amigo!! y cuando comienza el for
for(;;) que hace ese for? por favor! Título: Re: Programa de conversiones. ayuda por favor Publicado por: Queta en 23 Julio 2011, 01:27 am Ese for hace un bucle infinito.
Título: Re: Programa de conversiones. ayuda por favor Publicado por: HIUM en 23 Julio 2011, 01:35 am y la funcion que hace? creo que es para realizar todas las conversiones!!
Título: Re: Programa de conversiones. ayuda por favor Publicado por: Queta en 23 Julio 2011, 01:43 am http://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B (http://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B)
Esfuérzate un poquito anda... Título: Re: Programa de conversiones. ayuda por favor Publicado por: HIUM en 23 Julio 2011, 15:49 pm por favor
Título: Re: Programa de conversiones. ayuda por favor Publicado por: bigfu en 23 Julio 2011, 16:11 pm Sabes como hacerlo manualmente?? es decir, sabes convertir entre bases numéricas??
Título: Re: Programa de conversiones. ayuda por favor Publicado por: HIUM en 23 Julio 2011, 16:31 pm si! pero me cuesta un poco para hexadecimal y viceversa
Título: Re: Programa de conversiones. ayuda por favor Publicado por: bigfu en 23 Julio 2011, 16:56 pm Bueno, pues intenta hacer un ejemplo facilito en un papel con el código de la función, paso por paso. Verás como lo entiendes rápidamente.
Y la conversión para hexadecimal es igual que las demás, lo único es que si el resto está entre 10 y 15, ha de sustituirse por A, B, C, D, E o F. Título: Re: Programa de conversiones. ayuda por favor Publicado por: HIUM en 24 Julio 2011, 22:28 pm Gracias amigo! ya estuve practicando! ahora soy un verdugo en esas conversiones. Pero no entiendo la funcion esa al principio del programa!
Título: Re: Programa de conversiones. ayuda por favor Publicado por: HIUM en 29 Julio 2011, 03:00 am MUCHACHOS GRACIAS POR TODA SU AYUDA!!! INVESTIGUE MAS COSAS E INCLUSO PUDE MEJORAR EL CODIGO!!!
|