sábado, 8 de abril de 2017

Pesquisa em array multidimensional de inteiros

Querendo pesquisar valores num array multidimensional
de inteiros inicializado com números entre 1 a 100,
e sem usar nenhum método nativo do java,
cheguei a estes resultados.
A entrada só aceita números entre "0 e 100",
sendo que zero não faz parte do array,
neste caso o programa mostra uma mensagem de
advertência ao usuário, e retorna para a entrada.
O mesmo acontece com números acima de cem.
Caracteres, acentos, ou strings são também
rejeitados pela entrada de dados, acionando
um beep nativo do java, e forçando o retorno
a entrada graças a um do while que faz a
repetição do bloco.
Se o número pesquisado estiver dentro do array,
o programa apaga algumas linhas abaixo,
para arrumar espaços para imprimir mensagens
sobre quem criou, que sou eu mesmo, e imprime
também meu e-mail, meu nome e agradece finalizando.

Veja abaixo imagens do programa em execução:





Veja abaixo o código do programa:



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

public class PROJETO {
     static String str_2;
     static int tam = 10;
     // /////////////////////////////////////////////////////////////
     // Esta função não permite a entrada de caracteres
     public static int Aleatorios ( char c ) {
         int i;
         for ( i = 0; i < ( c ); i++ ) {
              if ( c < '0' || c > '9' )
                   return 0;
         }
         return 1;
     }
     // /////////////////////////////////////////////////////////////
     public static void main ( String [ ] args ) {
         J jht = new J ( );
         jht.textbackground ( jht.WHITE );
         jht.Moldura ( ( short ) 1, ( short ) 24, ( short ) 2, ( short ) 78 );
         jht.title ( " " );
         int i, j, n = 0;
         int [ ] [ ] Vet  =
                   {{36, 48, 34, 89,  25, 56,  1, 59, 12, 81 },
                   { 15, 22, 65, 17,  91,  6, 11, 93, 26, 54 },
                   { 85, 8,  35, 24,  39, 27, 76, 14, 21, 99 },
                   { 66, 95, 87, 69, 100, 51, 20, 18, 71, 46 },
                   { 33, 45, 57, 67,  80, 50,  4, 82, 83, 92 },
                   { 31, 13, 94, 16,  47, 10, 61, 63, 74, 60 },
                   { 5,  88, 37, 77,  23, 38, 86, 43, 72, 78 },
                   { 70, 98, 73, 52,  42, 28, 68,  3, 41, 75 },
                   { 58, 79, 84, 97,  64, 55,  9, 19,  7, 32 },
                   { 44, 62, 90, 53,  40, 30, 96, 29,  2, 49 }};
         jht.cls ( );
         jht.textbackground ( jht.WHITE );
         jht.textcolor ( jht.LIGHTRED );
         jht.gotoxy ( ( short ) 28, ( short ) 3 );
         System.out.printf ( "PESQUISANDO NÚMEROS EM MATRIZ " );
         jht.textcolor ( jht.LIGHTBLUE );
         jht.gotoxy ( ( short ) 29, ( short ) 5 );
         System.out.printf ( "Imprimindo abaixo a Matriz " );
         jht.textcolor ( jht.BLACK );
         for ( i = 0; i < tam; i++ ) {
              jht.gotoxy ( ( short ) 18, ( short ) i + 8 );
              for ( j = 0; j < tam; j++ ) {
                   System.out.printf ( " %3d ", Vet[i][j] );
              }
         }
         jht.Sleep ( ( short ) 800 );
         // /////////////////////////////////////////////////////////////
         do {
              //Entrada através de string
              jht.textcolor ( jht.LIGHTBLUE );
              jht.gotoxy ( ( short ) 20, ( short ) 19 );
              System.out.printf ( "Digite um Número pra pesquisar ==> " );
              jht.textcolor ( jht.LIGHTRED );
              Scanner sc = new Scanner ( System.in );
              String c = sc.next ( );
              // /////////////////////////////////////////////////////////////
              // temos abaixo uma conversão de String para char
              // dentro dos parâmetros da função Aleatorios
              if ( Aleatorios ( c.charAt ( 0 ) ) == 0 ) {
                   Toolkit.getDefaultToolkit ( ).beep ( );
                   jht.Apaga ( ( short ) 19, ( short ) 20, ( short ) 54,
                            ( short ) 59 );
                   continue;
              }
              // /////////////////////////////////////////////////////////////
              //Converte string para inteiro
              n = Integer.parseInt ( c );
              if ( n <= 0 || n > 100 ) {
                   Toolkit.getDefaultToolkit ( ).beep ( );
                   jht.textcolor ( jht.LIGHTBLUE );
                   jht.gotoxy ( ( short ) 28, ( short ) 21 );
                   System.out.printf ( "O Número " );
                   jht.textcolor ( jht.LIGHTRED );
                   System.out.printf ( "%d", n );
                   jht.textcolor ( jht.LIGHTBLUE );
                   System.out.printf ( " não existe na Matriz" );
                   jht.Sleep ( ( short ) 1800 );
                   jht.Apaga ( ( short ) 21, ( short ) 22, ( short ) 20,
                            ( short ) 65 );
                   jht.Apaga ( ( short ) 19, ( short ) 20, ( short ) 54,
                            ( short ) 59 );
                   continue;
              } else {
                   jht.textcolor ( jht.LIGHTBLUE );
                   jht.gotoxy ( ( short ) 18, ( short ) 9 );
                   for ( i = 0; i < tam; i++ ) {
                        for ( j = 0; j < tam; j++ ) {
                            if ( n == Vet[i][j] ) {
                                 jht.textcolor ( jht.LIGHTBLUE );
                                 jht.gotoxy ( ( short ) 21, ( short ) 21 );
                                 System.out.printf ( "O valor " );
                                 jht.textcolor ( jht.LIGHTRED );
                                 System.out.printf ( "%d", n );
                                 jht.textcolor ( jht.LIGHTBLUE );
                                 System.out.printf ( " foi encontrado na linha " );
                                 jht.textcolor ( jht.LIGHTRED );
                                 System.out.printf ( "%d", i );
                                 jht.textcolor ( jht.LIGHTBLUE );
                                 System.out.printf ( " e coluna " );
                                 jht.textcolor ( jht.LIGHTRED );
                                 System.out.printf ( "%d ", j );
                            }
                        }
                   }
              }
              jht.Sleep ( ( short ) 2800 );
              jht.Apaga ( ( short ) 21, ( short ) 22, ( short ) 20,
                        ( short ) 68 );
              jht.Apaga ( ( short ) 19, ( short ) 20, ( short ) 14,
                        ( short ) 60 );
              // /////////////////////////////////////////////////////////////
              jht.textcolor ( jht.LIGHTBLUE );
              jht.gotoxy ( ( int ) 22, ( int ) 19 );
              jht.Sleep ( ( short ) 1800 );
              System.out.printf ( "Por: " );
              jht.textcolor ( jht.LIGHTMAGENTA );
              System.out.printf ( "Samuel Lima" );
              jht.textcolor ( jht.BLACK );
              jht.gotoxy ( ( int ) 22, ( int ) 20 );
              System.out.printf ( "sa_sp10@hotmail.com" );
              jht.Sleep ( ( short ) 1800 );
              jht.textcolor ( jht.LIGHTRED );
              jht.gotoxy ( ( int ) 34, ( int ) 22 );
              System.out.printf ( "MUITO OBRIGADO" );
              jht.getche ( );
              // /////////////////////////////////////////////////////////////
         } while ( true );
     }
}

Nenhum comentário:

Postar um comentário

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