Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: vjuanan en 08 de Octubre 2013, 02:12

Título: duda CU00110A algoritmo iteraciones curso aprender a programar
Publicado por: vjuanan en 08 de Octubre 2013, 02:12
Buen dia! Soy Juan Vallejos, tengo 18 años, ayer empece el curso. De paso, les digo que esta muy linda la pagina y parece muy calida!

En fin, empece con el curso de "Programacion desde cero", y me surgio una duda, probablemente facil de resolver para ustedes!

El problema es que no entiendo las iteraciones. No me queda en claro su utilidad; Por lo que entendi, su finalidad es repetir un proceso una N cantidad de veces. Mis dudas:

1 El proceso se repite con los mismos valores iniciales? (Es decir, siempre hace lo mismo?)
2 Por otro lado, se explica que segun el N numero de veces (y la complejidad del proceso, la potencia del ordenador, etc), se llegara a un resultado de manera mas rapida o por el contrario, mas lenta. Mi duda es por qué, repitiendo el proceso una menor cantidad de veces, se presupone que se llegara a una solucion mas rapido (es decir, intentando menos veces se asegura que se finalice mas rapido la busqueda, pero no se asegura el hallazgo de una solucion; por el contrario, intentando mas veces, se taradara mas, pero hay mas posibilidades de encontrar la solucion)

Tengo una hipotesis pero no se si sea correcta. ¿Puede ser que lo que se quiere explicar cuando se itinera, sea que el numero de itineraciones consiste en las veces en que el programa va a cambiar los valores iniciales para intentar llegar a un resultado deseado?

De ser asi, no seria bueno que el numero de itineraciones sea infinito? Es decir, que el programa no deje de buscar valores iniciales hasta que llegue a un resultado deseado.


Muchas gracias, seguramente me hice una ensalada! jajaja
Saludos!





Este es el enlace
 https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=143:condicionantes-y-metodos-ii-estrategias-de-resolucion-de-problemas-en-programacion-cu00110a&catid=28:curso-bases-programacion-nivel-i&Itemid=59
Título: Re:Problema con iteraciones
Publicado por: César Krall en 08 de Octubre 2013, 08:34
Hola Juan, trataré de resolver esas dudas para que puedas seguir avanzando con el curso:

1 El proceso se repite N cantidad de veces, pero no siempre hace lo mismo. Los valores "que se prueban" van cambiando. Imagínate que tú me preguntas: "Tengo pensado un número del 1 al 20 ¿Cuál es? Y yo te respondo: 1ª iteración: ¿Es el 1? Respuesta tuya: no 2ª iteración: ¿Es el 2? Respuesta tuya: no 3ª iteración: ¿es el 3? Respuesta tuya: no ... como ves en cada iteración probamos un valor distinto (hacemos algo distinto). No tendría sentido estar repitiendo siempre lo mismo. Las iteraciones terminarían cuando: me digas que he encontrado el número (se cumple la condición de terminación), o cuando llegue a 20 y todas las respuestas sean no.

2 Tienes razón, repitiendo el proceso un número menor de veces se llegaría antes a un resultado. Sin embargo, supón que me dices "Tengo pensado un número del 1 al 20000 ¿Cuál es?" Si te pregunto ¿es el 571? y acierto sólo habré hecho una iteración pero acertar a la primera es improbable. Por eso cuanto mayor sea el número de probabilidades, de media tardaré más tiempo. Es decir, es más fácil comprobar todos los números del 1 al 20 que del 1 al 20000. Por eso es tal como tú dices, con unas pocas pruebas el proceso sería más rápido pero no se aseguraría el hallazgo de una solución. Intentando más veces se tardará más, pero hay más posibilidades de encontrar la solución.

Tu hipótesis es correcta: ¿Puede ser que lo que se quiere explicar cuando se itinera, sea que el numero de itineraciones consiste en las veces en que el programa va a cambiar los valores iniciales para intentar llegar a un resultado deseado?
Efectivamente

Un número de iteraciones infinito en general no es aceptable, porque supone que el ordenador se podría quedar horas, días o semanas buscando... sin saber si realmente se va a llegar a una solución. Lo que se hace es poner un límite: si después de realizadas tantas miles de búsquedas no se ha encontrado el resultado, terminar e informar de que no se encontró la solución.

Nota: te convendrá empezar a hacer pequeños programas con Visual Basic (siguiendo en paralelo el curso de visual basic) cuando llegues a la entrega CU00135 del curso, esto te facilitará el aprendizaje. Saludos!

Título: Re:Problema con iteraciones
Publicado por: vjuanan en 08 de Octubre 2013, 12:29
Mas claro imposible! Muchisimas gracias Cesar ;)