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

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  PROGRAMA Y ARREGLOS
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: PROGRAMA Y ARREGLOS  (Leído 1,874 veces)
junior108

Desconectado Desconectado

Mensajes: 1


Ver Perfil
PROGRAMA Y ARREGLOS
« en: 25 Abril 2019, 02:14 am »

Bueno lo que pasa es que apenas tengo un mes en la universidad y apenas voy aprendiendo c++ pero me dejaron de tarea que realice un programa donde el usuario escriba un numero y ver si se encuentra en el arreglo, ya llevo rato intentándolo ,no se si alguien tiene una idea de como se hace, pero también quiero aclarar NO QUIERO EL CODIGO, por que quiero aprender, pero si alguien tiene una sugerencia
mi código es este ,al menos así lo tenia planeado ,si alguien me puede ayudar ya que siempre me aparece que no existe.

Código
  1. #include <iostream.h>
  2. #include <math.h>
  3. #include <conio.h>
  4.  
  5. int main()
  6. {
  7. clrscr
  8. int Num[5]={1,3,5,7,100},x,j;
  9.  
  10. cout<< "Ingrese un numero:";
  11. cin>>x;
  12. if (x=Num){
  13.  
  14. cout <<"Existe";
  15. }
  16.  
  17. else
  18. {
  19. cout<< "No existe";
  20. }
  21. getch();
  22. return 0;
  23.  
  24. }
  25.  

MOD: Etiqueta GeSHi corregida.


« Última modificación: 25 Abril 2019, 03:34 am por MCKSys Argentina » En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: PROGRAMA Y ARREGLOS
« Respuesta #1 en: 25 Abril 2019, 03:48 am »

Como estás empezando y parece que quieres aprender te comento un par de cosas más:
  • La librería <iostream> es sin la h.
  • Las librerías que terminan en ".h" son características de C, aunque se pueden usar en C++, las de C++ pierden el ".h" y se añade una "c" al principio. (<math.h> -> <cmath>).
  • La librería <conio.h> no es recomendable usarla ya que no es estándar. Es decir, que no está disponible en todos los compiladores por lo que puede dar errores. Además no es necesaria. En tu caso la incluyes para usar la función <getch>. Esta función se puede sustituir en C++ por <cin.get()> (incluida en <iostream>).
También usas la función <clrsrc()> para limpiar la pantalla. Primero te recomendaría, como estás empezando, no usar funciones fanzy (funciones de adorno) y centrarte en resolver el problema que se propone.
  • En caso de querer limpiar la pantalla tienes <system("cls")> (Windows) y <system("clear")> (Linux) para las cuales solo es necesaria la librería <cstdlib>.

Ahora vamos al problema. Para comprobar si un elemento existe en un array/arreglo/vector hay que recorrer dicho array elemento por elemento. La idea sería la siguiente:
Código:
i := 0
encontrado = false
mientras !encontrado and i < n
    si v[i] == elemento_buscado
        encontrado = true
    fin si
fin mientras

si encontrado
    "El elemento esta en el array"
sino
    "El elemento no esta en el array"
fin si

Usamos una variable de tipo booleana <bool> para determinar si ya hemos encontrado el elemento que buscamos. Recorremos el array y comparamos cada elemento con el elemento buscado, si coinciden, actualizamos el valor de <encontrado> para que termine el bucle. Así una vez encuentra el elemento, no sigue recorriendo el array.
El bucle puede terminar por dos razones: por haber llegado al final del arreglo, lo que podemos traducir como (i == n) siendo <n> el tamaño del array o porque la variable <encontrado> vale <true>. Entonces cuando termina el bucle, comprobamos si la variable <encontrado> vale <true>, si es así es que el elemento existe, sino es que ha terminado el bucle por la otra condición y entonces no existe el elemento.

Te dejo que conviertas ese pseudocódigo a C++ para que practiques y cualquier duda, puedes comentarla aquí.
Suerte :-X


En línea

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


Desconectado Desconectado

Mensajes: 634


youtu.be/0YhflLRE-DA


Ver Perfil
Re: PROGRAMA Y ARREGLOS
« Respuesta #2 en: 25 Abril 2019, 04:28 am »

Hola, en matemáticas hay una función que se llama pertenencia entre conjuntos, es algo similar lo que tienes que hacer pero en C/C++

Código
  1. //Declaración de un arreglo de enteros de 8 elementos
  2. int arreglo[8]={1,2,3,4,5,6,7,8};
  3. //Declaración de una variable lógica inicializada en falso
  4. bool encontrado=false;
  5. //Declaración de las variables: i(índice), buscado(valor buscado)
  6. int i, buscado=1;
  7. //Recorrido del arreglo usando un for, para i desde la posición inicial 0
  8. //Mientras que i sea menor a 8 y a encontrado no se le cambie su valor
  9. for(i=0;i<8 && !encontrado;i++)
  10. if(arreglo[i]==buscado)//Si encontramos el valor buscado dentro del arreglo...
  11. encontrado=true;//Cambiamos el valor de la variable logica encontrado a true
  12. if(encontrado==true)//Si el valor buscado existe dentro del arreglo mostramos por pantalla que el valor se encontró en la posición i del arreglo
  13. cout<<"Encontrado en la posición "<<i<<endl;//Hay que tener en cuenta que reutilice la variable i, los arreglos empiezan desde la posicion 0
  14. else
  15. cout<<"No se encontró dicho elemento"<<endl;
  ;-)
En línea

7w7
codX

Desconectado Desconectado

Mensajes: 65


Es más complejo de lo que crees...


Ver Perfil
Re: PROGRAMA Y ARREGLOS
« Respuesta #3 en: 4 Mayo 2019, 03:37 am »

Beginner Web si sos la de la foto Hola por dios!!
En línea

CalgaryCorpus


Desconectado Desconectado

Mensajes: 323


Ver Perfil WWW
Re: PROGRAMA Y ARREGLOS
« Respuesta #4 en: 4 Mayo 2019, 06:16 am »

Es posible hacer la busqueda sin hacer 2 comparaciones por cada vuelta del ciclo, solo es necesario hacer 1 comparacion, pero se requiere modificar el arreglo.


En línea

Aqui mi perfil en LinkedIn, invitame un cafe aqui
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Programa con arreglos y métodos
Java
Ingrid Chacón 1 1,768 Último mensaje 21 Octubre 2014, 06:31 am
por DarK_FirefoX
¿Repetir programa sin usar while, do-while, for ni arreglos?
Programación C/C++
vosmane22 5 3,755 Último mensaje 17 Abril 2016, 15:06 pm
por HardForo
Ayuda con arreglos sencillos a bidimensional en un programa
Programación C/C++
SlateMark 2 1,730 Último mensaje 12 Agosto 2016, 16:19 pm
por Yoel Alejandro
Mejorar un programa con arreglos
Programación C/C++
mc275 3 1,696 Último mensaje 27 Octubre 2016, 19:51 pm
por MAFUS
ayuda con programa con arreglos porfa
Programación C/C++
ediy elctro 2 2,387 Último mensaje 29 Noviembre 2019, 07:12 am
por ediy elctro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines