Iteracin - PowerPoint PPT Presentation

1 / 25
About This Presentation
Title:

Iteracin

Description:

Iteraci n. La iteraci n permite modelar problemas en los cuales una secuencia de ... Verificar con dos n meros que sean relativamente primos. Iteraci n while ... – PowerPoint PPT presentation

Number of Views:45
Avg rating:3.0/5.0
Slides: 26
Provided by: pieza
Category:
Tags: iteracin | primos

less

Transcript and Presenter's Notes

Title: Iteracin


1
Iteración
  • La iteración permite modelar problemas en los
    cuales una secuencia de instrucciones se ejecuta
    repetidamente.
  • Pascal brinda mecanismos para expresar iteración
    dependiendo de
  • Un contador de tipo escalar
  • Una expresión lógica

2
Iteración for
for
identificador
expresión

to
expresión
downto
instrucción
do
La instrucción (simple o bloque) que sigue al do
constituye el bloque iterativo. Ni las variables
que aparecen en las expresiones ni la variable de
control deben modificarse en el bloque iterativo.

3
Iteración for
  • program entrada
  • var dato char
  • i integer
  • begin
  • for i 1 to 5
  • do
  • begin
  • read (dato)
  • writeln (,dato,)
  • end
  • readln
  • end.

4
Iteración for
  • program entrada
  • var dato integer
  • i integer
  • begin
  • for i 1 to 5
  • do
  • begin
  • read (dato)
  • writeln (,dato,)
  • end
  • readln
  • end.

5
Iteración for
  • program entrada
  • var dato real
  • i integer
  • begin
  • for i 1 to 5
  • do
  • begin
  • read (dato)
  • writeln (,dato,)
  • end
  • readln
  • end.

6
Iteración while
expresión lógica
while
do
instrucción
La expresión lógica es la condición de corte de
la iteración. La instrucción que sigue al do
(simple o bloque) constituye el bloque iterativo.
Para evitar un bucle infinito en el bloque
iterativo debe modificarse al menos una de las
variables que aparecen en la expresión, de manera
consistente con la inicialización.
7
Iteración while
  • Escribir un segmento de programa que compute el
    máximo común divisor entre dos números positivos
    m y n, tales que m gt n aplicando el algoritmo de
    Euclides
  • n si n es divisor de m
  • mcd (m,n)
  • mcd(n,m div n) en caso contrario

El enunciado ya especifica el algoritmo, se
simplifica el diseño.
8
Iteración while
mcd (m,n) para m y n positivos, m gt n while (m
mod n 0)do begin aux m m n
n aux mod n end
Si el valor inicial de n es divisor de m el bucle
no llega a ejecutarse nunca. La especificación
del problema requiere validar los valores m y
n. Verificar con dos números que sean
relativamente primos.
9
Iteración while
  • Escribir un programa que lea un valor positivo m
    y calcule el menor valor de n tal que
  • 12 22 32 ... n2 gt m

serie 0 n 0 while (serie lt m) do begin
n n1 serie serie sqr(n)
end
Si m es 15 n tiene que ser 4 m es 14 n tiene
que ser 3
10
Iteración while
  • Escribir un programa que lea un valor positivo m
    y calcule el menor valor de n tal que
  • 12 22 32 ... n2 gt m

serie 0 n 0 while (serie lt m) do begin
n n1 serie serie sqr(n)
end
En la lectura es necesario validar m. Como m es
positivo el bucle se ejecuta al menos 1 vez
11
Iteración while
  • Escribir un programa que lea un valor positivo m
    y calcule el menor valor de n tal que
  • 12 22 32 ... n2 gt m

serie 1 n 1 while (serie lt m) do begin
n n1 serie serie sqr(n)
end
El bloque iterativo no se ejecuta si m es 1
12
Iteración while
  • Escribir un programa que lea un valor positivo m
    y calcule el menor valor de n tal que
  • 12 22 32 ... n2 gt m

serie 0 n 0 while (serie lt m) do begin
n n1 serie serie sqr(n)
end
Si m es 15 n tiene que ser 4 m es 14 n tiene
que ser 4
13
Iteración while
  • Escribir un programa que lea un valor positivo m
    y calcule el mayor valor de n tal que
  • 12 22 32 ... n2 lt m

serie 0 n 0 while (serie lt m)do begin
n n 1 serie serie sqr(n)
end n n-1
Incluir comentarios que correspondan al
enunciado.
14
Iteración repeat
expresión lógica
repeat
secuencia
until
15
Iteración repeat
  • Escribir un programa que lea un valor positivo m
    y calcule el menor valor de n tal que
  • 12 22 32 ... n2 gt m

serie 0 n 0 repeat n n1
serie serie sqr(n) until (serie gt m )
La expresión lógica es la condición de corte de
la iteración. El bloque iterativo se ejecuta al
menos una vez.
16
Iteración repeat
  • Escribir un programa que lea un valor positivo n
    y compute la siguiente secuencia, si el número es
    par lo divide por 2, si es impar lo multiplica
    por 3 y le suma 1. Repetir el proceso hasta que
    el número sea menor a 2, en ese caso mostrar el
    número y la cantidad de iteraciones.
  • Si m es 10 la secuencia es
  • 5 16 8 4 2 1
  • Y se muestra 6
  • Si m es 1 la secuencia es
  • 4 2 1
  • Y se muestra 1 3

17
Iteración repeat
iter 0 repeat if (n mod 2 0) then
n n div 2 else n n 3 1
iter iter 1 until (n lt
1) writeln(n,iter)
18
Iteración repeat
  • Escribir un programa que lea una secuencia de
    caracteres hasta leer un . y cuente la cantidad
    de letras a.
  • cont 0
  • repeat
  • read (car)
  • if (car a)
  • then cont cont 1
  • until (car .)

En el bloque iterativo debe modificarse al menos
una de las variables que forma la expresión de
corte, para asegurar que el bucle termina.
19
Iteración repeat
  • Escribir un programa que lea una secuencia de
    palabras separadas por un espacio y terminada con
    . y muestre cada palabra en una línea.
  • cont 0
  • repeat
  • read (car)
  • if (car ) then writeln
  • else write (car)
  • until (car .)

20
Anidamiento
  • Un sensor efectúa controles sobre un equipo una
    cantidad de veces por día. Cada dato relevado se
    representa con un número real. Para cada día los
    datos se registran con el siguiente formato
  • n d1, d2, , dn
  • Cuando no hay más valores sensados se ingresa un
    0 en la cantidad de lecturas.
  • Escribir un programa que muestre para cada día el
    promedio de los valores leídos en ese día.
  • Vamos a asumir que el formato de la lectura es el
    esperado

21
Anidamiento
  • Por ejemplo
  • 5 4.5 6.5 8.7 6.2 3.1 7 0.3 0.5 3.2 6.0 6.5 7.2
    6.5
  • 6 0 0 0.5 0.8 4.2 8.3 1 5.4 5 3.2 4.3 0 0 2.14 0
  • Se lee el 5 y a continuación 5 valores reales
  • Se lee el 7 y a continuación 7 valores reales
  • Se lee el 6 y a continuación 6 valores reales
  • Se lee el 1 y a continuación 1 valor real
  • Se lee el 5 y a continuación 5 valores reales
  • Se lee el 0 y termina

22
Anidamiento
repetir leer n si n gt 0 procesar hasta
n 0
Refinamos la solución
repetir leer n si n gt 0 repetir n
veces leer valor acumular
mostrar hasta n 0
23
Anidamiento
dia 1 repeat read (n) tot 0 if (n
gt 0)then begin for i 1 to n do
begin read (val) tot
tot val end writeln
(dia,dia, ,tot/n) end dia dia
1 until (n 0)
24
La primera versión es un algoritmo muy informal
que nos permitió hallar la estructura del bucle
exterior Aplicamos refinamiento para obtener una
versión más cercana a la solución, reemplazamos
procesar por un algoritmo que indica cómo
procesar. El algoritmo está escrito en un
lenguaje de diseño, menos riguroso que el
lenguaje de programación. En la etapa de diseño
buscamos hallar la estructura de la solución y
decidir cuáles son los mecanismos de control más
adecuados.
25
  • En esta materia el desarrollo de un programa a
    partir de una especificación de requerimientos de
    un problema es un proceso que demanda varias
    etapas
  • Analizar los requerimientos
  • Diseñar un algoritmo
  • Implementar el algoritmo en Pascal
  • Verificar que el programa es correcto, es decir
    corresponde a los requerimientos
  • En las materias que siguen las etapas se
    modificarán.
Write a Comment
User Comments (0)
About PowerShow.com