VALIDAR MATRIZ!!!! c++

Iniciado por FabianSek, 28 Mayo 2016, 17:44 PM

0 Miembros y 1 Visitante están viendo este tema.

FabianSek

Buenos dias!!!!


Estoy dandole duro a la programada pero en esta ocasión tengo un problema con una matriz, donde tengo que validar los datos de entrada del usuario y que estos no se repitan unos vez ingresados, por ejemplo:
usuario ingresa letra a,
usuario ingresa letra b
usuario ingresa letra c
usuario ingresa letra a----- Por favor ingrese un elemento diferente(es aqui donde sustituye la letra o elemento ingresado y llena ese espacio con un elemento que no este repetido en la matriz)

la matriz es de elementos char y va todo en un menu while, pero es en este punto del case donde necesito su ayuda.

adjunto el codigo que llevo, muchas gracias.


case 3:
   system ("cls");
   cout<<"INGRESE 12 ELEMENTOS.\n";
   for(j=0;j<4;j++)
   {   
     for(k=0;k<3;k++)
     {
       cin>>matriz[j][k];
   
       for(h=0;h<j;h++)
      {   
        for(i=1;i<k;i++)
        {
         mat[h]=matriz[j][k];
       if (matriz[j][k] =! mat[h])
       {
         cout<<"EL VALOR INGRESADO YA EXISTE EN LA MATRIZ!!!!\n\nINGRESE UN NUEVO VALOR: ";
         cin>>matriz[j][k];   
        }
      }
    }
  }
}
  cout<< "PRESIONE UNA TECLA PARA CONTINUAR ";
  getch();   
  break;




MUCHAS GRACIAS DE ANTE MANO

AlbertoBSD

#1
Es exclusivamente con letras?
Es exclusivamente con UN SOLO caracter?

Pregunto eso por que puedes tener un arreglo Lineal inicializado en 0 con el mismo tamaño de la posible entrada. Estas serian como banderas.

Cualdo pides el dato a insertar evaluas que dicho arreglo este seteado en 0 y si lo esta agregas el dato a la matriz y ese valor del arreglo de validacion lo igualas a 1 y cuando vuelva a caer ese valor, el arreglo ya sera 1 y no entrara al If...

Ejemplo eso estaria dentro de un ciclo despues de que pides el dato agregar.

if(arreglo_no_repetidos[valor_aletorio] == 0) {
matriz[i] = valor_aletorio;
i++;
arreglo_no_repetidos[valor_aletorio] = 1;
}



Ya que suba mi video a youtube te lo dejare copiado por aqui, en caso de que lo quierasa ver.

Saludos!
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

FabianSek

el detalle es el siguiente:

es una matriz de tipo char
char matriz[4][3];

es aqui donde tengo que ver una validacion de comparacion con el parametro de entrada con los datos que hay, para que asi no se repitan los valores, ya sean numericos o letras.


gracias !!!!!

AlbertoBSD

#3
El mismo codigo aplica:


char arreglo_no_repetidos[255] = "";
if(arreglo_no_repetidos[valor_ingresado] == 0) {
matriz[i][j] = valor_ingresado;
i++;
arreglo_no_repetidos[valor_ingresado] = 1;
}


Te dejo el enlace al video que te comente espero y te sirva:

[youtube=640,360]https://www.youtube.com/watch?v=lWMJjQ81ORQ[/youtube]
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW