sábado, 4 de fevereiro de 2017

Matriz - preenchimento sem repetição

Este código foi criado originalmente em linguagem C
por mim mesmo, e postado no blog de C/C++,
algum tempo atrás.
Como acho isto muito bom, e as vêses muito útil,
resolvi traduzi-lo para o java, e o resultado foi
os mesmos obtidos em C.
A ideia é copiar cada entrada que é inserida na matriz
em num array de inteiro,
este array memoriza os números digitados,
se na próxima entrada for inserido um número que
que ele já possui, com certeza será rejeitado,
mostrando uma mensagem para o usuário como também
os números que já estão presentes.

Veja abaixo imagens do programa em execução:





Veja abaixo o código do programa:



import java.util.Scanner;

public class PROJETO {
public static void main ( String [ ] args ) {
     int i, j;
     int a = 0;
     String tudo = "";
     J jht = new J ( );
     jht.title ( " " );
     jht.Moldura ( ( short ) 1, ( short ) 24, ( short ) 2, ( short ) 78 );
     int [ ][ ] M = new int [ 3 ] [ 3 ];
     int aut, h = 0, x = 0, y = 0;
     int [ ] vx = new int [ 9 ];
     Scanner ent = new Scanner ( System.in );
     for ( i = 0; i < 3; i++ ) {
         for ( j = 0; j < 3; j++ ) {
              do {
                   jht.textcolor ( jht.LIGHTRED );
                   jht.gotoxy ( ( short ) 25, ( short ) 3 );
                   System.out
                   .println ( "MATRIZ - PREENCHIMENTO SEM REPETIÇÃO" );
                   jht.textcolor ( jht.LIGHTBLUE );
                   jht.gotoxy ( ( short ) 20, ( short ) 5 );
                   System.out.println ( "Digite um número para a Posição " );
                   jht.textcolor ( jht.LIGHTRED );
                   jht.gotoxy ( ( short ) 51, ( short ) 5 );
                   System.out.printf ( " [ %d ] [ %d ]", i + 0, j + 0 );
                   jht.textcolor ( jht.BLACK );
                   jht.gotoxy ( ( short ) 64, ( short ) 5 );
                   M [ i ] [ j ] = ent.nextInt ( );
                   h = M [ i ] [ j ];
                   aut = 0;
                   for ( a = 0; a < 9; a++ )
                        if ( h == vx [ a ] )
                            aut = 1;
                   if ( aut == 0 ) {
                        vx [ x ] = h;
                        x++;
                   } else {
                        jht.textcolor ( jht.LIGHTBLUE );
                        jht.gotoxy ( ( short ) 22, ( short ) 7 );
                        System.out.println ( "Número já digitado" );
                        jht.gotoxy ( ( short ) 22, ( short ) 8 );
                        System.out.println ( "Abaixo todos já digitados" );
                        y = x;
                        jht.textcolor ( jht.LIGHTRED );
                        jht.gotoxy ( ( short ) 22, ( short ) 11 );
                        for ( x = 0; x < y; x++ )
                            System.out.printf ( "%3d", vx [ x ] );
                        jht.textcolor ( jht.LIGHTRED );
                        jht.gotoxy ( ( short ) 30, ( short ) 22 );
                        System.out.println ( "PRESSIONE QUALQUER TECLA" );
                        jht.getche ( );
                        //Função Apaga(); é usada para apagar uma linha inteira
                        //ou várias linhas, com início e fim de linhas e colunas
                        jht.Apaga ( ( short ) 7, ( short ) 8, ( short ) 22, ( short ) 43 );
                        jht.Apaga ( ( short ) 8, ( short ) 9, ( short ) 22, ( short ) 50 );
                        jht.Apaga ( ( short ) 11, ( short ) 12, ( short ) 22, ( short ) 52 );
                        jht.Apaga ( ( short ) 22, ( short ) 23, ( short ) 30, ( short ) 54 );
                   }
              }while ( aut == 1 );
         }
     }
     jht.textcolor ( jht.LIGHTBLUE );
     jht.gotoxy ( ( short ) 22, ( short ) 7 );
     System.out.println ( "Veja abaixo a matriz preenchida" );
     jht.gotoxy ( ( short ) 32, ( short ) 9 );
     jht.textcolor ( jht.BLACK );
     for ( i = 0; i < 3; i++ ) {
         if ( i == 1 )
              jht.gotoxy ( ( short ) 32, ( short ) 10 );
         if ( i == 4 )
              jht.gotoxy ( ( short ) 32, ( short ) 11 );
         if ( i == 2 )
              jht.gotoxy ( ( short ) 32, ( short ) 11 );
         for ( j = 0; j < 3; j++ ) {
              System.out.printf ( "%3d", M [ i ] [ j ] );
         }
     }
     jht.Sleep ( ( short ) 1800 );
     jht.textcolor ( jht.LIGHTRED );
     jht.gotoxy ( ( short ) 30, ( short ) 20 );
     System.out.printf ( "Por: " );
     jht.textcolor ( jht.BLACK );
     System.out.printf ( "Samuel Lima" );
     jht.Sleep ( ( short ) 1800 );
     jht.gotoxy ( ( short ) 35, ( short ) 22 );
     jht.textcolor ( jht.LIGHTRED );
     System.out.printf ( "MUITO OBRIGADO" );
}
}

Nenhum comentário:

Postar um comentário

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