¡Descarga La composición iterativa y más Apuntes en PDF de Informática solo en Docsity!
Fundamentos de Informática Ingeniería en Tecnologías Industriales Curso 2010-
Grado en Ingeniería en Tecnologías Industriales
Lección 5: Composición iterativa
Grado en Ingeniería de Tecnologías Industriales Fundamentos de Informática
Composición iterativa
- (^) Índice:
- Necesidad de la composición iterativa
- Control del bucle a la entrada (sentencia mientrasQue-- hacer)
- Aplicación a la resolución de problemas
- Control del bucle a la salida (sentencia repetir—hasta que)
- Aplicación a la resolución de problemas
- Control del bucle con contador (sentencia desde—hasta-- hacer)
- Aplicación a la resolución de problemas
Grado en Ingeniería de Tecnologías Industriales Fundamentos de Informática
- (^) Necesidad: Las composiciones secuencial y condicional no son suficientes para resolver una serie de problemas como los que se presentan a continuación. Problema 1 : Calcular el factorial de un número entero y positivo. n! COMPUTADOR n Necesidad de la composición iterativa
Grado en Ingeniería de Tecnologías Industriales Fundamentos de Informática Problema 2: Contar los caracteres de una secuencia que concluye con un punto. No debe incluirse el punto en la cuenta. 20 COMPUTADOR Ejemplo de secuencia. Necesidad de la composición iterativa
Grado en Ingeniería de Tecnologías Industriales Fundamentos de Informática Control del bucle a la entrada
- (^) Una composición iterativa permite aplicar métodos de resolución de problemas mediante el método de inducción. Esta aproximación se puede esquematizar de la forma: “Calcular una primera aproximación S 0 a la solución del problema P” mientrasQue “la última solución obtenida no sea la solución del problema P” hacer “calcular una nueva aproximación Si de su solución, a partir de las soluciones previamente calculadas Si-1,Si-2, … ,S 0 ” finMQ
Grado en Ingeniería de Tecnologías Industriales Fundamentos de Informática
- (^) Los puntos clave del método iterativo son:
- La identificación de una primera aproximación S 0 a la solución del problema P que constituya la base de un proceso inductivo para su resolución. Control del bucle a la entrada
Grado en Ingeniería de Tecnologías Industriales Fundamentos de Informática
- La identificación de una primera aproximación S 0 a la solución del problema P que constituya la base de un proceso inductivo para su resolución.
- Encontrar una ley de recurrencia que permita avanzar desde las soluciones solución parciales ya calculadas S 0 , … ,Si-2,Si-1 hacia una nueva solución Si que esté más próxima que las anteriores a la solución definitiva del problema P.
- Expresar la condición C que determine si la última solución calculada constituye la solución del problema P o si, en caso de no satisfacerse, debe continuar el cálculo de nuevas aproximaciones a la solución del problema. Su negación lógica ¬ C constituye la condición para iterar.
- (^) Los puntos clave del método iterativo son: Control del bucle a la entrada
Grado en Ingeniería de Tecnologías Industriales Fundamentos de Informática
- (^) Esquema básico iterativo:
La sintaxis del esquema que se propone es la
siguiente:
mientras que hacer <instrucción> {<instrucción> } FMq Control del bucle a la entrada
Grado en Ingeniería de Tecnologías Industriales Fundamentos de Informática Ejemplo: Algoritmo de puesta en marcha de un coche
- Poner la llave.
- Asegurarse de que se está en punto muerto.
- Mientras el motor no haya arrancado hacer 3.1 Presionar el acelerador. 3.2 Girar la llave hasta la posición de arranque. 3.3 Si el motor arranca antes de seis segundos, entonces dejar la llave en posición de ignición. 3.4 Si no, parar y esperar diez segundos (un máximo de cinco veces).
- Si el coche no arranca, llamar a la grúa. Aplicación a la resolución de problemas
Grado en Ingeniería de Tecnologías Industriales Fundamentos de Informática
- (^) Problema : Calcular el factorial de un número entero y positivo (<100). n! COMPUTADOR n algoritmo factorial {Pre: número entero y positivo menor que 100 Post: devuelve su factorial} variable número, factorial, i: entero; principio leer(número); i:=1; factorial:=1; {Solución de 0!} mientras que i<= número hacer factorial:=factorial *i; {Ley de recurrencia: i!= (i-1)! *i} i:=i + 1; fMq; escribir(factorial) {factorial=n!} fin. Aplicación a la resolución de problemas
Grado en Ingeniería de Tecnologías Industriales Fundamentos de Informática
- (^) Ejemplo : Diseñar un algoritmo que sume una secuencia de enteros introducida por teclado terminada con un cero 13 3 18 85 11 5 -10 30 33 101 0 devuelve La suma es 289 Algoritmo suma_enteros; { Este algoritmo suma una secuencia de enteros introducida por teclado terminada con un cero Pre: secuencia de enteros terminada en cero Post: suma de la secuencia } Principio .... Fin Aplicación a la resolución de problemas
Grado en Ingeniería de Tecnologías Industriales Fundamentos de Informática algoritmo sumaSecuenciaEnteros { Pre: --- Post: Lee una secuencia de datos enteros que finaliza con un 0 y escribe por pantalla la suma de los datos leídos } variables número: entero; { último número leído } sumaAcumulada: entero; { acumula la suma de datos leídos } principio escribirCadena(pantalla,“Escriba una secuencia de enteros acabada con un cero: ”); sumaAcumulada:=0; { Base de la solución del problema } leerEntero(terminal,número); mientrasQue ¬(número=0) hacer { Ley de recurrencia que actualiza la solución del problema } sumaAcumulada:=sumaAcumulada+número; leerEntero(terminal,número); finMQ escribirCadena(pantalla,“Los datos leídos suman : ”); escribirEntero(pantalla,sumaAcumulada); fin Aplicación a la resolución de problemas
Grado en Ingeniería de Tecnologías Industriales Fundamentos de Informática
- Problema:^ Contar los caracteres de una secuencia que termina con un punto. No debe incluirse el punto en la cuenta. 20 COMPUTADOR Ejemplo de secuencia. algoritmo contar_caracteres {Pre: secuencia de caracteres terminada con un punto Post: devuelve el número de caracteres en la secuencia} variable letra: caracter; contador: entero; principio leer(letra); contador:=0; {Solución del problema trivial} mientras que letra<>’.’ hacer contador:= contador + 1; {Ley de recurrencia} leer(letra) fmq; escribir(contador) fin. Aplicación a la resolución de problemas
Grado en Ingeniería de Tecnologías Industriales Fundamentos de Informática
- Problema:^ Contar los caracteres de una secuencia que termina con un punto. No debe incluirse el punto en la cuenta. 20 COMPUTADOR Ejemplo de secuencia. algoritmo contar_caracteres {Pre: secuencia de caracteres terminada con un punto Post: devuelve el número de caracteres en la secuencia} variable letra: caracter; contador: entero; principio leer(letra); contador:=0; {Solución del problema trivial} mientras que letra<>’.’ hacer contador:= contador + 1; {Ley de recurrencia} leer(letra) fmq; escribir(contador) fin. Aplicación a la resolución de problemas