SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: I3ender en Viernes 13 de Junio de 2003, 04:26

Título: Re: Obtener el numero mayor entre varios
Publicado por: I3ender en Viernes 13 de Junio de 2003, 04:26
Bueno, soy muy muy nuevo en esto y me estoy leyendo un curso de C++ el caso que llego a un punto que ya me dice de hacer ejercicio pues bien uno de ellos es hcar un array y poder escribir 10 numeros desde el teclado , calcular la suma de esos numeros la mitad y obtener el mayor y menor de los 10 numeros, el programa hasta obtener la mitad del valor lo tengo programado y funcionando pero no se como hacer para que mira cual es el numero mayor supongo que habra que hacer 2 bucles o 1 pero la verda ando muy perdido habe si me podeis echar una mano
Título: Re: Obtener el numero mayor entre varios
Publicado por: JuanK en Viernes 13 de Junio de 2003, 15:06
bueno estas aprendiendo y no deberias hacer estas apreguntas, porque se supone que lo debes resolver tu mismo..intenta hacer lo que se te ocurra, y prueba , pero si te equivocas, pues adivina... vuelve a intentar algo diferente.. asi es como se aprende, mi consejo es que si quieres aprender muy bien a programar , tengas mucha pasciencia y dedicacion, sabes asi te tomes dos fines de semana  en algo realmente sencillo, sera muy productivo porque vas a aprender no solo a hacerlo sino que vas a desarrollar tu mente para programar  cada vez cosas mas complicadas.. termina uno volviendose inteligentisisisimo..
eso es un excelente entrenamiento, yo se porque te lo digo.

Juank
Título: Re: Obtener el numero mayor entre varios
Publicado por: I3ender en Sábado 14 de Junio de 2003, 08:26
if (Num[0] > Num[1])
    a = Num[0];
    else
    a = Num[1];
 if (Num[2] > Num[3])
    b = Num[2];
    else
    b = Num[3];
 if (Num[4] > Num[5])
    c = Num[4];
    else
    c = Num[5];
 if (Num[6] > Num[7])
    d = Num[6];
    else
    d = Num[7];
 if (Num[8] > Num[9])
    e = Num[8];
    else
    e = Num[9];
 if (a > b)
    f = a;
    else
    f = b;
 if (c > d)
    g = c;
    else
    g = d;
 if (f > g)
    h = f;
    else
    h = g;
 if (h > e)
    CalcMayor = h;
    else
    CalcMayor = e;

algo asi es lo que se me ha ocurrido y funcionar funciona pero es muy extenso y no consigo hacer nada con bucles por que aun asi son 9 comparaciones lo que tengo que hacer y paciencia le echo pero despues de 2 horas con lo mismo ya cansa jejejejejeje asias por el consejo:)
Título: Re: Obtener el numero mayor entre varios
Publicado por: dmantil en Sábado 14 de Junio de 2003, 17:43
El algoritmo que has hecho efectivamente funciona y como un comienzo esta muy bien pues lo has logrado solo...Hay muchas formas de encontrar el mayor y si quieres algun algoritmo de busqueda con un bucle intenta una comparcion que pueda ser mas repetitiva, de esa manera luego encuentras el patron y puedes ponerlo en un ciclo que servira no solo para 10 sino para el numero de datos que quieras. El procedimiento que usas es algo así:
*  *  *  *  *  *  *  *  *  *
  /     /      /      /     /
  *     *       *      *      *
      /              /         |    
     *              *           *
                /        
             *  
                               /
                         *
Ves que no tiene un patron facil de encontrar...que tal si usas algo así:

*  * * * *
  /
  *
     /
     *
        /
        *
          /
          *
Ves, el patrón es mas sencillo de encontrar....
Bueno, intenta eso...
Espero te sirva!
Suerte
Título: Re: Obtener el numero mayor entre varios
Publicado por: I3ender en Domingo 15 de Junio de 2003, 06:34
for ( a = 0; a <= 16; a = a + 2)
 for ( x = 1; x <= 17; x = x + 2)
 for ( c = 10; c <= 18; c++)
 if (Num[a] > Num
    Num[c] = Num[a];
 else
    Num[c] = Num


Bueno almenos esta mucho mas simplificado y "funciona" lo pongo entre comillas por que con cierta combinacion no funciona y la verda es que no encuentro explicacion, explico el codigo un poco por que parece algo liado:
bueno como veis el primer bucle me da numeros pares el tercero numeros impares y el tercero de 10 a 18,
lo que hago con esto es que vaya incrementando los num para comparar el primero con el segundo etc etc
0>1=10
2>3=11
4>5=12
6>7=13
8>9=14
---------- Hasta aqui comparo los 10 numeros introducidos desde el teclado
10>11=15
12>13=16
14>15=17
16>17=18 <--- este seria el numero mayor por logica ( o eso creo )
---------- Aqui sigue comparando las comparaciones ya echas ( es muy lioso lo se )

Bueno digo que funciona a medias por que funcionar funciona me da el numero correcto pero si meto ciertas combinaciones como por ejemplo esta 1,3,5,7,9,8,6,4,2,0 me dice que el mayor es el numero "8" y ni idea de por que con otras funcionan , en fin

PD: Estoy aprendiendo y se que esto es de risa estos codigos jejejejej pero me siento bien al ver que almenos funciona:P :hippi:
Título: Re: Obtener el numero mayor entre varios
Publicado por: I3ender en Lunes 16 de Junio de 2003, 02:55
Bueno, por fin he echo algo decente! aun que se que e un ejercicio y es simple yo me siento bien:) os pongo el codigo por si quereis echarle un ojo y darme consejillos de como poder mejorarlo o si es correcta su programacion:)

PD: la verda que era simple de hacer, pero solo era darle vueltas al coco , gracias nuevamente:)
Título: Obtener el numero mayor entre varios
Publicado por: carmamezo en Sábado 21 de Junio de 2003, 12:53
A ver que te parece la modificación que he realizado sobre tu programa... (no hay grandes cambios...)
Si admites un consejo deberías empezar a reducir el número de variables que utilizas (por ejemplo el contador en los bucles "for" puede ser el mismo siempre y cuando no estén anidados), en este tipo de programas no tendrás problemas pero cuando empiezes a utilizar listas, pilas o colas (deberás tener en cuenta el uso de la memoria).
Te felicito porque como primer programa lo has luchado tú sólo y eso vale mucho.:good: