Hola Stiv,
me asalta una duda... ¿por qué el nombre está en una matriz?
No tiene sentido. Lo tendría si una cedula de identidad estuviera asociada a varios nombres de personas, pero eso no es posible.
Una cédula --> una persona ---> varios localesUna cédula estará asociada a una ÚNICA persona. Y esta persona si puede tener VARIOS locales asociados. Así que la información de los números de locales si tiene sentido que esté almacenado en una matriz, pero no los nombres de personas.
Suponiendo que "número de locales" se refiera al número identificador de distintos locales, en este caso son datos múltiples asociados a una única persona, por eso tiene sentido que esté en una matriz:
Juan tiene el local L25, y el local L67, y también el local L99.Si en cambio ese dato se refiere a la "cantidad de locales" que tiene dicha persona, entonces NO tiene sentido que esté guardado en una matriz, ya que se trataría de un dato único, y bastaría con un simple vector
Juan tiene 3 localesA no ser que yo haya malinterpretado algo, de momento vamos a suponer que tenemos dos vectores y una matriz.
Muchas veces, para decidir que lógica seguir en un programa, ayuda mucho hacer un dibujo (con papel y lápiz) de los datos con los que hay que trabajar.
Aquí en el foro no podemos dibujar, pero podemos intentar hacer una representación.
Vamos a representar los vectores, poniendo en azul el dato almacenado y en rojo la posicion que ocupa dentro del vector
Vector Cédulas IdentidadVector Nombres- (0) Juan Garcia
- (1) Maria Santos
- (2) Lucas Ramirez
Y lo mismo con la matriz
Matriz Locales- (0)(0) L01, (0)(1) L03, (0)(2) L04
- (1)(0) L12, (1)(1) L13, (1)(2) L14
- (2)(0) L45, (2)(1) L47, (2)(2) L49
Ya tenemos la información representada.
Ahora vamos a suponer que
Maria Santos quiere visualizar sus datos en pantalla.
Para ello, le introduce al programa su número de cédula que es el
0020Lo que el programa tiene que hacer ahora es recoger ese número de cédula y recorrer el vector de
Cédulas Identidad para comparar cada cédula almacenada, con la cédula que el usuario le ha indicado.
Si encuentra una cédula que coincida, deberá guardar en una variable el numero de posicion donde haya encontrado la coincidencia.
Es decir, para la cédula
0020, el programa encontrará una coincidencia en la posición
(1) del vector.
Pues este número de posicion se ha de guardar en una variable, por ejemplo en
nPosAhora, con
nPos, quien recordamos ahora alberga el valor
(1), ya podemos acceder al resto de datos de
Maria SantosnPos nos dará el nombre correcto del vector
Nombres(1) Maria SantosY también nos dará los locales de la matriz
Locales, solo que en este caso necesitaremos otro bucle.
Si entendemos la matriz como si fuera una tabla,
nPos nos estaría indicando la
fila y necesitariamos un bucle para recorrer las
columnas y así obtener los tres locales que Maria tiene asociados.
(1)(0) L12,
(1)(1) L13,
(1)(2) L14Bien, pues esa es la lógica que hay que seguir.
Tu código ha de:
- Pedir número cédula al usuario.
- Ver si la cédula introducida existe en el vector de Cédulas.
- Si existe, guardar en una variable la posición donde se ha encontrado la cédula.
- Con esa posicion, mostrar el resto de datos, nombre y locales, ya que ocupan la misma posicion en sus respectivos vectores y matriz.
- En el caso de la matriz Locales, se necesitará un bucle para recorrer la
fila de datos que encontraremos en esa posición.
Intenta escribir un código que cumpla esto. Haz lo que puedas, si no te sale, publica aquí lo que hayas escrito y entre todos te ayudamos a completarlo.
Un saludo.