Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: yohache en 28 de Julio 2014, 09:21
-
Saludos! estoy siguiendo el curso: "Bases de la programación Nivel I. Pseudocódigo" y actualmente me encuentro en la Entrega N° 10 (CU00111A), en la cual se aborda un "Ejercicio ejemplo con uso de iteración". En el mismo a la hora de plantear los datos necesarios para resolver el problema, se necesitan conocer: int, valor incremental para cada tanteo y Nmáx, número máximo de iteraciónes.
Muy bien, en la parte en que se lleva a cabo el cálculo para int y Nmáx partiendo de la premisa de que el intervalo de búsqueda comprende 10 - 1 = 9 enteros; mi interrogante surge primeramente porque no entiendo de donde plantean las 10000 iteraciones con las cuales llevan a cabo la división: 10000 iteraciones/9 enteros = 1111,11 iteraciones/entero si entre los planteamientos de más arriba plantean (valga la redundacia) no superar la 104 iteraciones, y luego el por qué se realiza: 1 entero/1111,11 iteraciones = 0,0009 enteros/iteración. Y seguidamente por qué realizan: 1 entero/0,001 enteros/iteración = 1000 iteraciones por cada entero.
Básicamente esa seria mi duda, ya que por lo demás en cuanto al procedimiento si lo entiendo. De antemano muchas graciás por la ayuda que me puediesen brindar.
-
Hola, lo primero indicarte que excepto que necesites por motivos específicos el estudio de tablas de decisión, te recomendamos que después de CU00111A pases a CU00116A (saltando las entregas relativas a tablas de decisión).
Sobre la duda que planteas: el valor de 10000 iteraciones es un límite que nos ponemos nosotros mismos. Vamos a estar repitiendo un proceso, pero para evitar que el proceso pueda no tener fin, ponemos un límite de modo que si se alcanza ese límite detenemos la búsqueda.
Decimos que buscamos de 1 a 10, entre 1 y 2 decimos que hay 1 entero, entre 2 y 3 otro entero... así llegamos a que tenemos 9 enteros en los que vamos a realizar la búsqueda.
Al dividir 10000 iteraciones entre 9 enteros obtenemos que por cada entero tendríamos que realizar 1111,11 iteraciones.
Ahora le damos la vuelta al planteamiento y nos preguntamos cuántos enteros le corresponden a cada iteración (esto es algo bastante abstracto, digamos que matemático) y obtenemos que tendríamos 0,0009 enteros por cada iteración.
Este valor (0,0009) lo redondeamos a 0,001 y este es el incremento que vamos a aplicar en cada búsqueda.
Los cálculos no tienen demasiada importancia, lo importante es quedarnos con la idea de que ponemos un número máximo de iteraciones a realizar y en base a ese número máximo establecemos el valor incremental que vamos a usar en cada iteración de la búsqueda.
La idea: si aumentamos el número máximo de iteraciones el valor de int (valor incremental para el tanteo) se hace más pequeño. Si disminuimos el número máximo de iteraciones el valor de int se hace más grande.
Por ejemplo, si el número máximo de iteraciones fuera 9 tendríamos un valor de int = 1, y los valores a probar serían 1, 2, 3, 4, 5, 6, 7, 8, 9 (ó 9, 8, 7, 6, 5, 4, 3, 2, 1)
Al haber elegido un valor de int 0,001 las pruebas serán con 1, 1.001, 1.002, 1.003, 1.004 ... etc. ( o al revés, 9, 8.999, 8.998, 8.997, etc.).
Como he comentado, más que los cálculos concretos lo interesante es quedarse con la idea general. Saludos.