Clase21 22a
Clase21 22a
Clase21 22a
Objetivo:
Caracterizar los tipos de estructuras repetitivas, así como su utilización en la
solución de problemas de mediana complejidad.
Sumario:
Clase práctica. Estructuras repetitivas. Ciclos por condición.
Medios:
Pizarrón.
Método
- Explicativo-Ilustrativo
Procedimientos:
-Elaboración conjunta.
Introducción.
En conferencias anteriores estudiamos los algoritmos, sus formas de representación,
así como los tipos de instrucciones, las estructuras de alternativa, tanto simples como
múltiples, vimos que las estructuras de alternativa alteran el control de la ejecución
de los algoritmos, permitiendo que las instrucciones para la solución del problema no
tengan que ser ejecutadas una tras otra, sino que, en dependencia del cumplimiento
o no de diferentes condiciones, se ejecuten unos u otros fragmentos del algoritmo.
Desarrollo
En la práctica, aparecen con frecuencia situaciones en las que se necesita que un
conjunto de instrucciones se ejecute repetidamente. En este caso se debe contar con
estructuras de control que permitan la iteración o repetición de dicho conjunto de
instrucciones. Estas estructuras deben permitir la verificación de condiciones que
determinan si el conjunto de instrucciones debe seguir siendo repetido o si debe
detenerse dicha repetición o iteración.
1
En la conferencia de hoy se estudiarán algunas de estas estructuras repetitivas,
también conocidas como ciclos o lazos.
Tipos de ciclos
Existen distintos tipos de ciclos, los cuales serán utilizados en dependencia de la
situación concreta que se desea resolver.
Todos los tipos de ciclos verifican, de alguna manera, el cumplimiento de una
condición para determinar si el ciclo debe detenerse o no.
En ocasiones se conoce la cantidad de veces que el ciclo debe ser repetido y en otras
no. Teniendo en cuenta este criterio, los ciclos pueden clasificarse en:
1. Ciclos por condición
2. Ciclos por variable de control
Para una mejor comprensión, los estudiaremos por separado.
Ciclos por condición
En estos ciclos aparece la condición de manera explícita, o sea, se escribe la
condición que hay que verificar como parte de la sintaxis de estas estructuras
repetitivas.
La condición a verificar es una expresión booleana cualquiera que determina cuándo
el ciclo debe detenerse y puede verificarse antes de ejecutarse la secuencia de
instrucciones o después de dicha ejecución. Se le llama expresión booleana a una
expresión lógica que puede tomar valor verdadero o falso y su cumplimiento o no
determina la verificación o no de la condición del ciclo. Se le llama booleanas en honor
al matemático inglés Boole.
De acuerdo al momento en que se verifica el cumplimiento de la condición, con
respecto a la ejecución del conjunto de instrucciones, este tipo de ciclo se puede
subdividir, a su vez, en:
1. Ciclo con precondición
2. Ciclo con poscondición
Ciclo con precondición
Como su nombre lo indica, en este ciclo la verificación de la condición ocurre antes
de la ejecución de la secuencia de instrucciones que se desea iterar.
En pseudocódigo, esta instrucción tiene la sintaxis siguiente:
Mientras <condición>
<secuencia de instrucciones>
Fin mientras
2
Semántica de esta instrucción:
Primero que todo, se evalúa la expresión booleana que constituye la condición. Se
verifica su cumplimiento y, si se satisface, se ejecuta la secuencia de instrucciones
una primera vez. Al finalizar esta ejecución, se vuelve a evaluar y verificar la condición
y, si se satisface, se ejecuta de nuevo la secuencia de instrucciones y así,
sucesivamente. La primera vez que no se cumple la condición, se sale de la estructura
repetitiva y se continúa con la instrucción que le sigue.
Nótese que, al evaluar por primera vez la condición, puede suceder que no se cumpla.
En este caso, la secuencia de instrucciones no se ejecuta nunca.
Es importante aclarar que en este tipo de ciclo, para evitar que la ejecución sea
infinita, la condición tiene que dejar de cumplirse en algún momento. Para garantizar
lo anterior, la secuencia de instrucciones a iterar debe alterar en algún momento la
validez de la condición, o sea, debe contar con, al menos, una instrucción que cambie
el sentido de dicha condición.
Ciclos con poscondición
Como su nombre lo indica, en este ciclo la verificación de la condición ocurre
después de la ejecución de la secuencia de instrucciones que se desea iterar.
En pseudocódigo, esta instrucción tiene la sintaxis siguiente:
Hacer
<secuencia de instrucciones>
Mientras<condición>
3
Hacer Salida = 5 25 125 625 3125
m=m*5
Escribir m,” “
Mientras (m < 625)
Fin
JavaScript
<html>
<script>
m=1
do{
m=m*5
document.write(m+" ")
}while (m<625)
</script>
</html>
Ejemplos
Inicio
Definir Real: nota, cantAlumnos, contador
cantAlumnos = 1
Mientras (cantAlumnos<=22)
Escribir “Teclee la nota del alumno: “
Leer nota
Si (nota>=3)
Escribir “Aprobado”
Si no
Escribir “Desaprobado”
Fin si
cantAlumnos = cantAlumnos + 1
Fin mientras
Fin
JavaScript
<html>
<script>
do{
var nota = prompt("Tecleela nota")
if(nota>=3) {document.write("<p>"+nota+" <--> Aprobado ") }
else {document.write("<p>"+nota+" <--> Desaprobado ")}
var respuesta = prompt("¿Desea continuar (S/N)?")
}while ((respuesta=="s")|| (respuesta=="S"))
</script>
</html>
Inicio
Definir Entero: nota, cantAlumnos, contador
Definir Real: promedio
cantAlumnos = 1
contador = 0
Mientras (cantAlumnos<=22)
Escribir “Nota: “
Leer nota
contador = contador + nota
Fin mientras
promedio = contador / cantAlumnos
Escribir “El promedio de notas es de: “, promedio
Fin
Inicio
Definir Real: ahorro, deposito
Definir Entero: mes
mes = 0
deposito = 0
ahorro = 0
Hacer
Escribir “Teclee el monto a depositar: “
Leer deposito
ahorro = ahorro + deposito
5
mes = mes + 1
Escribir “Su cuenta de ahorro asciende a $“, ahorro
Escribir “Meses: “, mes
Mientras (mes<=12)
Fin
Inicio
Definir Entero: nota, notaAcum, notaAcumF contadorAsig, contadorAsigF
Definir Real: promedio
Definir Cadena: respuesta1, respuesta2
nota = 0
notaAcum = 0 // variable tipo acumulador
notaAcumF = 0 // variable tipo acumulador
contadorAsig = 0 // variable tipo contador
contadorAsigF = 0 // variable tipo contador
Hacer
Hacer
Hacer
Escribir “Teclee la nota: “
Leer nota
notaAcum = notaAcum + nota
contadorAsig = contadorAsig + 1
Fin