Marcelo L. Oliveira

Enquete

Você concorda com instituições como, por exemplo, a Petrobrás, que discriminam profissionais formados em cursos superiores tecnólogos?



Conexões:

del.ici.us

Linkedin

Plaxo
Twitter

Libertações:

Windows 7 Sins

Validações:

Este site é XHTML 1.0 Transitional válido
Este site é CSS válido


Introdução a Linguagem C - Tutorial I (versão usando for)

PDF Versão para impressão Enviar por E-mail

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.

 

Atualizado em Quinta, 22 Outubro 2009 16:58
 
Copyright © 2010 MarceloWeb. Todos os direitos reservados.
Joomla! é um Software Livre sob licença GNU/GPL.