Title: Algoritmos y Programacin Clase 5
1Algoritmos y ProgramaciónClase 5
- Iteración Indefinida DoLoop
- Do WhileLoop
- Do UntilLoop
- DoLoop While
- DoLoop Until
2 Iteración definida Estructura ForNext
For K 1 To 200 Step 5 ......... Next K
3Iteración Indefinida
- La Iteración Indefinida permite repetir un
conjunto de instrucciones un número indefinido de
veces. - La estructura DoLoop permite representar la
iteración indefinida en VB.
4Ejercicio
- Escribir un programa que dibuje la figura
- Compuesta por una matriz de 8x8 caracteres,
blancos o negros como en un tablero de ajedrez
5Ejercicio
- Para cada fila 1..8
- Si la fila es par
- Para cada columna 1..8
- Escriba X cuando la columna sea impar
- Escriba cuando la columna sea par
- Si la fila es impar
- Para cada columna 1..8
- Escriba X cuando la columna sea par
- Escriba cuando la columna sea impar
6Ejercicio
- Private Sub corre_Click()
- For i 1 To 8
- 'lÃnea impar, x en posición par
- If i Mod 2 ltgt 0 Then
- For j 1 To 8
- 'posición columna par?
- If j Mod 2 0 Then
- tablero.Text tablero.Text "X"
- Else
- tablero.Text tablero.Text " "
- End If
- Next j
-
7Ejercicio, cont.
- 'linea par, x en posición impar
- Else
- For j 1 To 8
- 'posición columna impar?
- If j Mod 2 ltgt 0 Then
- tablero.Text tablero.Text "X"
- Else
- tablero.Text tablero.Text " "
- End If
- Next j
- End If
- tablero.Text tablero.Text vbCrLf
- Next i
- End Sub
8Iteración Indefinida
- La Iteración Indefinida repite la ejecución de un
conjunto de instrucciones mientras una condición
dada sea verdadera, o hasta que una condición
dada sea verdadera. - Do WhileLoop ? Mientras que
- Do UntilLoop ? Hasta que
9Representación Estructura Do WhileLoop
10Representación Estructura Do UntilLoop
11Estructura DoLoop Sintaxis 1
Do While exp_lógica Instrucciones Loop
- Iniciar ciclo si exp_lógica True (verdadero)
- Repetir ciclo mientras que exp_lógica True
- Si exp_lógica False (Falso). Continuar con la
instrucción siguiente a LOOP - Instrucciones ejecutadas ngt 0 veces
12Estructura DoLoop Sintaxis 2
Do Until exp_lógica Instrucciones Loop
- Iniciar ciclo si exp_lógica False (falso)
- Repetir hasta que exp_lógica true (verdadera.)
- Terminar si exp_lógica true. Continuar con la
expresión siguiente a Loop. - Las instrucciones se ejecutan 0 ó varias veces
13Estructura DoLoop Sintaxis 3
Do Instrucciones Loop While exp_lógica
- Iniciar
- Ejecutar instrucciones
- Si exp_lógicatrue, repetir instrucciones
- Si exp_lógica false, terminar. Continuar con
la expresión siguiente a Loop. - Las instrucciones se ejecutan 1 ó varias veces
14Estructura DoLoop Sintaxis 4
Do Instrucciones Loop Until exp_lógica
- Ejecutar las instrucciones
- Si exp_lógicafalse, repetir instrucciones
- Si exp_lógicatrue, terminar ciclo. Continuar
con la instrucción siguiente a Loop. - Las instrucciones se ejecutan 1 ó varias veces
15Estructura DoLoop
Do While exp_lógica Instrucciones Loop
Estas dos formas de iteración indefinida
verifican la expresión lógica al inicio del
proceso
Do Until exp_lógica Instrucciones Loop
16Estructura DoLoop
Do Instrucciones Loop While exp_lógica
Estas dos formas de iteración indefinida
verifican la expresión lógica al final del proceso
Do Instrucciones Loop Until exp_lógica
17Equivalencia entre While y Until
Do While exp_lógica Instrucciones Loop
Una estructura While siempre se puede convertir
en una estructura Until y viceversa
Do Until Not(exp_lógica) Instrucciones Loop
18Iteración Indefinida Vs. Iteración Definida
- En la Iteración Indefinida NO se sabe cuántas
veces se repetirá el ciclo. Si se desea saber el
número de veces que se repite el ciclo se
necesita un contador. - En la Iteración Definida SI se sabe de antemano
cuántas veces se repetirá el ciclo - N Int((Fin Inicio)/Incr)1
19Equivalencia entre For y Do
For I A To B Step C Instrucciones Next I
Una estructura For siempre se puede convertir en
una estructura Do
I A Do While IltB Instrucciones IIC Loop
20Ejemplo 1 Iteración Definida
Calcular la suma de los 100 primeros términos de
la sumatoria
Dim K As Integer, S As Double S 0 For K 0 To
99 S S 1 / (1 K 2) Next K Text1.Text S
21Ejemplo 2 Iteración Indefinida
- Calcular S hasta que el último término de la
serie sea menor o igual que 0.0001 - Contar cuántos términos se requieren para
alcanzar ese valor.
22Ejemplo 2 Desarrollo Matemático
k0
k1
k2
k3
k4
k5
k6
Cuándo 1/(1k2) 0.0001?
NO
NO
NO
NO
NO
NO
23Ejemplo 2 Desarrollo Matemático
24Ejemplo 2Interfaz Gráfica
25Ejemplo 2Código del programa
- Dim S As Double, Term As Double
- Dim Error As Double, K As Long
- Error Val(Text1.Text)
- S 0
- K 0
- Do
- Term 1 / (1 K 2)
- S S Term
- K K 1
- Loop While (Term gt Error)
- Text2.Text S
- Text3.Text K
26Ej. Calcular el área bajo la curva
27Integral definida
a,b,n
Inicio
f(x)exp(-0.5x) S0 ?(b-a)/n
i0,n-1,1
xai?
SSf(x)?
S
Terminar
Next i
28Integral indefinida
Inicio
f(x)exp(-0.5x) S0 x0 dSf(x) ?
tol ?
Mientras dSgttol
dSf(x) ?
SSdS xx?
S
Terminar
loop
29Tarea
- Elaborar e implementar un algoritmo que permita
calcular la suma de la serie hasta que el valor
absoluto del ultimo término sumado sea menor o
igual a 1E-6.