Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Clase21 22a

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 6

Disciplina: Lenguaje y Técnica de Programación

Asignatura: Fundamento de la Programación


Plan: E

Carrera: Informática Curso 2017 – 2018


Año: Segundo Semestre: Primero
Clase 21-22
Tema 4: Estructuras repetitivas

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.

Tiempo: 90 minutos. Local: Aula


Bibliografía
 Fundamentos de Programación (digital).
 Calderón Díaz, Miriam del Pilar y García Herrera, Cristóbal. Lógica de
programación. Editorial Pueblo y Educación. La Habana 2005.
 Lógica y algoritmos Colectivo de autores. Editorial Félix Varela. La Habana. 2004

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>

Semántica de la instrucción Hacer…Mientras:


En esta se ejecuta la secuencia de instrucciones y luego se evalúa la expresión
booleana que constituye la condición. Se verifica su cumplimiento y, si se satisface,
se repite nuevamente la secuencia de instrucciones. 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 se no se cumpla
la condición, se sale de la estructura repetitiva y se continúa con la instrucción que le
sigue.
Nótese que es muy parecida a la estructura repetitiva Mientras…, pero en esta se
verifica primero y si se cumple la condición se entra al ciclo, mientras que la estructura
Hacer…Mientras se ejecutan las instrucciones contenidas en la estructura y después
es que se verifica la veracidad de la condición, si es verdadera vuelve a entrar al ciclo
y se ejecutan nuevamente las instrucciones contenidas en ella, pero si la condición
es falsa al menos se ejecutaron las instrucciones una vez.
Vamos a realizar el mismo ejemplo, pero utilizando esta nueva estructura:
Inicio
Definir Entero: m
m=1

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

1) Haga el algoritmo para dadas las notas de Física de 22 alumnos de un grupo,


indique la condición de cada uno en la asignatura.

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

2) Haga el algoritmo para dada la nota de Física de un alumno, indique la condición


de este en la asignatura. Adecúe el algoritmo para que, si el usuario desease hallar
la condición de otro alumno, lo pueda efectuar.
Inicio
Definir Real: nota
Definir Cadena: respuesta
Hacer
Escribir “Teclee la nota del alumno: “
Leer nota
Si (nota>=3)
Escribir “Aprobado”
Si no
4
Escribir “Desaprobado”
Fin si
Escribir “Desea continuar (s/n): “
Leer respuesta
Mientras ((respuesta==”s”) Or (respuesta ==”S”))
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>

3) Realice el algoritmo para efectuar el cálculo del promedio de notas de 22


alumnos.

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

4) Se requiere un algoritmo para determinar cuánto ahorrará una persona en un


año, si al final de cada mes deposita cantidades variables de dinero; además, se
requiere saber cuánto lleva ahorrado cada mes. Realice el pseudocódigo.

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

5) Realice un algoritmo que efectúe el cálculo del promedio de cierta cantidad de


alumnos en una cierta cantidad de asignaturas y, además calcule el promedio general
del grupo.

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

Mientras (contadorAsig < 2)

Escribir “Continuar con este alumno (S/N) “


Leer respuesta1
Si ((respuesta1 == ”n”) or (respuesta1 == ”N”))
promedio = notaAcum / contadorAsig
Escribir “El promedio del alumno: “, promedio
Fin si

Mientras ((respuesta1 == ”s”) or (respuesta1 == ”S”))

notaAcumF = notaAcumF + notaAcum


contadorAsigF = contadorAsigF + contadorAsig
Escribir “Continuar con otro alumno (S/N) “
Leer respuesta2
notaAcum = 0
contadorAsig = 0

Mientras ((respuesta2 == ”s”) or (respuesta2 == ”S”))


promedio = notaAcumF / contadorAsigF
Escribir “El promedio general es de: “, promedio

Fin

También podría gustarte