FUNDAMENTOS DE PROGRAMACIÓN INGENIERÍA EN SISTEMAS COMPUTACIONALES M.S.C. RAÚL MORA REYES
ESTRUCTURAS ITERATIVAS
M.S.C. Raúl Mora Reyes
CLASIFICACIÓN
Controladas por: DATO CENTINELA TAREA CONTADOR
CICLO CONTROLADO POR DATO CENTINELA
M.S.C. Raúl Mora Reyes
CARACTERÍSTICAS El dato centinela es proporcionado por el usuario, en respuesta a una pregunta o selección de un menú. El contenido del ciclo se repite hasta que el dato centinela haga que la condición del ciclo deje de cumplirse. Puede realizarse con el ciclo Hacer-Mientras (while) y Repetir-Hasta (do..while). Ya que requiere interacción con el usuario, se utiliza en la clase principal, en el método main( ), y no se recomienda utilizarlo dentro de las otras clases que conforman la lógica de la aplicación. M.S.C. Raúl Mora Reyes
EJEMPLO
Queremos que el último ejercicio que se realizó en la presentación de “Estructuras de Selección”, el usuario pueda calcular más de una venta, cada vez que ejecuta el programa; debemos incluir la interacción con el usuario en un ciclo controlado por dato centinela.
M.S.C. Raúl Mora Reyes
while
do while
M.S.C. RaĂşl Mora Reyes
ANTES DE UTILIZAR EL CICLO
Clase Principal M.S.C. Raúl Mora Reyes
CON CICLO WHILE
Clase Principal M.S.C. Raúl Mora Reyes
CON CICLO DO-WHILE
Clase Principal M.S.C. Raúl Mora Reyes
CICLO CONTROLADO POR TAREA
M.S.C. Raúl Mora Reyes
CARACTERÍSTICAS El contenido del ciclo se repite hasta que se logra cumplir una tarea. Puede realizarse con el ciclo Hacer-Mientras (while) y RepetirHasta (do..while). Este tipo de ciclo se utiliza dentro de los métodos de una clase ya que se realiza sin la intervención del usuario.
M.S.C. Raúl Mora Reyes
1.DESCRIPCIÓN DEL PROBLEMA
Contamos con dos ahorros (ahorro mayor y ahorro menor), los cuales iremos incrementando cada semana con un monto diferente a cada una, el monto menor se adicionará al ahorro mayor y el monto mayor al ahorro menor. Se desea saber cuantas semanas deben pasar para que el ahorro menor supere al ahorro mayor.
M.S.C. Raúl Mora Reyes
2.DEFINICIÓN DE LA SOLUCIÓN DATOS DE ENTRADA Ahorro Mayor (ahorroMay) Ahorro Menor (ahorroMen) Monto Mayor (montoMay) Monto Menor (montoMen)
DATOS DE SALIDA
Semanas de ahorro (semanas)
M.S.C. Raúl Mora Reyes
3.DISEÑO DE LA LÓGICA Ahorros Diagrama de Clase
ahorroMay : float ahorroMen : float montoMay : float montoMen : float
semanas( ) : int
M.S.C. Raúl Mora Reyes
Diagrama de Flujo
M.S.C. RaĂşl Mora Reyes
4.DESARROLLO DE LA CODIFICACIÓN Clase Ahorros
M.S.C. Raúl Mora Reyes
Clase Principal M.S.C. RaĂşl Mora Reyes
5.DEPURACIÓN Y PRUEBAS
M.S.C. Raúl Mora Reyes
NOTA 1 En el ejercicio anterior se introduce dos conceptos importantes: Contador: es una variable que incrementa (o decrementa) su valor en tantos de 1. Acumulador: lo diferencia del contador en que sus incrementos son diferentes de 1 y pueden ser variables. En en el ejemplo la variable “contador” funciona como Contador y “ahorroMay” y “ahorroMen" como Acumuladores M.S.C. Raúl Mora Reyes
NOTA 2 Cuando en una expresión aritmética, la variable del lado izquierdo forma parte de la expresión del lado derecho, de la asignación (=), se puede reducir de la siguiente manera: var = var + valor;
var += valor;
De esta manera tendremos los operadores: +=, -=, *=, /=. Cuando se trata de sumar o restar la unidad también se puede: var += 1;
var++;
var-=1;
var- -; M.S.C. Raúl Mora Reyes
OTRA VERSIÓN DE LA CLASE
Clase Ahorros
M.S.C. Raúl Mora Reyes
CICLO CONTROLADO POR CONTADOR
M.S.C. Raúl Mora Reyes
CARACTERÍSTICAS El contenido del ciclo se repite hasta que la variable contador cumple con la condición del ciclo; ya sea que sea igual al valor, lo supere o sea menor. Para trabajar este tipo de ciclo debemos de: 1. Antes del ciclo declarar e inicializar el contador. 2. Dentro del ciclo incrementar o decrementar el contador 3. La condición del ciclo evalúa el contador.
M.S.C. Raúl Mora Reyes
1.DESCRIPCIÓN DEL PROBLEMA
Realizar la multiplicación de dos valores enteros (A y B), utilizando sumas.
M.S.C. Raúl Mora Reyes
2.DEFINICIÓN DE LA SOLUCIÓN DATOS DE ENTRADA Valor de A (valorA) Valor de B (valorB)
DATOS DE SALIDA Multiplicación de A * B (multiplicar)
M.S.C. Raúl Mora Reyes
3.DISEÑO DE LA LÓGICA MultiplicarSumando Diagrama de Clase
valorA : int valorB : int
multiplicar( ) : double
M.S.C. Raúl Mora Reyes
Diagrama de Flujo
M.S.C. RaĂşl Mora Reyes
4.DESARROLLO DE LA CODIFICACIÓN
Clase MultiplicarSumando M.S.C. Raúl Mora Reyes
Clase Principal M.S.C. RaĂşl Mora Reyes
5.DEPURACIÓN Y PRUEBAS
M.S.C. Raúl Mora Reyes
NOTA 1 El ciclo Para (for en Java) es el ideal para los ciclos controlados por contador, aunque se pueden realizar también con while y do-while. Al inicio, y como única vez, se crea e inicializa el contador; posteriormente el ciclo for tiene un orden al ejecutarse: 1. Condiciona el contador 2. Si la condición es verdadera ejecuta el cuerpo del ciclo 3. Realiza el incremento o decremento M.S.C. Raúl Mora Reyes