Elaborador por:
Dr. Sabino Miranda Jiménez Dra. Obdulia Pichardo Lagunas
PRÁCTICA
FUNDAMENTOS DE ALGORITMOS (Estructuras de Repetición II)
Objetivos
El alumno conocerá las estructuras básicas para el diseño de algoritmos 1. Conocerá las estructuras de repetición para el diseño de algoritmos
2. Diseñará sus algoritmos utilizando las estructuras de repetición MIENTRAS y PARA.
REPETICIÓN
Las estructuras de repetición, permiten la ejecución repetida de una lista o secuencia de instrucciones (también llamada bloque de instrucciones). El número de veces que el bloque de instrucciones se ejecutará se puede especificar de manera explícita o a través de una condición que indica cuando se ejecuta de nuevo o cuando no. A cada ejecución del bloque de instrucciones se le conoce como una iteración.
Ciclo PARA (for)
El CICLO PARA permite la ejecución repetida de un conjunto de acciones. El número de veces que el bloque es ejecutado está determinado por los valores que puede tomar una variable contadora (de tipo entero), en un rango definido por un límite inferior (inclusive) y un límite superior (inclusive). Después de ejecutar el bloque de acciones en cada iteración, la variable contadora es incrementada en uno (1) automáticamente y en el momento en que la variable sobrepasa el límite superior el ciclo termina.
El valor final de la variable contadora depende mucho del lenguaje de programación utilizado, por lo tanto, no es recomendable diseñar algoritmos que utilicen el valor de la variable contadora de un ciclo para, después de ejecutar el mismo. De la definición de ciclo para se puede inferir que el bloque de acciones no se ejecuta ninguna vez si el límite inferior es mayor al límite superior.
Elaborador por:
Dr. Sabino Miranda Jiménez Dra. Obdulia Pichardo Lagunas
La forma general del ciclo PARA es la siguiente:
PARA variable := lim inf A lim sup , {INC,DEC}
Hacer
<bloque de instrucciones>
FIN_PARA
Donde variable es la variable contadora del ciclo, la cual debe ser de tipo entero, lim inf es el valor inicial que toma la variable contadora, lim sup es el valor final que puede tomar la variable contadora, {INC,DEC} valor indica el valor que se incrementa al lim_inf en cada iteración finalizada; <bloque de instrucciones> es el bloque de acciones que se ejecuta en cada iteración. En cada iteración, después de ejecutar el bloque, la variable contadora es incrementada en uno o de acuerdo al valor de incremento o decremento proporcionado.
En el editor de diagramas de flujo SMART DFD el ciclo PARA se estructura de la siguiente forma: se agrega el símbolo del ciclo PARA, automáticamente se agregará el símbolo de cierre.
El símbolo de apertura del ciclo PARA consta de tres partes: valor inicial (v_ini), valor final (v_fin) y un incremento (inc). El valor inicial indica el valor en el que iniciará el conteo de repeticiones; valor final indica el máximo número que se debe alcanzar para que se ejecute el
PARA: LIMITE INFERIOR HASTA: LIMITE SUPERIOR,
{INC,DEC}
ENTRADA
BLOQUE DE INSTRUCCIONES
SALIDA
Elaborador por:
Dr. Sabino Miranda Jiménez Dra. Obdulia Pichardo Lagunas
bloque de instrucciones; incremento indica el número que se suma o resta (incremento negativo) al valor inicial al finalizar cada iteración.
EJEMPLO DE USO. El siguiente ciclo PARA indica que se realizará las iteraciones del 1 al 3 y el incremento a “i” es de 1 al final de cada iteración.
para i v_ini, v_fin, inc
cierre
Símbolo de inicio del bloque PARA
Símbolo de cierre del bloque PARA Bloque de instrucciones
Elaborador por:
Dr. Sabino Miranda Jiménez Dra. Obdulia Pichardo Lagunas
EJEMPLOS.
Ejemplo 1. Calcular las primeras tres filas de la tabla de multiplicar de un número dado.
ESPECIFICACIÓN:
Entradas N: Entero (n es el número porporcionado).
Salidas a1, a2, a3 Enteros, (ai es el i-esimo múltiplo del número dado).
Condiciones ai = n * i para 1<= i<= 3
Elaborador por:
Dr. Sabino Miranda Jiménez Dra. Obdulia Pichardo Lagunas Algoritmo
INICIO n: entero a: entero i: entero
escribir(“Ingrese el número a calcularle la tabla de multiplicar:”) leer( n )
PARA i =1 A 3 INC 1 hacer a := n * i
escribir(n) escribir(“ por ”) escribir( i) escribir( “ es ”) escribir( a)
escribir(cambio_de_linea) FIN_PARA
escribir(“Termino...”) FIN
Elaborador por:
Dr. Sabino Miranda Jiménez Dra. Obdulia Pichardo Lagunas
Diagrama de Flujo en la sintaxis DFD
Ilustración 1. Cálculo de las primeras 3 filas de la tabla de multiplicar proporcionada
Ejercicio2. Realizar un diagrama en la aplicación DFD el cual calcule las tablas de multiplicar. Las tablas que calculará serán proporcionadas por el usuario como entrada tabla de inicio y tabla final
Elaborador por:
Dr. Sabino Miranda Jiménez Dra. Obdulia Pichardo Lagunas
Ilustración 2. Cálculo de Tablas de multiplicar con tabla inicial y tabla final
Ejercicios Propuestos
Realizar los diagramas de flujo para resolver los siguientes problemas utilizando la estructura para (For).
1. Calcular el factorial de un número proporcionado por el usuario. El factorial de un número esta de finido como sigue.
n! = n * (n-1) *(n-2) *…. 3 *2 *1 para n >= 0 0! = 1
Por ejemplo:
4! = 4 * 3 * 2 * 1 = 24
Elaborador por:
Dr. Sabino Miranda Jiménez Dra. Obdulia Pichardo Lagunas
2. Calcular las Temperaturas correspondientes de grados Celsius a grados Fahrenheit entre los rangos proporcionados por el usuario (rango inicial y rango final y salto entre rangos) en grados Celsius.
Por ejemplo: el usuario captura los rangos de 0 a 20 con un salto de 10 la salida sería como la siguiente:
Resultados:
0 Celsius = 32 Fahrenheit 10 Celsius = 50 Fahrenheit 20 Celsius = 68 Fahrenheit
Nota. La conversión de grados Celsius a grados Fahrenheit se obtiene multiplicando la temperatura en Celsius por 1,8, esto es (9/5), y sumando 32:
Temp. (°F) = 1,8 x Temp. (°C) + 32