Autor
|
Tema: PROGRAMA Y ARREGLOS (Leído 2,101 veces)
|
junior108
Desconectado
Mensajes: 1
|
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. #include <iostream.h> #include <math.h> #include <conio.h> int main() { clrscr int Num[5]={1,3,5,7,100},x,j; cout<< "Ingrese un numero:"; cin>>x; if (x=Num){ cout <<"Existe"; } else { cout<< "No existe"; } getch(); return 0; }
MOD: Etiqueta GeSHi corregida.
|
|
« Última modificación: 25 Abril 2019, 03:34 am por MCKSys Argentina »
|
En línea
|
|
|
|
K-YreX
|
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: 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
|
|
|
En línea
|
cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
|
|
|
Beginner Web
Desconectado
Mensajes: 634
youtu.be/0YhflLRE-DA
|
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++ //Declaración de un arreglo de enteros de 8 elementos int arreglo[8]={1,2,3,4,5,6,7,8}; //Declaración de una variable lógica inicializada en falso bool encontrado=false; //Declaración de las variables: i(índice), buscado(valor buscado) int i, buscado=1; //Recorrido del arreglo usando un for, para i desde la posición inicial 0 //Mientras que i sea menor a 8 y a encontrado no se le cambie su valor for(i=0;i<8 && !encontrado;i++) if(arreglo[i]==buscado)//Si encontramos el valor buscado dentro del arreglo... encontrado=true;//Cambiamos el valor de la variable logica encontrado a true 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 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 else cout<<"No se encontró dicho elemento"<<endl;
|
|
|
En línea
|
7w7
|
|
|
codX
Desconectado
Mensajes: 65
Es más complejo de lo que crees...
|
Beginner Web si sos la de la foto Hola por dios!!
|
|
|
En línea
|
|
|
|
CalgaryCorpus
|
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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Programa con arreglos y métodos
Java
|
Ingrid Chacón
|
1
|
1,895
|
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
|
4,042
|
17 Abril 2016, 15:06 pm
por HardForo
|
|
|
Ayuda con arreglos sencillos a bidimensional en un programa
Programación C/C++
|
SlateMark
|
2
|
1,928
|
12 Agosto 2016, 16:19 pm
por Yoel Alejandro
|
|
|
Mejorar un programa con arreglos
Programación C/C++
|
mc275
|
3
|
1,882
|
27 Octubre 2016, 19:51 pm
por MAFUS
|
|
|
ayuda con programa con arreglos porfa
Programación C/C++
|
ediy elctro
|
2
|
2,638
|
29 Noviembre 2019, 07:12 am
por ediy elctro
|
|