sábado, 30 de março de 2013

Programa Números Cardinais

Os algarismos arábicos ou árabes, foram trazidos da Índia para o Ocidente há muitos séculos atrás e são aqueles que ainda usamos nos nossos dias.
Os números que escrevemos são formados pelos algarismos 0,1,2,3,4,5,6,7,8 e 9.
cardinal: indica quantidade determinada de seres, de objetos, de animais e etc.
Se for do seu interesse saber mais sobre os números, pesquie na internet
e encontrará milhares de links falando sobre o assunto.

Aproveitando esta véspera de feriado, e o tempo que me sobrou, comecei
a criar este programa, e coloquei o nome de: "PROGRAMA NUMEROS CARDINAIS". O Programa converte números arábicos em cardinais, de 1 a 9999.

Breve resumo do funcionamento:

O programa começa pedindo para que se digite um número, é claro, más existem parâmetros estabelecidos, quanto ao uso destes numeros, porque se você digitar um número negativo que não seja -1, você receberá a seguinte mensagem:

"O Numero não Pode Ser Negativo
Nem Maior que 10000"

Se você digitar um número acma de 9999, a mensagem de retorno é a mesma, e o programa volta ao seu curso normal aguardando que se digite um número válido.
Se você digitar o número negativo -1, o programa se encerra com o meu apelido agradecendo o uso.
Se você digitar um caractere qualquer, que não seja um número, o programa lhe retorna um bipe e a seginte mensagem:

"Isso não e um numero Valido !"

E retorna ao ponto de partida.

Os números digitados são colhidos pela função gets(); e armazenados no vetor de char num [10]; Más logo são convertidos em inteiros graças a função atoi.
Para não ter que escrever muito, deixando tópico muito extenso, escrevo agora sobre a parte mais importante do código, que é a lógica
principal onde na verdade os números são formatados, divididos e separados por milhar, centena, dezena e unidade, isto é fundamental e foi aonde apanhei para deixá-lo funcionando.
Note que eu não usei ponteiros e nem matrizes e nem switch (case); para escolha e para armazenameto dos números na memória, se tivesse feito assim com certeza o programa teria ficado bem mais portátil, más preferi este método porque o programa é indicado a iniciantes em linguagem C.
Na verdade usei uma corrente de ifs e else, que é fácil
de usar e imprementar, e o funcionamento é Perfeito.

Segue o código abaixo:


Código:
#include <stdio.h>
#include <conio.h>
int Cardinais ( char num [4] ){
 int i;
 for( i = 0; i < strlen ( num ); i++ ){
  if ( num [ i ] < '0' || num [ i ] > '9' )
   return 0;
 }
 return 1;
}
int main(){
 system ("title PROGRAMA NUMEROS CARDINAIS");
 //textbackground(BRANCO);
 int a, e, i, o, q, n, milhar, centena, dezena, unidade;
 char num [10];
 int erro = 0;
 do{
  system("cls");
  textcolor(VERMELHOCLARO);gotoxy(29,3);printf("PROGRAMA NUMEROS CARDINAIS");
  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(AZULCLARO);gotoxy(34,9);printf("Digite um numero: ");
  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 não Pode Ser Negativo");
   textcolor(VERMELHOCLARO);gotoxy(25,12);printf("Nem Maior que 10000");
   Sleep (2800);    main();
  }
  if ( Cardinais ( num ) == 0 ){
   textcolor(AZULCLARO);gotoxy(34,13); printf("\aIsso não e um numero Valido !\n");
   gotoxy(54,13);
  }  else erro = 0;
  textcolor(VERDECLARO);gotoxy(34,11); printf("voce digitou: %s",num);
  gotoxy(34,13);
  milhar = n / 1000;
  centena = n / 100;
  n = n - centena * 100;
  dezena = n / 10;
  unidade = n % 10;
  a = dezena * 10;
  e = unidade * 1;
  q = dezena * 10 + e;
  o = milhar * 1000;
  i =  centena  * 100 - o;
  textcolor(AMARELO);gotoxy(34,15); if ( o == 9000) {
   if(dezena == 0 && unidade == 0){
    printf("Nove Mil ");}
   else{
    printf("Nove Mil e ");}
  }
  if ( o == 8000) {
   if(dezena == 0 && unidade == 0){
    printf("Oito Mil ");}
   else
    printf("Oito Mil e ");
  }
  if ( o == 7000) {
   if(dezena == 0 && unidade == 0){
    printf("Sete Mil ");}
   else
    printf("Sete Mil e ");
  }
  if ( o == 6000) {
   if(dezena == 0 && unidade == 0){
    printf("Seis Mil ");}
   else
    printf("Seis Mil e ");
  }
  if ( o == 5000) {
   if(dezena == 0 && unidade == 0){
    printf("Cinco Mil ");}
   else
    printf("Cinco Mil e ");
  }
  if ( o == 4000) {
   if(dezena == 0 && unidade == 0){
    printf("Quatro Mil ");}
   else
    printf("Quatro Mil e ");
  }
  if ( o == 3000) {
   if(dezena == 0 && unidade == 0){
    printf("Tres Mil ");}
   else
    printf("Tres Mil e ");
  }
  if ( o == 2000) {
   if(dezena == 0 && unidade == 0){
    printf("Dois Mil ");}
   else
    printf("Dois Mil e ");
  }
  if ( o == 1000) {
   if(dezena == 0 && unidade == 0){
    printf("Mil ");}
   else
    printf("Mil e ");
  }
  if ( i == 900) {
   if(dezena == 0 && unidade == 0){
    printf("Novecentos");}
   else
    printf("Novecentos e ");
  }
  if ( i == 800) {
   if(dezena == 0 && unidade == 0){
    printf("Oitocentos");}
   else
    printf("oitocentos e ");
  }
  if ( i == 700) {
   if(dezena == 0 && unidade == 0){
    printf("Setecentos");}
   else
    printf("Setecentos e ");
  }
  if ( i == 600) {
   if(dezena == 0 && unidade == 0){
    printf("Seiscentos");}
   else
    printf("Seiscentos e ");
  }
  if ( i == 500) {
   if(dezena == 0 && unidade == 0){
    printf("Quinhentos");}
   else
    printf("Quinhentos e ");
  }
  if ( i == 400) {
   if(dezena == 0 && unidade == 0){
    printf("Quatrocentos");}
   else
    printf("Quatrocentos e ");
  }
  if ( i == 300) {
   if(dezena == 0 && unidade == 0){
    printf("Trezentos");}
   else
    printf("Trezentos e ");
  }
  if ( i == 200) {
   if(dezena == 0 && unidade == 0){
    printf("Duzentos");}
   else
    printf("Duzentos e ");
  }
  if ( i == 100) {
   if(dezena == 0 && unidade == 0){
    printf("cem");}
   else
    printf("cento e ");
  }
  if ( a == 20) {
   if(dezena == 0 || unidade == 0){
    printf("Vinte");}
   else
    printf("Vinte e ");
  }
  if ( a == 30) {
   if(dezena == 0 || unidade == 0){
    printf("Trinta");}
   else
    printf("Trinta e ");
  }
  if ( a == 40) {
   if(dezena == 0 || unidade == 0){
    printf("Quarenta");}
   else
    printf("Quarenta e ");
  }
  if ( a == 50) {
   if(dezena == 0 || unidade == 0){
    printf("Cincoenta");}
   else
    printf("Cinquenta e ");
  }
  if ( a == 60) {
   if(dezena == 0 || unidade == 0){
    printf("Sessenta");}
   else
    printf("Sessenta e ");
  }
  if ( a == 70) {
   if(dezena == 0 || unidade == 0){
    printf("Setenta");}
   else
    printf("Setenta e ");
  }
  if ( a == 80) {
   if(dezena == 0 || unidade == 0){
    printf("Oitenta");}
   else
    printf("Oitenta e ");
  }
  if ( a == 90) {
   if(dezena == 0 || unidade == 0){
    printf("Noventa");}
   else
    printf("Noventa e ");
  }
  if ( q  == 11 ) {printf("Onze");getche();main();}
  if ( q  == 12 ) {printf("Doze");getche();main();}
  if ( q  == 13 ) {printf("Treze");getche();main();}
  if ( q  == 14 ) {printf("Catorze");getche();main();}
  if ( q  == 15 ) {printf("Quinze");getche();main();}
  if ( q  == 16 ) {printf("Dezesseis");getche();main();}
  if ( q  == 17 ) {printf("Dezessete");getche();main();}
  if ( q  == 18 ) {printf("Dezoito");getche();main();}
  if ( q  == 19 ) {printf("Dezenove");getche();main();}
  if ( e  == 1 ) {printf("Um");}
  if ( e  == 2 ) {printf("Dois");}
  if ( e == 3 )  { printf("Tres");}
  if ( e == 4 )  {printf("Quatro");}
  if ( e == 5 )  { printf("Cinco");}
  if ( e == 6 )  { printf("Seis");}
  if ( e == 7 )  { printf("Sete");}
  if ( e == 8 )  { printf("Oito");}
  if ( e == 9 )  { printf("Nove");}
  if ( a == 10 ) {printf("Dez");}
  getche();
 }while ( 1 );
}











Nenhum comentário:

Postar um comentário

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