elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ARREGLOS: encontrar la posicion de un elemento en un vector en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ARREGLOS: encontrar la posicion de un elemento en un vector en C  (Leído 2,077 veces)
gremlin

Desconectado Desconectado

Mensajes: 9


Ver Perfil
ARREGLOS: encontrar la posicion de un elemento en un vector en C
« en: 15 Octubre 2019, 23:23 pm »

Hola, buenas tardes!!
Soy muy nueva en programación, estoy aprendiendo a programar en C, y me estan enseñando vectores.
Tengo un ejercicio con dos vectores en el que la posicion de un elemento en uno de los vectores va a ocupar la misma posicion en el otro. Es decir, si X dato está en el vector1 en la posición 1 entonces el dato que busco en el vector2 va estar en la misma posición (en 1).

Mi consulta es: como hago para que, segun el dato que se ingrese, poder encontrar la posición que ocupa un dato en un vector?

No sé si estoy siendo clara con mi consulta.. Desde ya muchas gracias!
(y perdón si la pregunta es muy  tonta)


En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: ARREGLOS: encontrar la posicion de un elemento en un vector en C
« Respuesta #1 en: 15 Octubre 2019, 23:46 pm »

No sé si te he entendido bien. Lo que yo entiendo es que tienes dos vectores por ejemplo:
Código:
v1 = {0,2,4,6,8}
v2 = {1,3,5,7,9}
Y por ejemplo te piden buscar el correspondiente en v2 al 4 en v1. El 4 en v1 está en la posición 2 (te recuerdo que los vectores empiezan a contar en la posición 0) entonces el correspondiente sería el elemento 2 de v2, que sería el 5.
Para ello tendrás una variable para el elemento que estás buscando (el 4 en este ejemplo) y un contador que determine su posición. Entonces vas recorriendo el primer vector y vas comparando cada elemento con el que buscas y vas incrementando el contador hasta encontrarlo. Una vez encontrado, recoges el valor de v2 que está en la posición que indica el contador.

Código:
v1 : array de enteros
v2 : array de enteros
INICIO
    PEDIR elementoBuscado // 4 en este caso
    resultado := -1 // aqui estara el resultado si lo encontramos. Si no lo encontramos se quedara con el -1
    i := 0
    MIENTRAS elementoBuscado != v1[i] && i < v1.longitud HACER // la i se va incrementando hasta que v1[i] coincida con 4 o hasta que se acabe v1
        i := i + 1
    FIN MIENTRAS
    // aqui llegamos cuando encontramos el elemento que buscamos, 4 en este caso, o cuando llegamos al final de v1
    SI elementoBuscado == v1[i] HACER // si esto se cumple sera que hemos encontrado el elemento. Si no se cumple es que el elemento buscado no existe y entonces el resultado sera un -1 o el valor que tu elijas para saber que el elemento no se ha encontrado
        resultado = v2[i] // i es el contador que nos dice la posicion del elemento. En este caso i valdria 2 y entonces resultado valdria 5
    FIN SI
FIN
Esto que te he puesto sería un algoritmo (los pasos) para resolver el ejercicio. No está en C por lo que si lo copias tal cual no te va a funcionar. Tienes que leer el algoritmo e intentar entenderlo. Cuando ya lo tengas tienes que hacerlo en C a tu manera.
Si tienes problemas para entenderlo o para escribirlo en lenguaje C puedes exponer los problemas o dudas que tengas y si tienes algo de código hecho puedes ponerlo entre etiquetas de Código GeSHi para que se vea así:
Código
  1. #include <stdio.h>
  2.  
  3. int main(){
  4.  
  5. }


En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
gremlin

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: ARREGLOS: encontrar la posicion de un elemento en un vector en C
« Respuesta #2 en: 16 Octubre 2019, 00:17 am »

.
« Última modificación: 16 Octubre 2019, 00:20 am por gremlin » En línea

gremlin

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: ARREGLOS: encontrar la posicion de un elemento en un vector en C
« Respuesta #3 en: 16 Octubre 2019, 00:19 am »

No sé si te he entendido bien. Lo que yo entiendo es que tienes dos vectores por ejemplo:
Código:
v1 = {0,2,4,6,8}
v2 = {1,3,5,7,9}
Y por ejemplo te piden buscar el correspondiente en v2 al 4 en v1. El 4 en v1 está en la posición 2 (te recuerdo que los vectores empiezan a contar en la posición 0) entonces el correspondiente sería el elemento 2 de v2, que sería el 5.
Para ello tendrás una variable para el elemento que estás buscando (el 4 en este ejemplo) y un contador que determine su posición. Entonces vas recorriendo el primer vector y vas comparando cada elemento con el que buscas y vas incrementando el contador hasta encontrarlo. Una vez encontrado, recoges el valor de v2 que está en la posición que indica el contador.

Código:
v1 : array de enteros
v2 : array de enteros
INICIO
    PEDIR elementoBuscado // 4 en este caso
    resultado := -1 // aqui estara el resultado si lo encontramos. Si no lo encontramos se quedara con el -1
    i := 0
    MIENTRAS elementoBuscado != v1[i] && i < v1.longitud HACER // la i se va incrementando hasta que v1[i] coincida con 4 o hasta que se acabe v1
        i := i + 1
    FIN MIENTRAS
    // aqui llegamos cuando encontramos el elemento que buscamos, 4 en este caso, o cuando llegamos al final de v1
    SI elementoBuscado == v1[i] HACER // si esto se cumple sera que hemos encontrado el elemento. Si no se cumple es que el elemento buscado no existe y entonces el resultado sera un -1 o el valor que tu elijas para saber que el elemento no se ha encontrado
        resultado = v2[i] // i es el contador que nos dice la posicion del elemento. En este caso i valdria 2 y entonces resultado valdria 5
    FIN SI
FIN
Esto que te he puesto sería un algoritmo (los pasos) para resolver el ejercicio. No está en C por lo que si lo copias tal cual no te va a funcionar. Tienes que leer el algoritmo e intentar entenderlo. Cuando ya lo tengas tienes que hacerlo en C a tu manera.
Si tienes problemas para entenderlo o para escribirlo en lenguaje C puedes exponer los problemas o dudas que tengas y si tienes algo de código hecho puedes ponerlo entre etiquetas de Código GeSHi para que se vea así:
Código
  1. #include <stdio.h>
  2.  
  3. int main(){
  4.  
  5. }



Genial, me entendiste bien! Muchas gracias, me re sirvió!   :D
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines