You are on page 1of 30

Programación estructurada y Métodos Numéricos Estructuras de repetición

Programación estructurada y Métodos Numéricos
Estructuras de repetición
Msc. Felipe Andrés Obando Vega
Ingeniero de Control
Universidad de Antioquia
Facultad de Ingeniería
Departamento de Ingeniería Mecánica
Programación estructurada y Métodos Numéricos Estructuras de repetición
Programación estructurada y Métodos Numéricos Estructuras de repetición
Conceptos básicos
Conceptos básicos
Programación estructurada y Métodos Numéricos Estructuras de repetición
Conceptos básicos
Conceptos básicos
Las estructuras de repetición o iteraciones sirven para ejecutar repeti-
damente una o varias instrucciones hasta que se cumple una o varias
condiciones relacionadas por medio de operadores lógicos (AND, OR,
NEG).
Es necesario conocer adecuadamente el concepto de contador y acumu-
lador los cuales se utilizan frecuentemente en estas instrucciones.
Programación estructurada y Métodos Numéricos Estructuras de repetición
Conceptos básicos
Contador
Contador
Es una variable que sirve para contar las ocurrencias de algún evento,
bien sea forma de incrementos o decrementos constantes.
Sintaxis
contador=contador±constante
Ejemplo
Ciclos=Ciclos+1
Marcador=Marcador+1
Sillas=Sillas-1
Programación estructurada y Métodos Numéricos Estructuras de repetición
Conceptos básicos
Acumulador
Acumulador
Un acumulador o sumador es una variable destinada a contener un valor
que se incrementa o decrementa de forma constante o no constante
cada vez que se realiza un ciclo.
Sintaxis
sumador=sumador±variable
Ejemplo
saldo=saldo+deposito
saldo=saldo-retiro
error=error+error_actual
Programación estructurada y Métodos Numéricos Estructuras de repetición
Tipos de estructuras repetitivas o iteraciones
Estructura Mientras_que...haga
Estructura Mientras_que...haga
Programación estructurada y Métodos Numéricos Estructuras de repetición
Tipos de estructuras repetitivas o iteraciones
Estructura Mientras_que...haga
Estructura Mientras_que...haga
Psudocódigo estructura Mientras que ... haga
Entradas: Definición variables de entrada
Variables: Definición de variables auxiliares
Salidas: Definición de variables de salida
Inicio
· · ·
· · ·
Mientras_que Condicion haga
Instrucción 1
Instrucción 2
· · ·
Instrucción n
Fin mientras
· · ·
· · ·
Fin
Programación estructurada y Métodos Numéricos Estructuras de repetición
Tipos de estructuras repetitivas o iteraciones
Estructura Mientras_que...haga
Ejemplo
Calcular e imprimir la suma de 7 números leídos.
Análisis de la solución
Se deben leer uno a uno los números, guardarlos y acumularlos, para esto se
requiere una variable que acumule la suma de cada numéro y otra variable que
determine el número de numero sumados para que cuando sea igual a 7
termine el proceso de lectura.
Programación estructurada y Métodos Numéricos Estructuras de repetición
Tipos de estructuras repetitivas o iteraciones
Estructura Mientras_que...haga
Ejemplo
Algoritmo que imprime la suma de 7 números leídos
Entradas:
Num: Sirve para leer los numeros
Variables:
CNum: Sirve para contar los números que se van leyendo
Salidas:
SNum: Sirve para acumular el valor de cada uno de los números
leidos y al final imprimir el total acumulado
Inicio
CNum=0 ; %Inicializa el contador
SNum=0 ; %Inicializa el acumulador
Mientras_que CNum<7 haga
Lea Num
CNum=CNum+1 ; %Incrementa el contador
SNum=SNum+Num ; %Acumula el número actual
Fin mientras
Imprima SNum
Fin
Programación estructurada y Métodos Numéricos Estructuras de repetición
Tipos de estructuras repetitivas o iteraciones
Estructura Mientras_que...haga
Prueba de escritorio
CNum Num SNum Pantalla
0 30 30
1 10 40
2 2 42
3 7 49
4 15 64
5 100 164
6 50 214
7 214
Programación estructurada y Métodos Numéricos Estructuras de repetición
Tipos de estructuras repetitivas o iteraciones
Estructura Mientras_que...haga
Ejemplo
Ejemplo
Aplicando el método de Euler, calcular:
1 La velocidad del paracaidista despues de haber transcurrido un
periodo de tiempo para un tamaño de paso dado.
La velocidad del paracaidista esta dado por:
v
t+1
= v
t
+ (g −
c · v
t
m
)(t
i+1
−t
i
)
2 La velocidad utilizando la solución analítica
3 El error verdadero absoluto y relativo.
Programación estructurada y Métodos Numéricos Estructuras de repetición
Tipos de estructuras repetitivas o iteraciones
Estructura Mientras_que...haga
Aproximación a la solución del problema mediante el método de Euler
Entradas:
m=masa del paracaidista
c=coeficiente de arrastre del paracaidista
t=tiempo de caida del paracaidista
h=Tamaño de paso
g=Aceleración de la gravedad
Variables
tt: Sirve para almacenar el valor del tiempo actual
Salidas:
V =Velocidad real
V
a
=Velocidad aproximada
E
t
=Error verdadero absoluto
E
r
=Error verdadero relativo
Inicio
Lea m, c, t, h, g
V
a
= 0; %Valor inicial de la velocidad
tt = 0 ; %Valor inicial del tiempo
V =
gm
c
(1 − e

c
m
t
) ; %Velocidad real
Mientras_que tt<=t haga
V a = V
a
+(g −
c · V
a
m
) ∗h ; %Aprox. al valor de la velocidad
tt = tt + h ; %Incrementa el contador de tiempo
Fin mientras
E
t
= V − V
a
E
r
=
E
t
V
Imprima ’La velocidad real es’, V
Imprima ’La velocidad aproximada es’, V
a
Imprima ’El error verdadero absoluto es’, E
t
Imprima ’El error verdadero relativo es’, E
r
Fin
Programación estructurada y Métodos Numéricos Estructuras de repetición
Tipos de estructuras repetitivas o iteraciones
Estructura Mientras_que...haga
Ejercicios propuestos
1 Calcular el valor de N áreas de triángulos, además imprimir la
sumatoria y el promedio de las áreas calculadas.
2 Generar e imprimir la sumatoria de los primeros N números
naturales.
3 Elaborar un algoritmo que calcule el factorial de un número
dado.ejerp3
4 Elaborar un algoritmo que determine el máximo común divisor y el
mínimo común multiplo de dos números dados
5 Elaborar un algoritmo que calcule la raiz cuadrada de un número
positivo dado sin utilizar las funciones que suministra el programa.
6 Elaborar un algoritmo que lea un entero y que determine e imprima
si es un número perfecto n(aquel cuya suma de sus divisores desde
1 hasta n-1 es n, por ejemplo 6=1+2+3)
7 Elaborar un algoritmo que determine si un número dado es primo
Programación estructurada y Métodos Numéricos Estructuras de repetición
Tipos de estructuras repetitivas o iteraciones
Estructura Mientras_que...haga
Ejercicios propuestos
8 Elaborar un algoritmo que genere los N primeros términos de la
sucesión de Fibonacci
1
.
9 Elaborar un algoritmo que realice la conversión de decimal a
binario
2
o viceversa
3
según el tipo de número ingresado. Se le debe
indicar al algoritmo el tipo de conversión a realizar.
10 Elaborar un algoritmo que determine el número mayor y menor de
un conjunto de números dados.
11 Elaborar un algoritmo que lea un número n e imprima todos los
divisores de él.
1
Sobre la sucesión de Fibonacci
2
Ejemplo conversión decimal a binario
3
Ejemplo conversión binario a decimal
Programación estructurada y Métodos Numéricos Estructuras de repetición
Tipos de estructuras repetitivas o iteraciones
Estructura Mientras_que...haga
Ejercicios propuestos
12 Se tiene una competencia ciclistica en la cual los competidores son
clasificados dependiendo del sexo y la edad que tengan. Para ello se ha
grabado un archivo llamado inscritos
4
, en el cual cada registro contiene
los siguientes datos: nombre, sexo y edad. El sexo está codificado así: 0
significa que es mujer y 1 significa que es hombre. Elabore un algoritmo
que procese dicho archivo y que imprima cuantas personas hay inscritas
en cada categoria. Las categorias definidas son:
Cat. Sexo Edad Cat. Sexo Edad
A F <=14 E M <=15
B F >14 y <=20 F M >15 y <=25
C F >21 y <=35 G M >25 y <=40
D F >35 H M >40
4
Descargar
Programación estructurada y Métodos Numéricos Estructuras de repetición
Tipos de estructuras repetitivas o iteraciones
Estructura Para...hasta...haga
Estructura Para...hasta...haga
Programación estructurada y Métodos Numéricos Estructuras de repetición
Tipos de estructuras repetitivas o iteraciones
Estructura Para...hasta...haga
Estructura Para...hasta...haga
Psudocódigo estructura Para...hasta...haga con
incrementos de la variable unitarios
Entradas: Definición variables de entrada
Variables: Definición de variables auxiliares
Salidas: Definición de variables de salida
Inicio
· · ·
· · ·
Para Variable=Valor inicial Incremento=Valor hasta
Valor Final haga
Instrucción 1
Instrucción 2
· · ·
Instrucción n
Fin para
· · ·
· · ·
Fin
Variable se incrementa automáticamente en
una unidad en cada iteración, si el incre-
mento es diferente a uno debe especificarse
así: Para Variable=Valor inicial Incremen-
tos Valor hasta Valor final haga
Programación estructurada y Métodos Numéricos Estructuras de repetición
Tipos de estructuras repetitivas o iteraciones
Estructura Para...hasta...haga
Ejemplo
Enunciado
Un curso esta compuesto por N alumnos y a cada uno de ellos se le
practicaron 3 pruebas. Se pide imprimir o escribir el promedio de las 3
notas para cada uno de ellos con sus datos básicos (Código y nombre),
y la sumatoria y el promedio de las notas de todo el curso.
Análisis de la solución
Se debe leer los datos básicos de cada estudiante además de las 3
notas; los datos básicos son el código y el nombre; tambien se necesita
conocer el valor de N, lo mismo que calcular el promedio de las 3 notas
por cada estudiante y para terminar el proceso se deben acumular los
promedios de cada alumno, con el fin de obtener la sumatoria y el
promedio del curso.
Programación estructurada y Métodos Numéricos Estructuras de repetición
Tipos de estructuras repetitivas o iteraciones
Estructura Para...hasta...haga
Ejemplo
Enunciado
Un curso esta compuesto por N alumnos y a cada uno de ellos se le
practicaron 3 pruebas. Se pide imprimir o escribir el promedio de las 3
notas para cada uno de ellos con sus datos básicos (Código y nombre),
y la sumatoria y el promedio de las notas de todo el curso.
Análisis de la solución
Se debe leer los datos básicos de cada estudiante además de las 3
notas; los datos básicos son el código y el nombre; tambien se necesita
conocer el valor de N, lo mismo que calcular el promedio de las 3 notas
por cada estudiante y para terminar el proceso se deben acumular los
promedios de cada alumno, con el fin de obtener la sumatoria y el
promedio del curso.
Programación estructurada y Métodos Numéricos Estructuras de repetición
Tipos de estructuras repetitivas o iteraciones
Estructura Para...hasta...haga
Algoritmo que determina el promedio de las notas de los estudiantes y del curso
Entradas:
N: Sirve para leer y definir el número de estudiantes para el cual se van a efectuar los cálculos
COD: Sirve para leer cada uno de los códigos de los N estudiantes.
NOM: Sirve para leer el nombre de cada uno de los N estudiantes
Variables:
N1: Sirve para leer la primera nota de cada estudiante
N2: Sirve para leer la segunda nota de cada estudiante
N3: Sirve para leer la tercera nota de cada estudiante
CA: Sirve para contar los estudiantes con sus datos
Salidas:
P: Sirve para calcular e imprimir el promedio de las notas de cada uno de los estudiantes
ACN: Sirve para calcular e imprimir la sumatoria o acumulado de los promedios de los estudiantes del curso.
PT: Sirve para calcular e imprimir el promedio total del curso
Inicio
ACN=0 ; %Inicializa el acumulador de promedios
Lea N
Para CA=1 hasta N haga
Lea COD, NOM
Lea N1, N2, N3
P=(N1, N2, N3)/3
ACN=ACN+P ; %Acumula el valor del promedio del estudiante
Imprima ’Cod: ’, COD, ’Nom: ’, NOM, ’Prom:’, P
Fin para
Imprima ’La sumatoria de las notas del curso es ’, ACN
PT=ACN/CA
Imprima ’El promedio de las notas del curso es ’,PT
Fin
Programación estructurada y Métodos Numéricos Estructuras de repetición
Tipos de estructuras repetitivas o iteraciones
Estructura Para...hasta...haga
Diagrama de Flujo
Programación estructurada y Métodos Numéricos Estructuras de repetición
Tipos de estructuras repetitivas o iteraciones
Estructura Para...hasta...haga
Prueba de escritorio
N CA COD NOM N1 N2 N3 P ACN PT Pantalla
4 1 23 ’María’ 3 2 5 3.3 0 3.44 ’Cod: 23, Nom: Maria, Prom=3.3’
2 94 ’Sandra’ 2 5 5 4 3.3 ’Cod: 94, Nom: Sandra, Prom=4’
3 72 ’Carlos’ 4 4 3.2 3.73 7.3 ’Cod: 72, Nom: Carlos, Prom=3.73’
4 85 ’Andrés’ 3 1.2 4 2.73 11.03 ’Cod: 85, Nom: Andrés, Prom=2.73’
13.766 La sumatoria de las notas del curso
es: 13.766
El promedio de las notas del curso es:
3.44
Programación estructurada y Métodos Numéricos Estructuras de repetición
Tipos de estructuras repetitivas o iteraciones
Estructura Para...hasta...haga
Ejemplo
Ejemplo
Aplicando el método de Euler, calcular:
1 La velocidad del paracaidista despues de haber transcurrido un
periodo de tiempo para un tamaño de paso dado.
La velocidad del paracaidista esta dado por:
v
t+1
= v
t
+ (g −
c · v
t
m
)(t
i+1
−t
i
)
2 La velocidad utilizando la solución analítica
3 El error verdadero absoluto y relativo.
Programación estructurada y Métodos Numéricos Estructuras de repetición
Tipos de estructuras repetitivas o iteraciones
Estructura Para...hasta...haga
Aproximación a la solución del problema mediante el método de Euler
Entradas: m=masa del paracaidista
c=coeficiente de arrastre del paracaidista
t=tiempo de caida del paracaidista
h=Tamaño de paso
g= Aceleración de la gravedad
Variables: Iter: Sirve para calcular el número de iteraciones
tt: Sirve para almacenar el valor del tiempo actual
Salidas: V =Velocidad real
V
a
=Velocidad aproximada
E
t
=Error verdadero absoluto
E
r
=Error verdadero relativo
Inicio
Lea m, c, t, h, g
V
a
= 0 ; %Valor inicial de la velocidad
tt = 0 ; %Valor inicial del tiempo
V =
gm
c
(1 − e

c
m
t
)
Iter =
t
h
; %Calcula el número de iteraciones
Para i=1 hasta Iter haga
V a = V
a
+ (g −
c · V
a
m
)h ; %Aprox. a la velocidad
tt = tt + h ; %Incrementa el contador de tiempo
Fin para
E
t
= V − V
a
E
r
=
E
t
V
Imprima ’La velocidad real es’, V
Imprima ’La velocidad aproximada es’, V
a
Imprima ’El error verdadero absoluto es’, E
t
Imprima ’El error verdadero relativo es’, E
r
Fin
Programación estructurada y Métodos Numéricos Estructuras de repetición
Tipos de estructuras repetitivas o iteraciones
Estructura Para...hasta...haga
Estructura Para...hasta...haga vs estructura Mientras que...haga
Cuando la terminación del ciclo esté controlada por el
resultado de una operación es necesario utilizar la estruc-
tura Mientras en vez de la estructura Para.
La estructura Para es recomendable utilizarla cuando las
instrucciones del ciclo se ejecuten un número fijo de ve-
ces, con una variación predefinida.
Programación estructurada y Métodos Numéricos Estructuras de repetición
Tipos de estructuras repetitivas o iteraciones
Estructura Para...hasta...haga
Ejercicios propuestos
1 Los ejercicios 1, 2, 8, 10, 11y 12 propuestos anteriormente
2 Generar e imprimir la sumatoria de N números leídos.
3 Calcular e imprimir la suma de: 1 +
1
2
+
1
3
+
1
4
+· · · +
1
N
4 Elaborar un algoritmo que lea un entero n y un valor X y que
calcule e imprima el valor de los primeros términos de la siguiente
serie: X −
X
3
3
+
X
5
5

X
7
7
+
X
9
9
−· · ·
5 Escribir un algoritmo que permita ejecutar un conjunto de
instrucciones, preguntándole al finalizar si desea continuar y
cuando la respuesta sea ’n’ o ’N’ se detenga.
6 Elaborar un algoritmo que lea dos números enteros positivos m y
n, y que calcule e imprima el resultado de multiplicar m por n
utilizando unicamente la operación suma.
7 Elaborar un algoritmo que imprima todos los números pares desde
1 hasta n
Programación estructurada y Métodos Numéricos Estructuras de repetición
Tipos de estructuras repetitivas o iteraciones
Estructura Para...hasta...haga
Ejercicios propuestos
Programación estructurada y Métodos Numéricos Estructuras de repetición
Tipos de estructuras repetitivas o iteraciones
Estructura Para...hasta...haga
Ejercicios propuestos
8 Elaborar un algoritmo que imprima todos los números impares
desde 1 hasta n
9 Elaborar un algoritmo que imprima todos los números enteros
desde n hasta 1
10 Imprimir todos los números enteros comprendidos entre m y n y
que tengan un incremento dado, por ejemplo, imprimir los números
enteros comprendidos entre 5 y 30 con un incremento de 3:
5, 8, 11, 14, 17, 20, 23, 26, 29.
Programación estructurada y Métodos Numéricos Estructuras de repetición
Tipos de estructuras repetitivas o iteraciones
Estructura Para...hasta...haga
Ejercicios propuestos
11 Elaborar un algoritmo que lea un entero n y que genere e imprima
todos los números primos desde 1 hasta n Elaborar un algoritmo
que imprima los enteros desde 1 hasta n de la siguiente manera:
1 22 333 4444 55555 · · ·
12 Elaborar un algoritmo que lea un entero n y que calcule e imprima
2
n
utilizando solo la operación de suma.
13 Elaborar un algoritmo que lea dos enteros positivos m y n y que
calcule e imprima el resultado de m
n
utilizando unicamente la
operación de suma.