Professional Documents
Culture Documents
Fundamentos de Programación 1
SEMINARIO DE ENCUENTRO # 4
Estructuras Repetitivas
TEMAS
Creación de ciclos.
Seguimiento y depuración
de ciclos.
Solución de problemas con
ciclos
CICLOS
Generalmente al hacer referencia a programas de computador, se piensa en tareas repetitivas,
programas o máquinas que realizan millones y millones de cálculos para encontrar un
resultado.
Esto no sería muy útil, pues resultaría más complicado escribir las instrucciones para realizar
todos los cálculos necesarios que realizar los cálculos manualmente, o al menos sin la ayuda
del computador.
CICLOS MIENTRAS
Los ciclos mientras contienen dos partes : una expresión de prueba o condición y el cuerpo del
ciclo como tal. Cuando el flujo del algoritmo alcanza una instrucción mientras, se prueba la
condición, si la condición es verdadera, se ejecuta el cuerpo del ciclo y se continúa la ejecución
Fundamentos de Programación 1
del mismo hasta que la condición se haga falsa. Cuando la condición es falsa, no se ejecuta el
cuerpo del ciclo y el flujo del algoritmo se transfiere a la siguiente instrucción después de la
finalización del ciclo (fin_mientras).
EXPLICACIÓN :
En la sintaxis de la estructura repetitiva mientras, se
incluyen las palabras reservadas mientras, hacer,
SINTAXIS
fin_mientras.
El encabezado de la estructura repetitiva está
mientras (condicion) hacer
determinado por las palabras mientras y hacer, entre
sentencia1 ellas, debe incluirse una expresión de prueba, o
sentencia2
condición, que debe ser una expresión lógica válida, tal
... como ocurre para las estructuras selectivas.
sentenciaz
La palabra reservada fin_mientras indica la finalización
fin_mientras del ciclo.
Entre las palabras hacer y fin_mientras, se incluyen
todas las sentencias que deben ejecutarse cuando la
condición sea verdadera (mientras la condición sea verdadera). Este conjunto de sentencias se
conocen como cuerpo del ciclo ó cuerpo del bucle.
Cuando en el flujo del programa se alcanza el encabezado del ciclo (mientras (condicion)
hacer), se prueba la condición, si esta es verdadera se ejecuta el cuerpo del ciclo, si esta es
Fundamentos de Programación 1
falsa, se transfiere el control de flujo a la siguiente línea después del final del ciclo
(fin_mientras). Cuando se ejecuta el ciclo, y se alcanza la línea fin_mientras, se vuelve al
comienzo del ciclo y se prueba nuevamente la condición. El proceso se repite hasta que la
condición sea falsa y se termine la ejecución del ciclo.
Puesto que al utilizar los ciclos mientras, siempre se prueba la condición, antes de definir si se
ejecuta o no el cuerpo del ciclo, es posible que éste ciclo nunca se ejecute. Esto ocurrirá si la
condición (expresión de prueba) es falsa inicialmente.
EJEMPLO :
EXPLICACIÓN
Algoritmo Mientras01
Variables Este ciclo nunca se ejecuta, porque
entero : i inicialmente la condición ( i < 10 ) es
inicio falsa, pues i tiene exactamente el
i 10 valor de 10, ya que la condición es
mientras (i<10) hacer falsa, no se ejecuta el cuerpo del ciclo
escribir ("El valor de i es : ",i) ni siquiera una vez, aunque la
condición si se probó una vez para
i i + 1 determinar que el cuerpo del ciclo no
fin_mientras se ejecutaría.
fin
PREGUNTAS DE REVISIÓN
Modifique el algoritmo anterior para que el ciclo se ejecute al menos una vez y muestre los
valores de i entre 10 y 20 inclusive.
Luís Fernando González Alvarán Ciclos
3 / 10
POLITÉCNICO COLOMBNIANO JAIME ISAZA CADAVID
Fundamentos de Programación 1
CICLOS INFINITOS
Se producen ciclos o bucles infinitos, cuando la condición siempre es verdadera, con certeza
este no sería el objetivo al diseñar un algoritmo. Este tipo de situaciones deben evitarse a toda
costa.
EXPLICACIÓN
Algoritmo Mientras02
Inicialmente la condición es
Variables verdadera, pues i tiene el valor de
entero : i 10, así que la condición ( i <=10 ) es
inicio verdadera.
i 10 Se entra a ejecutar el cuerpo del
mientras (i<=10) hacer ciclo, así que se muestra el primer
escribir ("El valor de i es : ",i) mensaje y se ejecuta la instrucción i
i i - 1 i – 1, de modo que i tomará el
fin_mientras valor de 9.
fin El ciclo se seguirá ejecutando y la
variable i se seguirá decrementando
ALGORITMO
La variable que se utiliza para establecer la condición del ciclo, se denomina también variable
de control del ciclo debido a que su valor determina si el cuerpo del ciclo se ejecuta o no. La
variable de control del ciclo debe ser:
• inicializada : Es decir, esta variable debe tener un valor antes de que se alcance la
instrucción mientras, de forma que la condición pueda ser evaluada con el valor real de
la variable de control.
Fundamentos de Programación 1
Fundamentos de Programación 1
PREGUNTAS DE REVISIÓN
contador contador + 1
Acumulador: Es una variable que también se suele usar en los bucles y que se incrementa o
decrementa en cada iteración del bucle, pero no en una cantidad constante. Su función es
almacenar valores numéricos que generalmente se suman o multiplican en cada iteración, así
que son valores reales o enteros.
Bandera (interruptor o flag): Es una variable de tipo lógico que sirve como indicador de una
determinada información y que solo puede tomar uno de dos valores que se utilizan para
determinar el valor de verdad de una condición.
Centinela : Mas que una variable, es un valor que puede tomar una variable, que se usa para
controlar un ciclo : El ciclo se ejecutará siempre que la variable no tome el valor centinela.
Normalmente se elige como centinela un valor fuera del rango de datos válidos.
Fundamentos de Programación 1
PRUEBA DE ESCRITORIO
EJEMPLO
Diseñar un algoritmo que muestre en orden descendente todos los números impares
comprendidos en un intervalo definido por el usuario.
ANÁLISIS:
Modelaje
Especificación
Plan de solución
inicio
pedir al usuario los límites del intervalo (a, b)
si los números son diferentes (a <> b) entonces
si a > b entonces
aux a
ab
b aux
Luís Fernando González Alvarán Ciclos
7 / 10
POLITÉCNICO COLOMBNIANO JAIME ISAZA CADAVID
Fundamentos de Programación 1
fin_si
si b mod 2 = 0 entonces
bb-1
fin_si
impar b
utilizar un ciclo controlado por contador que empiece en b y termine en a, decrementándose
de 2 en 2 , para generar los impares en el intervalo y mostrarlos en orden descendente
si_no
no hay un intervalo porque los números son iguales
fin_si
fin
PREGUNTAS ORIENTADORAS
Algoritmo Impares_A_B
Variables
entero : a, b, impar, aux
inicio
escribir ("Límites del intervalo")
escribir ("Primer número = ")
leer (a)
escribir ("Segundo número = ")
leer (b)
si (a <> b) entonces
si (a > b) entonces
aux a
a b
b aux
fin_si
si (b mod 2 = 0) entonces
b b – 1
fin_si
impar b
mientras (impar >= a) hacer
escribir (impar)
impar impar - 2
fin_mientras
si_no
escribir ("Los números son iguales")
fin_si
fin
Fundamentos de Programación 1
PRUEBA DE ESCRITORIO
Fundamentos de Programación 1
EJERCICIOS
1. Diseñe un algoritmo que permita calcular el promedio de los números pares en un intervalo
establecido por el usuario.
3. Se desea calcular la nómina de una empresa con N empleados. Para cada empleado se
conoce su nombre y código. El código corresponde a una letra A para ejecutivos, B para
asesores comerciales y C para el resto del personal. Los ejecutivos tendrán un incremento
del 7.5% de su sueldo anterior, los asesores comerciales tendrán un incremento de 4.5%
sobre su sueldo anterior si su promedio de ventas mensuales es inferior a $ 3500000, pero
tendrán un incremento del 8% si su promedio de ventas mensuales es de al menos $
3500000. Los empleados con código C tendrán un aumento del 8.7% sobre su sueldo
anterior. Se conoce tanto el sueldo anterior para cada clase de empleado así como el
promedio de ventas mensuales para cada uno de los empleados de código B. Al solicitar
esta información no se conoce con certeza la cantidad de empleados de cada tipo.
El programa debe calcular el nuevo sueldo para cada empleado, el total de la nómina
mensual de la empresa y el porcentaje de esta nómina correspondiente a cada uno de los
tipos de empleados.