terça-feira, 6 de março de 2018

De decimal para cardinais em java

Este programa foi criado originalmente
em linguagem C por mim mesmo, a cinco
anos atrás, e lembro que na época
foi um grande sucesso de visualizações no blog.

Agora, resolvi convertê-lo em java, e apresento aqui os resultados.
O único obstáculo em compilar este programa é a classe J,

mas se alguém tiver interesse posso disponibilizar uma cópia
deste programa em javafx, fica claro que até este momento ainda não
 possuo esta opção, mas até o fim desta semana, se eu tiver tempo
faço isto e posto no blog.


Veja abaixo uma imagem do programa em execução



Veja abaixo o código do programa: 


import java.awt.Toolkit;
import java.util.Scanner;

public class PROJETO {
     static int n = 0, un, de, ce, mi, erro = 0;
     static J jht = new J ( );
     static String str_1;
     public static void Inform ( ) {
         J jht = new J ( );
         // /////////////////////////////////////////////////////////////////////
         // Parâmetros da função printfx
         // Coord x, Coord y, String, cor de frente, cor de fundo,
         // Comprimento, Tempo, frequência, duração.
         jht.printfx ( 22, 20, "Por: ", 12, 15, 5, 0, 0, 0 );
         jht.printfx ( 27, 20, "Samuel Lima", 9, 15, 11, 0, 0, 0 );
         jht.printfx ( 22, 21, "sa_sp10@hotmail.com", 0, 15, 20, 0, 0, 0 );
         jht.printfx ( 33, 23, "MUITO OBRIGADO", 12, 15, 15, 0, 0, 0 );
     }
////////////////////////////////////////////////////////////////////////////
     // Este método não permite a entrada de caracteres
     public static int Cardinais ( char c ) {
         int i;
         for ( i = 0; i < ( c ); i++ ) {
              if ( c < '0' || c > '9' )
                   return 0;
         }
         return 1;
     }
////////////////////////////////////////////////////////////////////////////
     public static void FuncUnidade ( ) {
         if ( un == 1 ) {
              System.out.printf ( "Um" );
         }
         if ( un == 2 ) {
              System.out.printf ( "Dois" );
         }
         if ( un == 3 ) {
              System.out.printf ( "Tres" );
         }
         if ( un == 4 ) {
              System.out.printf ( "Quatro" );
         }
         if ( un == 5 ) {
              System.out.printf ( "Cinco" );
         }
         if ( un == 6 ) {
              System.out.printf ( "Seis" );
         }
         if ( un == 7 ) {
              System.out.printf ( "Sete" );
         }
         if ( un == 8 ) {
              System.out.printf ( "Oito" );
         }
         if ( un == 9 ) {
              System.out.printf ( "Nove" );
         }
     }
///////////////////////////////////////////////////////////////////////////   
     public static void main ( String [ ] args ) throws Exception {
         J jht = new J ( );
         jht.Moldura ( 1, 24, 2, 78, 15 );  
         do {
              jht.cls ( );
              Inform ( );
              jht.poscolor ( 20, 3, 12, 15 );
              System.out.printf ( "DE DECIMAL PARA CARDINAIS EM JAVA" );
              jht.poscolor ( 20, 5, 9, 15 );
              System.out.print ( "Digite um Numero => " );
              jht.textcolor ( 12 );
              Scanner hms = new Scanner ( System.in );
              str_1 = hms.nextLine ( );  
              if ( Cardinais ( str_1.charAt ( 0 ) ) == 0 ) {  
                   Toolkit.getDefaultToolkit ( ).beep ( );
                   continue;
              }
              //Conversão de String para inteiro
              n = Integer.parseInt ( str_1 );
              //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 ) ) );
              jht.poscolor ( 20, 7, 9, 15 );
              System.out.print ( "Voce digitou: " );
              jht.poscolor ( 35, 7, 12, 15 );
              System.out.printf ( "%d %d %d %d" , mi , ce , de , un );
              jht.poscolor ( 20, 9, 9, 15 );
              System.out.printf ( "Separando por grupo temos:" );
              mi = mi * 1000;
              ce = ce * 100;
              de = de * 10;
              un = un * 1;
              jht.poscolor ( 20, 11, 12, 15 );
              System.out.printf ( "%d Milhar" , mi / 1000 );
              jht.poscolor ( 20, 12, 12, 15 );
              System.out.printf ( "%d Centenas" , ce / 100 );
              jht.poscolor ( 20, 13, 12, 15 );
              System.out.printf ( "%d Dezenas" , de / 10 );
              jht.poscolor ( 20, 14, 12, 15 );
              System.out.printf ( "%d Unidades" , un / 1 );
              jht.poscolor ( 20, 16, 9, 15 );
              System.out.printf ( "Em Cardinal:" );
              jht.poscolor ( 20, 18, 12, 15 );
              if ( mi == 9000 ) {
                   if ( de == 0 && un == 0 ) {
                        System.out.printf ( "Nove Mil " );
                   } else {
                        System.out.printf ( "Nove Mil e " );
                   }
              }
              if ( mi == 8000 ) {
                   if ( de == 0 && un == 0 ) {
                        System.out.printf ( "Oito Mil " );
                   } else System.out.printf ( "Oito Mil e " );
              }
              if ( mi == 7000 ) {
                   if ( de == 0 && un == 0 ) {
                        System.out.printf ( "Sete Mil " );
                   } else System.out.printf ( "Sete Mil e " );
              }
              if ( mi == 6000 ) {
                   if ( de == 0 && un == 0 ) {
                        System.out.printf ( "Seis Mil " );
                   } else System.out.printf ( "Seis Mil e " );
              }
              if ( mi == 5000 ) {
                   if ( de == 0 && un == 0 ) {
                        System.out.printf ( "Cinco Mil " );
                   } else System.out.printf ( "Cinco Mil e " );
              }
              if ( mi == 4000 ) {
                   if ( de == 0 && un == 0 ) {
                        System.out.printf ( "Quatro Mil " );
                   } else System.out.printf ( "Quatro Mil e " );
              }
              if ( mi == 3000 ) {
                   if ( de == 0 && un == 0 ) {
                        System.out.printf ( "Tres Mil " );
                   } else System.out.printf ( "Tres Mil e " );
              }
              if ( mi == 2000 ) {
                   if ( de == 0 && un == 0 ) {
                        System.out.printf ( "Dois Mil " );
                   } else System.out.printf ( "Dois Mil e " );
              }
              if ( mi == 1000 ) {
                   if ( de == 0 && un == 0 ) {
                        System.out.printf ( "Mil " );
                   } else System.out.printf ( "Mil e " );
              }
              if ( ce == 900 ) {
                   if ( de == 0 && un == 0 ) {
                        System.out.printf ( "Novecentos" );
                   } else System.out.printf ( "Novecentos e " );
              }
              if ( ce == 800 ) {
                   if ( de == 0 && un == 0 ) {
                        System.out.printf ( "Oitocentos" );
                   } else System.out.printf( "Oitocentos e " );
              }
              if ( ce == 700 ) {
                   if ( de == 0 && un == 0 ) {
                        System.out.printf ( "Setecentos" );
                   } else System.out.printf ( "Setecentos e " );
              }
              if ( ce == 600 ) {
                   if ( de == 0 && un == 0 ) {
                        System.out.printf ( "Seiscentos" );
                   } else System.out.printf ( "Seiscentos e " );
              }
              if ( ce == 500 ) {
                   if ( de == 0 && un == 0 ) {
                        System.out.printf ( "Quinhentos" );
                   } else System.out.printf ( "Quinhentos e " );
              }
              if ( ce == 400 ) {
                   if ( de == 0 && un == 0 ) {
                        System.out.printf ( "Quatrocentos" );
                   } else System.out.printf ( "Quatrocentos e " );
              }
              if ( ce == 300 ) {
                   if ( de == 0 && un == 0 ) {
                        System.out.printf ( "Trezentos" );
                   } else System.out.printf ( "Trezentos e " );
              }
              if ( ce == 200 ) {
                   if ( de == 0 && un == 0 ) {
                        System.out.printf ( "Duzentos" );
                   } else System.out.printf ( "Duzentos e " );
              }
              if ( ce == 100 ) {
                   if ( de == 0 && un == 0 ) {
                        System.out.printf ( "Cem" );
                   } else System.out.printf ( "Cento e " );
              }
              if ( de == 20 ) {
                   if ( de == 0 || un == 0 ) {
                        System.out.printf ( "Vinte" );
                   } else System.out.printf(  "Vinte e " );
                   FuncUnidade ( );
                   jht.getche ( );
                   main ( args );
              }
              if ( de == 30 ) {
                   if ( de == 0 || un == 0 ) {
                        System.out.printf ( "Trinta" );
                   } else System.out.printf ( "Trinta e " );
                   FuncUnidade ( );
                   jht.getche ( );
                   main ( args );
              }
              if ( de == 40 ) {
                   if ( de == 0 || un == 0 ) {
                        System.out.printf ( "Quarenta" );
                   } else System.out.printf ( "Quarenta e " );
                   FuncUnidade ( );
                   jht.getche ( );
                   main ( args );
              }
              if ( de == 50 ) {
                   if ( de == 0 || un == 0 ) {
                        System.out.printf ( "Cincoenta" );
                   } else System.out.printf ( "Cinquenta e " );
                   FuncUnidade ( );
                   jht.getche ( );
                   main ( args );
              }
              if ( de == 60 ) {
                   if ( de == 0 || un == 0 ) {
                        System.out.printf ( "Sessenta" );
                   } else System.out.printf ( "Sessenta e " );
                   FuncUnidade ( );
                   jht.getche ( );
                   main ( args );
              }
              if ( de == 70 ) {
                   if ( de == 0 || un == 0 ) {
                        System.out.printf ( "Setenta" );
                   } else System.out.printf ( "Setenta e " );
                   FuncUnidade ( );
                   jht.getche ( );
                   main ( args );
              }
              if ( de == 80 ) {
                   if ( de == 0 || un == 0 ) {
                        System.out.printf ( "Oitenta" );
                   } else System.out.printf ( "Oitenta e " );
                   FuncUnidade ( );
                   jht.getche ( );
                   main ( args );
              }
              if ( de == 90 ) {
                   if ( de == 0 || un == 0 ) {
                        System.out.printf ( "Noventa" );
                   } else System.out.printf ( "Noventa e " );
                   FuncUnidade ( );
                   jht.getche ( );
                   main ( args );
              }
              if ( un == 1 ) {
                   if ( de == 0 || un == 0 ) {
                        System.out.printf ( "Um" );
                        jht.getche ( );
                        main ( args );
                   } else System.out.printf ( "Onze " );
                   jht.getche ( );
                   main ( args );
              }
              if ( un == 2 ) {
                   if ( de == 0 || un == 0 ) {
                        System.out.printf ( "Dois" );
                   } else System.out.printf ( "Doze " );
                   jht.getche ( );
                   main ( args );
              }
              if ( un == 3 ) {
                   if ( de == 0 || un == 0 ) {
                        System.out.printf ( "Tres" );
                   } else System.out.printf ( "Treze " );
                   jht.getche ( );
                   main ( args );
              }
              if ( un == 4 ) {
                   if ( de == 0 || un == 0 ) {
                        System.out.printf ( "Quatro" );
                   } else System.out.printf ( "Catorze " );
                   jht.getche ( );
                   main ( args );
              }
              if ( un == 5 ) {
                   if ( de == 0 || un == 0 ) {
                        System.out.printf ( "Cinco" );
                   } else System.out.printf ( "Quinze " );
                   jht.getche ( );
                   main ( args );
              }
              if ( un == 6 ) {
                   if ( de == 0 || un == 0 ) {
                        System.out.printf ( "Seis" );
                   } else System.out.printf ( "Dezesseis " );
                   jht.getche ( );
                   main ( args );
              }
              if ( un == 7 ) {
                   if ( de == 0 || un == 0 ) {
                        System.out.printf ( "Sete" );
                   } else System.out.printf ( "Dezessete " );
                   jht.getche ( );
                   main ( args );
              }
              if ( un == 8 ) {
                   if ( de == 0 || un == 0 ) {
                        System.out.printf ( "Oito" );
                   } else System.out.printf ( "Dezoito " );
                   jht.getche ( );
                   main ( args );
              }
              if ( un == 9 ) {
                   if ( de == 0 || un == 0 ) {
                        System.out.printf ( "Nove" );
                        jht.getche ( );
                        main ( args );
                   } else System.out.printf ( "Dezenove " );
                   jht.getche ( );
                   main ( args );
              }
              if ( de == 10 ) {
                   if ( de == 0 || un == 0 ) {
                        System.out.printf ( "Dez" );
                        jht.getche ( );
                        main ( args );
                   }
              }
              jht.getche ( );
         }while ( true );
     }
}

Nenhum comentário:

Postar um comentário

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