|
Para melhor compreensão da lógica do programa, estou publicando uma nova versão do tutorial I, com as mesmas funcionalidades, mas desta vez usando uma outra estrutura de controle: o FOR ao invés do WHILE. Desta vez, chamo meu programa de converso1.c:
#include <stdio.h>
// retirei a biblioteca conio.h, pois ela não é necessária em // Linux
int main() { int opcao, ent, resto[10], i, cont;
printf("Para converter de Decimal para Binario digite 1\n"); printf("Para converter de Decimal para Hexadecimal digite 2\n"); printf("Para converter de Decimal para Octal digite 3\n");
scanf("%d",&opcao);
// Este bloco converte de decimal para binário switch(opcao) {
case 1: printf("Digite um numero decimal: \n"); scanf("%d",&ent);
// i é meu índice; //ent recebe a divisão do valor entrado pelo usuário //por 2 // resto, é um vetor e recebe o resto da divisão for(i = 0; ent >= 1; i++) { resto[i] = ent % 2; ent = ent / 2; }
// aqui eu faço o decremento, já que i tem o total de // vezes for(cont = i-1; cont >= 0; cont--) { printf("%d",resto[cont]); }
break;
// Este bloco converte de decimal para hexadecimal // Segue a mesma lógica do primeiro bloco case 2: printf("Digite um numero decimal: \n"); scanf("%d",&ent);
for(i = 0; ent >= 15; i++) { resto[i] = ent % 16; ent = ent / 16; }
resto[i] = ent % 16;
for(cont = i; cont >= 0; cont--) { if(resto[cont] == 10) printf("A"); else if(resto[cont] == 11) printf("B"); else if(resto[cont] == 12) printf("C"); else if(resto[cont] == 13) printf("D"); else if(resto[cont] == 14) printf("E"); else if(resto[cont] == 15) printf("F"); else printf("%d",resto[cont]); }
break;
// Este bloco converte de decimal para octal // Segue a mesma lógica do primeiro e segundo blocos case 3: printf("Digite um numero decimal: \n"); scanf("%d",&ent);
for(i = 0; ent >= 8; i++) { resto[i] = ent % 8; ent = ent / 8; }
resto[i] = ent % 8;
for(cont = i; cont >= 0; cont--) { printf("%d",resto[cont]); } break; // Caso o usuario digite um caracter, diferente de 1, 2 // e 3 default: printf("Voce digitou uma opcao invalida!!!\n"); break; } // Fim do switch
printf("\n"); return(0); }
Para aprender como compilar arquivos .c no Linux, leia a dica Compilando arquivos .c no Linux. |