sábado, 30 de março de 2013

Programa Números Cardinais II

Mais avançado, mais inteligente e mais organizado, este programa apresenta evoluções em relação ao outro que postei:

"PROGRAMA NUMEROS CARDINAIS"

Se você é iniciante em linguagem C, não pode deixar de testar estes dois programas, principalmente este,
porque o funcionamento é excelente e o código é de fácil entendimento.
Um dos destaque do programa é a função Cardinais();que é responsável
por barrar caracteres digitados ou string, e a milagrosa função atoi
que converte os números colhidos pela função gets(); para inteiros.

O código foi criado no eclipse e está rodando sem nenhum warning.

Clique aqui e curta minha página no facebook



Veja abaixo o código do programa:



#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
void Janela5 ( ) {
     int lin, col;
     col = 0;
     for ( lin = 2; lin <= 24 ; lin++ )
         for ( col = 2; col <= 78 ; col++ ) {
              gotoxy ( col , lin );
              textbackground ( AZULCLARO );
              printf ( " " );
         }
}
int n = 0, un, de, ce, mi, erro = 0;
int main ( );
void FuncUnidade ( ) {
     if ( un == 1 ) {
         printf ( "Um" );
     }
     if ( un == 2 ) {
         printf ( "Dois" );
     }
     if ( un == 3 ) {
         printf ( "Tres" );
     }
     if ( un == 4 ) {
         printf ( "Quatro" );
     }
     if ( un == 5 ) {
         printf ( "Cinco" );
     }
     if ( un == 6 ) {
         printf ( "Seis" );
     }
     if ( un == 7 ) {
         printf ( "Sete" );
     }
     if ( un == 8 ) {
         printf ( "Oito" );
     }
     if ( un == 9 ) {
         printf ( "Nove" );
     }
}
int Cardinais ( char num [ 4 ] ) {
     int i, lev;
     lev = strlen ( num );
     for ( i = 0; i < lev; i++ ) {
         if ( num [ i ] < '0' || num [ i ] > '9' )
              return 0;
     }
     return 1;
}
int main ( ) {
     system ( "title PROGRAMA NUMEROS CARDINAIS II" );
     char num [ 10 ];
     Janela5 ( );
     do {
         textcolor ( VERMELHOCLARO );
         gotoxy ( 29 , 3 );
         printf ( "PROGRAMA NUMEROS CARDINAIS II" );
         textcolor ( AMARELO );
         gotoxy ( 24 , 5 );
         printf ( "Programa desenvolvido por:" );
         textcolor ( CIANOCLARO );
         gotoxy ( 51 , 5 );
         printf ( "Samuel Lima" );
         textcolor ( VERDECLARO );
         gotoxy ( 34 , 7 );
         printf ( "sa_sp10@hotmail.com" );
         textcolor ( BRANCO );
         gotoxy ( 25 , 9 );
         printf ( "Digite um Numero ou  -1 Para sair: " );
         textcolor ( PRETO );
         gets ( num );
         n = atoi ( num );
         if ( n == -1 ) {
              textcolor ( VERMELHOCLARO );
              gotoxy ( 33 , 20 );
              printf ( "O ROCCO AGRADECE" );
              Sleep ( 1800 );
              exit ( 0 );
         }
         while ( n < 0 || n > 9999 ) {
              textcolor ( VERMELHOCLARO );
              gotoxy ( 25 , 11 );
              printf ( "\aO Numero nao Pode Ser Negativo" );
              textcolor ( VERMELHOCLARO );
              gotoxy ( 25 , 12 );
              printf ( "Nem Maior que 10000" );
              getche ( );
              erro = 0;
              main ( );
         }
         if ( Cardinais ( num ) == 0 ) {
              textcolor ( VERDECLARO );
              gotoxy ( 34 , 12 );
              printf ( "Voce digitou: %s" , num );
              textcolor ( VERDECLARO );
              gotoxy ( 34 , 13 );
              printf ( "\aIsso nao e um numero Valido !" );
              getche ( );
              erro = 0;
              main ( );
         } else {
              //separa milhares
              mi = ( n / 1000 );
               //separa centenas
              ce = ( ( n - ( mi * 1000 ) ) / 100 );
              //separa dezenas
              de = ( ( n - ( ( mi * 1000 ) + ( ce * 100 ) ) ) / 10 );
               //separa unidades
              un = ( n - ( ( mi * 1000 ) + ( ce * 100 ) + ( de * 10 ) ) );
              textcolor ( VERMELHOCLARO );
              gotoxy ( 35 , 11 );
              printf ( "Voce digitou: " );
              textcolor ( PRETO );
              gotoxy ( 50 , 11 );
              printf ( "%d %d %d %d" , mi , ce , de , un );
              textcolor ( AMARELO );
              gotoxy ( 15 , 13 );
              printf ("Separando A milhar, centenas, dezenas, e unidades Temos:" );
              gotoxy ( 35 , 15 );
              mi = mi * 1000;
              ce = ce * 100;
              de = de * 10;
              un = un * 1;
              textcolor ( VERDECLARO );
              printf ( " %d %d %d %d" , mi , ce , de , un );
              textcolor ( PRETO );
              gotoxy ( 37 , 17 );
              printf ( "%d Milhar" , mi / 1000 );
              gotoxy ( 37 , 18 );
              printf ( "%d Centenas" , ce / 100 );
              gotoxy ( 37 , 19 );
              printf ( "%d Dezenas" , de / 10 );
              gotoxy ( 37 , 20 );
              printf ( "%d Unidades" , un / 1 );
              getche ( );
              textcolor ( VERMELHOCLARO );
              gotoxy ( 15 , 21 );
              printf ( "Em Cardinal:" );
              textcolor ( PRETO );
              gotoxy ( 3 , 23 );
              if ( mi == 9000 ) {
                   if ( de == 0 && un == 0 ) {
                        printf ( "Nove Mil " );
                   } else {
                        printf ( "Nove Mil e " );
                   }
              }
              if ( mi == 8000 ) {
                   if ( de == 0 && un == 0 ) {
                        printf ( "Oito Mil " );
                   } else printf ( "Oito Mil e " );
              }
              if ( mi == 7000 ) {
                   if ( de == 0 && un == 0 ) {
                        printf ( "Sete Mil " );
                   } else printf ( "Sete Mil e " );
              }
              if ( mi == 6000 ) {
                   if ( de == 0 && un == 0 ) {
                        printf ( "Seis Mil " );
                   } else printf ( "Seis Mil e " );
              }
              if ( mi == 5000 ) {
                   if ( de == 0 && un == 0 ) {
                        printf ( "Cinco Mil " );
                   } else printf ( "Cinco Mil e " );
              }
              if ( mi == 4000 ) {
                   if ( de == 0 && un == 0 ) {
                        printf ( "Quatro Mil " );
                   } else printf ( "Quatro Mil e " );
              }
              if ( mi == 3000 ) {
                   if ( de == 0 && un == 0 ) {
                        printf ( "Tres Mil " );
                   } else printf ( "Tres Mil e " );
              }
              if ( mi == 2000 ) {
                   if ( de == 0 && un == 0 ) {
                        printf ( "Dois Mil " );
                   } else printf ( "Dois Mil e " );
              }
              if ( mi == 1000 ) {
                   if ( de == 0 && un == 0 ) {
                        printf ( "Mil " );
                   } else printf ( "Mil e " );
              }
              if ( ce == 900 ) {
                   if ( de == 0 && un == 0 ) {
                        printf ( "Novecentos" );
                   } else printf ( "Novecentos e " );
              }
              if ( ce == 800 ) {
                   if ( de == 0 && un == 0 ) {
                        printf ( "Oitocentos" );
                   } else printf ( "Oitocentos e " );
              }
              if ( ce == 700 ) {
                   if ( de == 0 && un == 0 ) {
                        printf ( "Setecentos" );
                   } else printf ( "Setecentos e " );
              }
              if ( ce == 600 ) {
                   if ( de == 0 && un == 0 ) {
                        printf ( "Seiscentos" );
                   } else printf ( "Seiscentos e " );
              }
              if ( ce == 500 ) {
                   if ( de == 0 && un == 0 ) {
                        printf ( "Quinhentos" );
                   } else printf ( "Quinhentos e " );
              }
              if ( ce == 400 ) {
                   if ( de == 0 && un == 0 ) {
                        printf ( "Quatrocentos" );
                   } else printf ( "Quatrocentos e " );
              }
              if ( ce == 300 ) {
                   if ( de == 0 && un == 0 ) {
                        printf ( "Trezentos" );
                   } else printf ( "Trezentos e " );
              }
              if ( ce == 200 ) {
                   if ( de == 0 && un == 0 ) {
                        printf ( "Duzentos" );
                   } else printf ( "Duzentos e " );
              }
              if ( ce == 100 ) {
                   if ( de == 0 && un == 0 ) {
                        printf ( "Cem" );
                   } else printf ( "Cento e " );
              }
              if ( de == 20 ) {
                   if ( de == 0 || un == 0 ) {
                        printf ( "Vinte" );
                   } else printf ( "Vinte e " );
                   FuncUnidade ( );
                   getche ( );
                   main ( );
              }
              if ( de == 30 ) {
                   if ( de == 0 || un == 0 ) {
                        printf ( "Trinta" );
                   } else printf ( "Trinta e " );
                   FuncUnidade ( );
                   getche ( );
                   main ( );
              }
              if ( de == 40 ) {
                   if ( de == 0 || un == 0 ) {
                        printf ( "Quarenta" );
                   } else printf ( "Quarenta e " );
                   FuncUnidade ( );
                   getche ( );
                   main ( );
              }
              if ( de == 50 ) {
                   if ( de == 0 || un == 0 ) {
                        printf ( "Cincoenta" );
                   } else printf ( "Cinquenta e " );
                   FuncUnidade ( );
                   getche ( );
                   main ( );
              }
              if ( de == 60 ) {
                   if ( de == 0 || un == 0 ) {
                        printf ( "Sessenta" );
                   } else printf ( "Sessenta e " );
                   FuncUnidade ( );
                   getche ( );
                   main ( );
              }
              if ( de == 70 ) {
                   if ( de == 0 || un == 0 ) {
                        printf ( "Setenta" );
                   } else printf ( "Setenta e " );
                   FuncUnidade ( );
                   getche ( );
                   main ( );
              }
              if ( de == 80 ) {
                   if ( de == 0 || un == 0 ) {
                        printf ( "Oitenta" );
                   } else printf ( "Oitenta e " );
                   FuncUnidade ( );
                   getche ( );
                   main ( );
              }
              if ( de == 90 ) {
                   if ( de == 0 || un == 0 ) {
                        printf ( "Noventa" );
                   } else printf ( "Noventa e " );
                   FuncUnidade ( );
                   getche ( );
                   main ( );
              }
              if ( un == 1 ) {
                   if ( de == 0 || un == 0 ) {
                        printf ( "Um" );
                        getche ( );
                        main ( );
                   } else printf ( "Onze " );
                   getche ( );
                   main ( );
              }
              if ( un == 2 ) {
                   if ( de == 0 || un == 0 ) {
                        printf ( "Dois" );
                   } else printf ( "Doze " );
                   getche ( );
                   main ( );
              }
              if ( un == 3 ) {
                   if ( de == 0 || un == 0 ) {
                        printf ( "Tres" );
                   } else printf ( "Treze " );
                   getche ( );
                   main ( );
              }
              if ( un == 4 ) {
                   if ( de == 0 || un == 0 ) {
                        printf ( "Quatro" );
                   } else printf ( "Catorze " );
                   getche ( );
                   main ( );
              }
              if ( un == 5 ) {
                   if ( de == 0 || un == 0 ) {
                        printf ( "Cinco" );
                   } else printf ( "Quinze " );
                   getche ( );
                   main ( );
              }
              if ( un == 6 ) {
                   if ( de == 0 || un == 0 ) {
                        printf ( "Seis" );
                   } else printf ( "Dezesseis " );
                   getche ( );
                   main ( );
              }
              if ( un == 7 ) {
                   if ( de == 0 || un == 0 ) {
                        printf ( "Sete" );
                   } else printf ( "Dezessete " );
                   getche ( );
                   main ( );
              }
              if ( un == 8 ) {
                   if ( de == 0 || un == 0 ) {
                        printf ( "Oito" );
                   } else printf ( "Dezoito " );
                   getche ( );
                   main ( );
              }
              if ( un == 9 ) {
                   if ( de == 0 || un == 0 ) {
                        printf ( "Nove" );
                        getche ( );
                        main ( );
                   } else printf ( "Dezenove " );
                   getche ( );
                   main ( );
              }
              if ( de == 10 ) {
                   if ( de == 0 || un == 0 ) {
                        printf ( "Dez" );
                        getche ( );
                        main ( );
                   }
              }
              getche ( );
         }
     } while ( 1 );
}




Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.