Clase 06 1
Clase 06 1
Clase 06 1
OBJETIVO
En esta clase, se inicia al estudiante en la tercera y última estructura de control que provee la
programación estructurada: la estructura iterativa.
Asimismo, se explican todas sus variantes y se proveen ejemplos y herramientas para facilitar el
aprendizaje.
CONTENIDOS DE LA CLASE
Aunque la mayoría de los autores se refieren a esta estructura como iterativa o repetitiva de manera
indistinta, comienza a haber consenso en diferenciarlas de acuerdo al tipo de condición de corte
para la misma. Mientras que en las estructuras repetitivas el número de veces a ejecutar el bloque
de instrucciones que forman parte de la estructura está perfectamente pre-establecido, en las
estructuras iterativas el número de ciclos que se ejecutará el bloque se determina por la evaluación
de una condición determinada.
Al ejecutarse la orden Para por primera vez, a la variable de control se le asigna un valor inicial
(expresion1). Inmediatamente se ejecutan las instrucciones del bloque asociado y luego se verifica
si el valor final (expresión2) es mayor que el valor inicial (expresión); en caso de no ser así se
incrementa o decrementa automáticamente el contenido de la variable de control en uno y se
vuelve a ejecutar el bloque de instrucciones, hasta que la variable de control sea mayor/menor que
el valor final referido en la expresión2, situación en la que se finaliza la estructura Para y se
continua con la próxima instrucción que continua al bloque antedicho.
Ahora que tenemos un panorama general del funcionamiento, explicaremos paso a paso como se
evalúa esta estructura:
• La variable de control se inicializa una sola vez, al inicio de la primera iteración. Luego,
dentro del bloque de instrucciones, no puede alterarse el valor de la variable de control.
• El valor de la variable de control se evalúa en cada iteración con respecto al valor final
establecido.
• El incremento o decremento se realiza antes de cada evaluación.
• Al finalizar la ejecución de una estructura de control Para, la variable de control está
instanciada con el valor de expresión2 más un incremento o decremento, según
corresponda.
Introducción a la Programación
Universidad Nacional de Luján
Enunciado:
Se ingresan por teclado 10 números enteros. Preparar un algoritmo que cuente y muestre por
pantalla la cantidad de negativos, positivos y ceros que se ingresaron.
Su sintaxis es:
Mientras <condición> Hacer
instrucción 1
instrucción 2
.......................
instrucción n
Fin Mientras
Aplicando la misma metodología que venimos utilizando, a continuación se propone una situación
pasible de utilizar la estructura antes explicada y su correspondiente resolución mediante PSeint:
Enunciado:
Se deben ingresar por teclado las notas de los alumnos en una determinada asignatura, o un 99 si
el alumno estuvo ausente.
Preparar un algoritmo para calcular e imprimir la nota promedio, recordando que el alumno
ausente no se promedia. El algoritmo debe terminar cuando se ingrese un valor negativo.
Su sintaxis es:
Repetir
instrucción 1
instrucción 2
.....................
instrucción n
Hasta Que<condición>
De la misma manera que antes, se propone una situación pasible de utilizar la estructura antes
explicada y su correspondiente resolución mediante PSeint:
Enunciado:
Realizar un algoritmo que genere e imprima la tabla del 12, con el siguiente formato:
• 12 x 1 = 12
• 12 x 2 = 24
Introducción a la Programación
Universidad Nacional de Luján
Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad constante
cada vez que se produce un determinado suceso o acción. Los contadores se utilizan con la
finalidad de contar sucesos o acciones internas en una estructura iterativa o bucle.
Sintaxis:
Contador := Contador + Constante;
Ejemplo:
Persona := Persona + 1;
Introducción a la Programación
Universidad Nacional de Luján
Ejemplo:
Stock := Stock - 3;
El término decremento significa resta. Como se pudo observar en el ejemplo anterior, a la variable
Stock se le está decrementando un valor constante 3, es decir, a su contenido se le resta el valor y se
el vuelve a grabar en la misma variable.
En cambio, un acumulador es una variable que suma sobre sí misma un conjunto de valores, para
de esta manera tener la suma de todos ellos en una sola variable.
Sintaxis:
Acumulador := Acumulador + Variable;
Ejemplo:
Suma := Suma + Edad;
Como se puede observar, a la variable Suma se el está incrementando una cantidad variable
almacenada en Edad.
Ejercicios propuestos
1. Calcular la suma y el producto de los números pares comprendidos entre 20 y 500.
2. Preparar un algoritmo para ingresarle dos números naturales N1 y N2, hallar el producto
N1 * N2 mediante sumas sucesivas y mostrar el resultado. Recordar que: N1 * N2 = N1 + N1
+ ... + N1 (N2 veces).
3. Un número "N" cuya suma de divisores, incluido él mismo, es igual a tres veces N se
denomina "número triperfecto" (o también "subdoble"). El menor de ellos es el 120. En
efecto, 1+2+3+4+5+6+8+10+12+15+20+24+30+40+60+120 = 360 = 3 * 120. Escribir un
algoritmo que permita ingresar un número N e indique si es o no triperfecto.
4. Ingrese las calificaciones de un parcial para un grupo de N (definido por el ususario)
alumnos de la asignatura Introducción a la Programación y calcule el promedio de
calificaciones y porcentaje de aprobados, desaprobados y ausentes (los ausentes se
representarán con el valor 99 como calificación).
5. Los números perfectos son números naturales que son iguales a la suma de todos sus
divisores propios excepto él mismo. Así, por ejemplo, el 6 es un número perfecto ya que es
igual a la suma de sus tres divisores propios: 1, 2 y 3. Se pide escribir un programa que
calcule los cuatro primeros números perfectos.
6. Escribir un programa que imprima la secuencia de todas las combinaciones de hora y
minuto de un día, comenzando por 01:00 y terminando por 12:59.
7. ¿Cuál es la suma de los números pares comprendidos entre 300 y 1232?
8. Construir un algoritmo para calcular y mostrar por pantalla cuantas campanadas da un
reloj desde una cierta hora H, que se ingresa por teclado, hasta las doce de la noche, el reloj
da una campanada a las y media.
9. Construir un algoritmo para ingresarle un número natural n, y que calcule y muestre por
pantalla el factorial de n. La fórmula general para hallar el factorial de un número entero
positivo es: n! = n * (n - 1)!
10. Construir un algoritmo para ingresarle por el teclado dos números naturales M y N. Hallar
el cociente M/N por restas sucesivas y mostrar por pantalla el dividendo, divisor, cociente y
resto.
11. Ingresando un número natural N, construir un algoritmo para hallar y mostrar por pantalla
los divisores naturales de N. Usar parte entera (INT).
12. En la sucesión de Fibonacci, los dos primeros números son 0 y 1, y cada uno de los restantes
es igual a la suma de los dos que lo anteceden. Los primeros términos son: 1, 1, 2, 3, 5, 8, 13,
21, ...
13. Preparar un algoritmo para ingresarle una cantidad C, y que muestre los primeros C
Introducción a la Programación
Universidad Nacional de Luján
términos de la sucesión.
14. Completar el algoritmo anterior para calcular también la suma y el producto de los
primeros C términos de la sucesión.
15. Desarrollar un programa que permita ingresar por teclado la cantidad milímetros de lluvia
caída en Luján para una semana y calcule el promedio. El programa además deberá alertar
al usuario cuando la cantidad de lluvia caída en la semana supere una cantidad ingresada
por el usuario, a efectos de poner en marcha acciones preventivas contra las posibles
inundaciones.
16. Se efectúa una encuesta entre 120 consumidores de cigarrillos. Las respuestas están
codificadas como 1, 2 ó 3 según sea la marca elegida. Preparar un algoritmo para ingresarle
las 120 respuestas, y muestre por pantalla el número de la marca preferida.
17. Preparar un algoritmo que encuentre e imprima todos los números de tres dígitos (del 100
al 999) que sean iguales a la suma de los cubos de sus dígitos. Recordar que un número de
tres dígitos, por ejemplo 729, puede construirse sumando 700 + 20 + 9, o sea: 7 * 100 + 2 *
10 + 9.
18. Ingresar 50 nombres y mostrar el número de veces que se repite el primero de ellos.