Guía de ejercicio 7
I Semestre
Carrera: Lic. Informática Tipo de curso: CD Año: 2. Año
Asignatura: Fundamento de Programación
Tema 3: Estructuras de control repetitiva
Sumario: Tipos de repeticiones. Estructura de control repetitiva indeterminada. Centinela.
Objetivo: Diseñar algoritmos en pseudocódigo, donde se emplee estructuras algorítmica de control
repetitiva indeterminada que permitan solucionar problemas matemáticos, físicos o de la vida cotidiana
y profesional, teniendo en cuenta los buenos hábitos de la programación, así como permitir el desarrollo
del pensamiento lógico, su independencia cognitiva y formas de trabajo en grupo.
Bibliografía
Zapata Ospina, Carlos Andrés. Fundamento de Programación. Formato digital. Disponible en la carpeta
Bibliografía en el aula virtual.
Labañino Rizo, . César Ramón y otros. LT INFORMÁTCA 11 grado. Formato digital. Disponible en la
carpeta Bibliografía en el aula virtual.
Los contenidos esenciales para realizar estos ejercicios: definir estructura de control alternativa,
alternativa simple y doble. Estructura anidada y múltiples.
Lo referido a la estructura de control repetitiva lo puedes ver en el documento Fundamento de
programación página 183 a la 191 , analizar los ejemplos resueltos y su explicación pagina 188 . y en el
pdf LT INFORMÁTCA 11 grado en la página 60 y analizar los ejercicios resueltos relacionado con
“estructura repetitivas pag. 61”., debe de adaptar los símbolos utilizado en el libro a la simbología
utilizadas en clases (Pseint).
Puede acceder a la presentación “Sistematizacion_Asignt” que se encuentra en la carpeta bibliografía en
el aula virtual, puede sistematizar los contenidos a este parte del tema conceptos, sintaxis y ejemplos.
Para sistematizar los conceptos puede auxiliarse del glosario de términos: Repetir, para, sumador,
contador.
Otra vía de búsqueda de información es a través de las redes sociales e internet que te ayuda a
enriquecer más tus saberes sobre la programación.
INTRODUCCIÓN.
En esta guía los ejercicios a resolver pertenecen a la estructura de control “Mientras” y “Repetir”.
Para comprender este tema se mantiene la bibliografía comentada, que la puedes encontrar en el aula
virtual, además de los videos tutoriales relacionado con los ciclos mientras y repetir.
En la guía anterior estudiaste la estructura repetitiva, iterativa o cíclica, permite repetir un grupo de
sentencias una cantidad de veces en tanto cierta condición se mantenga verdadera.
Ciclo o bucle: son las sentencias que el algoritmo ejecuta de forma repetida.
Esta estructura se presenta de dos tipos:
Repetición determinada
Repetición indeterminada
Repetición Determinada:
La repetición determinada se denomina repetición aritmética o controlada por contador porque con
anticipación se conoce con exactitud cuántas veces se ejecutará el ciclo, utiliza una variable para contar
el número de repeticiones a la cual se le denomina variable de control de ciclo.
Ahora en esta guía nos corresponde estudiar la estructura de repetición indeterminada
La repetición indeterminada se denomina ciclo lógico, por condición o controlado por centinelas porque
no se sabe con anticipación cuantas veces se ejecutará el ciclo; o sea el programador tiene que
determinar la condición que controlará el ciclo, esta se escribe como parte de la sintaxis de la
estructura.
En algunos problemas la condición aparece de manera explícita.
La condición que controla el ciclo es una expresión lógica que determina cuándo el ciclo debe
detenerse, y es el programador el que la determina, la cual se utiliza para controlar la repetición
cuando:
1. El número de repeticiones no es conocido con anticipación.
2. Cuando el ciclo incluye enunciados que deben obtener datos cada vez que éste se ejecuta.
El valor que da fin al ciclo se denomina elemento terminador o centinela y lo determina el
programador, conveniado en ocasiones con el cliente.
El valor centinela o elemento terminador indica “fin de datos”.
El centinela debe ser introducido una vez que al algoritmo se le han proporcionado todos los datos a
procesar.
La condición que controla el ciclo puede verificarse antes de ejecutar el bloque de sentencias a repetir o
después de la ejecución de bloque de sentencias y de acuerdo al lugar donde se verifica el cumplimiento
o no de la condición, este tipo de ciclo se puede dividir en:
• Ciclo con precondición
• Ciclo con poscondición
Ciclo con precondición
En estos ciclos la condición que controlará el ciclo se verifica antes de ejecutar el bloque de sentencias
a iterar o a repetir y el centinela debe tener características diferentes a los datos a procesar.
Características
1. La variable que se utiliza en la condición tiene que tomar valor antes del ciclo y modificar su
valor en el bloque de sentencias a iterar
2. El valor centinela no se procesa por tener características diferentes a los datos a procesar y le da
fin al ciclo.
3. Si al evaluar la condición por primera vez y esta no se cumple, o sea es falsa, el bloque de
sentencia nunca se ejecuta.
4. Si el bloque de sentencias es compuesto, o sea más de una sentencia, se escribe entre inicio y
fin.
5. El bloque de sentencias se ejecutará mientras la condición sea verdadera y sale la primera vez
que sea falsa; puede ser que nunca se ejecute.
Ciclo con poscondición
En estos la condición que controlará el ciclo se verifica después de ejecutar el bloque de sentencias a
iterar o a repetir y el centinela debe tener características iguales a los datos a procesar.
Sintaxis en seudo código
Hacer
< Bloque de sentencias>
Hasta que < (condición)>
Semántica
1. Ejecuta el bloque de sentencias a repetir, donde debe tomar valor la variable que se utiliza en la
condición.
2. Evalúa la condición, Mientras la condición sea verdadera repite los pasos anteriores y sale del
ciclo la primera vez que sea falsa.
3. Continúa con las sentencias que le siguen al ciclo.
Características
1. La variable que se utiliza en la expresión lógica modifica su valor en el bloque de sentencias a
iterar.
2. El valor centinela se procesa por tener características iguales a los datos a procesar y le da fin al
ciclo.
3. El bloque de sentencia se ejecuta al menos una vez.
4. Si el bloque de sentencias es compuesto, o sea más de una sentencia no necesita escribirse entre
inicio y fin; las sentencias se agrupan entre el hacer y el mientras.
5. El bloque de sentencias se ejecutará mientras la condición sea verdadera y sale la primera vez
que sea falsa
No en todos los problemas es posible conocer de manera anticipada cuantas veces se repetirá un grupo
de sentencias. Es en este tipo de situaciones cuando tenemos el tipo de repetición controlada por
centinela.
El centinela es un valor que se utiliza para determinar la continuidad o no del ciclo a partir de la
evaluación de la expresión condicional del mismo, es decir, el centinela determina si el grupo de
sentencias asociadas se procesarán o no nuevamente. Por lo general, el valor del centinela forma parte
de la expresión condicional de la estructura de control de repetición, y puede estar dado de manera
explícita o implícita.
En otros casos, el centinela se describe de manera explícita, como en los siguientes ejemplos:
Determinar el promedio de una lista de calificaciones, en donde cada calificación será
introducida desde el teclado una a la vez. El fin de la lista de calificaciones sera indicado con -1,
debido a que la lista es variable.
Determinar la suma de los números enteros proporcionados desde el teclado, hasta que el
número proporcionado sea cero.
Dada una lista de números enteros positivos, determine el mayor y el menor de ellos, la lista
termina al proporcionar cualquier número negativo.
Aunque la repetición controlada por centinela es menos frecuente, no es menos necesaria ni menos
importante que la repetición controlada por contador, de ahí la importancia de presentarla, conocerla y
dominarle como parte de su repertorio como programador y de las técnicas utilizadas en la resolución
de problemas.
Para tener una mejor preparación para resolver los ejercicios de la guía le invito a que busque en el aula
virtual “Fundamento de programación (31-5 años), los conceptos centinela, contador sumador en el
glosario de términos, se remita a la presentación electrónica y analizar el tema de la estructura
repetitiva mientras y repetir para analizar conceptos, sintaxis y ejemplos.
En los videos tutoriales los relacionados con la estructura repetitiva Mientras y Repetir debe de realizar
un resumen y enviarlo por vía fórum siguiendo las siguientes orientaciones:
1-Cuál es la estructura indeterminada con ciclo precondición y cual la de ciclo por poscondición, de ellas
diga la sintaxis y la semántica.
2- El contador y el sumador a qué valor se inicializan.
3- Qué condición debe cumplir la variable centinela:
Un ciclo no se inicializa.
Un ciclo se repite
Se termina el ciclo
El ciclo nunca termina.
Ejercicios para la autopreparación
Ejemplo 1
Por ejemplo, un programa capaz de sumar muchos números, todos los que el usuario quisiera, y en el
que hubiera que escribir "0" para indicar que queremos terminar, podría ser así:
Algoritmo Mientras01
Escribir "Dime un numero";
Leer x;
suma <- 0;
Mientras x <> 0 Hacer
suma <- suma + x;
Escribir "Hasta ahora, la suma es ", suma;
Escribir "Dime otro numero";
Leer x;
FinMientras
Escribir "Terminado";
FinAlgoritmo
Ejemplo 2
Se tiene un conjunto de números naturales y se desea conocer el promedio de los números del
conjunto.
Primer paso
¿Qué me dan? un conjunto de números naturales
¿Qué me piden? promedio del conjunto
¿Qué estructura de control utilizar?
No se conoce la cantidad de números que forman el conjunto por lo que la estructura repetitiva a
utilizar es la indeterminada, los números naturales son enteros y positivos, el centinela debe ser un
número entero negativo o sea con características diferentes a los naturales y no se debe procesar,
entonces la estructura a utilizar es la estructura repetitiva indeterminada con precondición.
La condición de continuidad de ciclo es un número mayor o igual que cero, el centinela será cualquier
número entero negativo.
Segundo paso
¿Cómo determinar si un número es natural?
Un número entero es natural si numero ≥0
Expresión lógica algorítmica numero >=0
Tercer paso
Algoritmo Determinar el promedio
Descripción Determinar el promedio de un conjunto de números naturales.
Entrada y auxiliares Entero Numero, Suma, Cantidad
Real Promedio
Precondición
Poscondición
Representación del algoritmo en seudo código.
Estructura de control: Repetitiva indeterminada con precondición.
Proceso sin_titulo
definir Numero, Suma, Cantidad, Promedio, CantidadM como numericos;
Suma<-0;
Cantidad<-0;
Escribir" Entre un número natural";
Leer Numero;
Mientras Numero >=0 hacer
Suma<-Suma + Numero; // sumador
Cantidad<-Cantidad +1; // contador
Escribir" Entre el número (centinela=0)";
leer Numero;
FinMientras
Escribir" El conjunto está formado por ", Cantidad, "números";
Promedio<-Suma / Cantidad;
Escribir" El promedio de números del conjunto es", Promedio;
FinProceso
Ejemplo 3
Un programa que pida al usuario una clave de acceso, y que no le permita seguir hasta que la introduzca
correctamente, se podría hacer así:
Algoritmo Repetir01
Repetir
Escribir "Dime tu clave de acceso";
Leer clave;
Si clave <> 1234 Entonces
Escribir "Clave incorrecta";
FinSi
Hasta Que clave=1234
Escribir "Bienvenido!";
FinAlgoritmo
Ejemplo 4
Proceso sin_titulo
Definir i,numero como enteros;
definir seguir como cadena;
repetir
escribir "\n Introduzca la tabla de multiplicar que deseaver: " ;
leer numero;
Escribir " La tabla de multiplicar es: ", numero;
para i<-1 hasta 10 hacer
Escribir i," * ", numero," = ", i * numero;
FinPara
Escribir" Desea ver otra tabla (s/n)?: " ;
leer seguir;
hasta que seguir != 's' ;
FinProceso
Ejercicios propuestos:
1- Diseñe un algoritmo que permita imprimir:
a- Total de estudiantes censados.
b- Cantidad de estudiantes por sexo.
2- Diseñe un algoritmo que permita emplearlo en la campaña con el objetivo de erradicar la
propagación del mosquito Aedes aegipty a durante las pesquisas en una zona determinada,
debe de imprimir:
a. Cantidad de casas visitadas.
b. Cantidad de casas cerradas.
c. Cantidad de casas con criaderos.
d. El programa termina con el número de casa = 0.
3- Un trabajador social realiza un censo de la población de un reparto y de cada vivienda obtiene:
total de mujeres, total de hombres y total de niños. Realice un algoritmo para obtener el total
censado en cada categoría.
4- Dada una lista de las calificaciones de estudiantes en las pruebas, se desea conocer la cantidad
de estudiantes que no se presentaron, el por ciento de aprobado y la nota promedio obtenida (a
los que no se presentaron se le pone NE como valor de la nota). Realice un Realice un algoritmo
para resolver este problema. Escoja un terminador apropiado.
5- En un taller dedicado a la producción de piezas de repuesto se lleva diariamente el control total
de piezas producidas por cada obrero, así como cuántas defectuosas produjeron. Realice un
Realice un algoritmo para determinar:
a) Total de piezas confeccionadas en el día.
b) Cantidad de piezas defectuosas.
c) Promedio de piezas (buenas y defectuosas) producidas por trabajador.
d) Imprima un texto si no hay piezas defectuosas en el día.
6- Los trabajadores de las unidades de una empresa agrícola acordaron cuál sería el Plan de
producción anual a cumplir; al finalizar el año, todas no lograron cumplir con el mismo.
Conocidos el nombre y la producción anual de cada unidad, elabore un algoritmo para
determinar cuáles de ellas cumplieron, sobrecumplieron o incumplieron con el Plan de
producción anual pactado.
7- Un profesor de Educación física desea conocer el promedio de edad de un grupo de jóvenes que
se presentaron para participar en un Maratón universitario. Si de ellos se conoce sólo la edad,
elabore un algoritmo que resuelva dicho problema.