CLASE #3
OBJETIVOS
Iteración definida.
Acumulador y Contador.
3-1
•
Repaso semanas #1, #2.
•
Estructura de iteración definida FOR
•
ACUMULADOR y CONTADOR, y sus
aplicaciones.
 Algunos ejemplos: sumatoria (Σ),
productoria (), factorial (!).
3-2
Repaso semanas #1, #2
•
Presentación del curso. Breve bosquejo
de la evolución de los computadores.
•
Algoritmo y su Representación.
 Estructuras automáticas básicas.
Si (Expresión lógica)
Acción1
De lo contrario
Acción2
SELECCIÓN LÓGICA
Fin Si
_________________
3-3
Solución 1 al problema “mayor de tres
valores A, B, C”
Si (A > B)
Si ( A > C)
Escribir A “ es el mayor”
Fin Si
Fin Si
Si (B > A)
Si (B > C)
Escribir B “ es el mayor”
Fin Si
Fin Si
Si (C > A)
• Implica utilizar 6
estructuras de
selección lógica.
• Cada Si debe cerrarse
con Fin Si
Si (C > B)
Escribir C “ es el mayor”
Fin Si
Fin Si
3-4
Solución 2 al problema “mayor de tres
valores A, B, C”
Si (A > B Y A > C)
Escribir A “ es el mayor”
Fin Si
Si (B > A Y B > C)
Escribir B “ es el mayor”
Fin Si
Si (C > A Y C > B)
Escribir C “ es el mayor”
Fin Si
• Implica utilizar 3
estructuras de
selección lógica.
• Cada Si debe cerrarse
con Fin Si
•Emplea una expresión
lógica compuesta.
3-5
Solución 3 al problema “mayor de tres
valores A, B, C”
Si (A > B Y A > C)
Escribir A “ es el mayor”
De lo contrario
Si (B > A Y B > C)
Escribir B “ es el mayor”
De lo contrario
Escribir C “ es el mayor”
Fin Si
Fin Si
• Implica utilizar sólo 2
estructuras de
selección lógica.
• Cada Si debe cerrarse
con Fin Si
•Emplea expresiones
lógicas compuestas.
3-6
Solución 4 al problema “mayor de tres
valores A, B, C”
Si (A > B Y A > C)
Escribir A “ es el mayor”
De lo contrario Si (B > A Y B > C)
Escribir B “ es el mayor”
De lo contrario
Escribir C “ es el mayor”
Fin Si
• Utiliza sólo 1
estructura de selección
lógica.
• Cada ElseSi debe ir en
un renglón.
•Emplea una expresión
lógica compuesta.
3-7
ESTRUCTURA PARA (FOR)
Para i = 1, <= 10, +1
Pseudocódigo
Escribir i
Fin Para
Diagrama de
caja
Para i = 1, <= 10, +1
Escriba i
• La instrucción PARA
permite implementar la
estructura de iteración
• Se ejecuta un conjunto de
instrucciones cierto número
de veces.
• Se continúa con la
instrucción siguiente cuando
se agota el ciclo
For i = 1 To 10 Step 1
VBA
TextBox1 = TextBox1.text & i
Next i
3-8
ESTRUCTURA PARA (FOR)
Variable
de control
Comienzo y
fín del ciclo
iterativo
Condición de la iteración
(no necesariamente <=)
PARA variable = valorInicial, <= valorFinal, variacion
……….
FIN PARA
Instrucciones que se
ejecutan en cada
iteración
Variación de la
variable de control
en cada iteración
3-9
Sintaxis FOR … NEXT en VBA
Valor inicial de la
variable de control
Palabra
clave del
lenguaje
Valor final de la
variable de control
FOR J = 1 To 200 Step 10
……….
Variación de la
variable de control
Next J
Comienzo y
fín del ciclo
iterativo
Nombre de la
variable de control
3 - 10
Sintaxis FOR … NEXT en VBA
For variable = valorInicial To valorFinal Step Variación
[Acción 1]
[Acción 2]
…
[Acción n]
Next variable
• variable: índice de iteración
• Cuando variable está por
fuera del intervalo [valorInicial
– valor Final] el proceso
termina.
• Variación: es el incremento o
decremento de variable. Si la
variación es +1, puede omitirse
esta parte
• valorInicial, valorFinal: pueden
ser expresiones enteras o reales.
3 - 11
Ejemplo #1
Elaborar un algoritmo para calcular la raíz cuadrada
de los primeros 100 números naturales pares
INICIO
Para i = 2, <= 200, +2
Escribir √i
FIN
Diagrama de
caja
Private Sub CommandButton1_Click()
Dim i As Integer
For i = 2 To 200 Step 2
TextBox1 = TextBox1 & i & ":" & vbTab & Sqr(i) & vbCrLf
Next i
End Sub
VBA
3 - 12
Ejemplo #1
• Recordar que para concatenar
(pegar) dos textos en VBA se
usa el operador &
• vbTab, vbCrLf son constantes
string de VBA y se usan para
dar formato a los textos
• Al cuadro de texto se le deben
cambiar las propiedades
Multiline a true y ScrollBars a
vertical para que aparezcan los
resultados como en la figura
3 - 13
Ejemplo #2
Una persona invierte un capital C al r% anual, en
una cuenta de ahorros, durante n años. Elaborar
un algoritmo que calcule el saldo año por año
teniendo en cuenta la siguiente fórmula:
Donde:
s = C*(1 + r)n
n = número de años
C = capital invertido
r = tasa de interés anual
s = cantidad de depósito al
final del enésimo año.
3 - 14
Ejemplo #2
En pseudocódigo:
INICIO
Leer C, n, r
r = r/100
Para i: 1, <=n, +1
s = C*(1 + r)i
Escribir i “: “ s
Fin Para
FIN
3 - 15
Ejemplo #2
En VBA
Private Sub botonCalcular_Click()
Dim C As Single, n As Integer, r As Single, S As Single
'Se leen las variables de entrada
C = Val(textC)
n = Val(textN)
r = Val(textR)
r = r / 100 'Por ser porcentaje
For i = 1 To n Step 1
S = C * (1 + r) ^ i
'Se muestra el saldo para cada año
textResultados = textResultados & i & ":" & vbTab & S & vbCrLf
Next i
End Sub
Private Sub botonSalir_Click()
End
End Sub
3 - 16
Ejemplo #2
Resultados
3 - 17
CONTADOR
Un contador se utiliza para determinar cuantas veces
se cumple una determinada condición dentro de un
proceso iterativo.
INICIO
Ejemplo: diseñar un
algoritmo para leer N
notas y decir cuantos
estudiantes ganaron
Leer N
C=0
Para i = 1, <= N, +1
Leer nota
nota>=3
Si
No
C=C+1
Escribir C “ ganaron”
FIN
3 - 18
ACUMULADOR
Un acumulador se utiliza para almacenar el resultado
de una acumulación (sumas o productos) dentro de un
proceso iterativo.
Ejemplo: diseñar un
algoritmo para mostrar la
sumatoria de los
primeros M números
enteros positivos
INICIO
Leer M
S=0
Para i = 1, <= M, +1
S=S+i
Escribir “Sumatoria ” S
FIN
3 - 19
Esquema general
Contador
variable = variable + 1
Acumulador
variable = variable + ó * X
En ambos casos, como en toda
operación de asignación,
primero se evalúa el lado
derecho, y el resultado se
asigna al lado izquierdo
3 - 20
Ejemplo #3
Diseñar un algoritmo para leer las notas de Q
estudiantes y mostrar el promedio de los que ganaron
INICIO
Leer Q
C=0
S=0
Para i:1, <=Q, +1
Leer nota
Si (nota >= 3)
C = C+1
S = S+nota
Fin Si
Fin para
Prom = S/C
Escribir “El promedio de los que ganaron fue: ” Prom
FIN
3 - 21
Ejemplo #4
Diseñar un algoritmo para mostrar
los n primeros términos de la
siguiente serie y su sumatoria
1 4 9 16 25
, , ,
,
,...
3 5 7 9 11
INICIO
Leer n
S=0
Para i:1, <=n, +1
num = i2
den = (2*i+1)
T = num/den
S = S+T
Escribir T
Fin Para
Escribir “La sumatoria es: ” S
FIN
3 - 22
Ejemplo #5
Diseñar un algoritmo para calcular el factorial de un
número
INICIO
Leer X
Fact = 1
Para i:1, <=X, +1
Fact = Fact*i
Fin Para
Escribir “El factorial de ” X “ es ” Fact
FIN
3 - 23
Ejemplo #6
Diseñar un algoritmo para mostrar
los h primeros términos de la
siguiente serie y su productoria

2
X
,
4
X
2
,
6
X
3
,
8
X
4
,...,
INICIO
Leer h, X
S=1
Para i:1, <=h, +1
num = (-1)i*2i
den = Xi
T = num/den
S = S*T
Escribir T
Fin Para
Escribir “La productoria es: ” S
FIN
3 - 24
Ejemplo #7
Diseñar un algoritmo para determinar si un número A
es primo o no
INICIO
Leer A
nd = 0
Para i : 1, <= A, +1
Si A % i = 0
nd = nd +1
Fin Si
Fin Para
Si nd > 2
Escribir “No es primo”
De lo contrario
Escribir “Si es primo”
Fin Si
FIN
3 - 25
Descargar

Clase 03 - UN Virtual