|
Pra começar, um brevíssimo resumo sobre a história da linguagem C:
É uma linguagem procedural, de alto nível e foi criada em 1972, por Dennis Ritchie, no AT&T Bell Labs, com o propósito de desenvolver o Sistema Operacional UNIX(originalmente desenvolvido em Assembly).
Este tutorial, considero de nível básico, uma introdução a linguagem C e tem o objetivo de auxiliar no entendimento prático desta linguagem, que geralmente, é usada já no primeiro período dos cursos superiores de TI.
Este programa, tem o objetivo de converter valores decimais em binários, hexadecimais ou octais, conforme a escolha do usuário. Chamei este programa de "conversor.c". Segue o código comentado: Uma observação: usuários Linux não devem e não precisam usar a biblioteca conio.h e sua função getch(). // Adicionando bibliotecas necessárias para este programa // stdio.h é responsável pelas funções de entrada e saída de // dados: // printf e scanf // conio.h só é necessária para usuários Windows(e só funciona // nele), // é responsável pela função getch() #include <stdio.h> #include <conio.h> 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: i = 0; printf("Digite um numero decimal: \n"); scanf("%d",&ent); while(ent >= 1) { // a variavel resto é um vetor e o % corresponde ao // mod resto[i] = ent % 2; ent = ent / 2; // aqui eu incremento o contador i++; } cont = i - 1; while(cont >= 0) { printf("%d",resto[cont]); // aqui eu decremento o contador, para mostrar // os valores do ultimo para o primeiro cont--; } break; // Este bloco converte de decimal para hexadecimal case 2: i = 0; printf("Digite um numero decimal: \n"); scanf("%d",&ent); while(ent >= 15) { resto[i] = ent % 16; ent = ent / 16; i++; } resto[i] = ent % 16; cont = i; while(cont >= 0) { 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]); cont--; } break; // Este bloco converte de decimal para octal case 3: i = 0; printf("Digite um numero decimal: \n"); scanf("%d",&ent); while(ent >= 8) { resto[i] = ent % 8; ent = ent / 8; i++; } resto[i] = ent % 8; cont = i; while(cont >= 0) { printf("%d",resto[cont]); 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 // Esta funcao pausa a execucao e aguarda uma intervenção // do usuario para sair do programa. Obs.: Só funciona no // Windows getch();
return(0); }
Para aprender como compilar arquivos .c no Linux, leia a dica Compilando arquivos .c no Linux. Críticas, dúvidas ou sugestões, entre em contato. |