Estructuras repetitivas exactas
e inexactas.
Estructuras repetitivas exactas
Una estructura repetitiva exacta permite ejecutar una o
más instrucciones una cierta cantidad de veces ya
definida.
Ejemplo
Supongamos que queremos mostrar los números del 0 al 9.
For
Imaginemos si tuviéramos que mostrar números hasta
el 1.000… Tedioso, ¿verdad?
Para ello utilizaremos en cambio la instrucción for
combinada con la función range(). La función range()
genera una cierta cantidad de números comenzando
por el cero, mientras que la instrucción for genera el
ciclo repetitivo.
for i in range(10):
print (i)
for i in range(10):
print (i)
A continuación de la palabra for, se coloca el nombre de
una variable, generalmente se usa la letra i, que es la que
tendrá en cada ciclo de ejecución los valores 0, 1, 2, 3, 4,
5, 6, 7, 8 y 9. Después de la variable del ciclo se agrega in
y luego la función range() que lleva entre paréntesis el
número que será el tope del ciclo. Ese tope no se incluye
en la repetición.
Ahora queremos ingresar 5 números enteros y mostrarlos. También
utilizaremos la instrucción for combinada con la función range()
pero en este caso nos interesa el valor ingresado y no el de la
variable del ciclo llamada i.
Otras formas de utilizar la función
range().
La función range() permite tres tipos de sintaxis
según la cantidad de parámetros que incluyamos
dentro del paréntesis y separados por comas.
Vimos que la función range() genera como primer
valor cero y luego incrementa de uno en uno hasta
llegar al número anterior al que figura dentro del
paréntesis. Es decir, el tope del ciclo (valor que no
se incluye).
También podemos especificar que empiece desde
otro número. En este caso, si colocamos range(3, 6),
devolverá los valores: 3, 4 y 5 en cada ciclo.
Otras formas de utilizar la función
range().
Puede ser que necesitemos que el salto de un ciclo
a otro no sea de uno en uno, sino de dos en dos. En
ese caso, utilizaremos un tercer parámetro que
indica el incremento: range(4, 10, 2) implica que el
primer valor será 4, que el último será 9 (el anterior
al 10) y que el salto será de 2 en 2 por lo tanto los
valores serán: 4, 6 y 8.
Finalmente, es posible utilizar números negativos en
esta función: range(0, -10, -2) generará como
valores 0, -2, -4, -6 y -8.
Otras formas de utilizar la función
range().
Aquí vemos un ejemplo en Python del uso de la
función range() con 3 parámetros:
Repetitivas inexactas
Utilizamos repetitivas inexactas cuando no sabemos de
antemano la cantidad de ciclos que se ejecutarán en una
parte del código de programación. Generalmente, la
repetición continúa hasta que se produce alguna
condición que será evaluada en cada ejecución del ciclo.
While
La instrucción while permite realizar múltiples iteraciones o ciclos
de repetición basándonos en el resultado de una expresión lógica
que puede tener un valor verdadero o falso (true o false).
Ejemplo
Supongamos que queremos calcular la suma de números
positivos ingresados por teclado sin conocer la cantidad de
números que se ingresarán. Se le pide al usuario que
ingrese -1 cuando quiera finalizar el ingreso de números y el
programa informará la suma.
Ejemplo
En el ejemplo anterior vemos, en primer lugar, que se
muestra un mensaje en pantalla y luego se le solicita al
usuario que ingrese un número entero.
La tercera línea comienza con la instrucción while que
realiza un ciclo que solamente va a interrumpirse o
terminará cuando el número ingresado por el usuario sea
-1. La condición que acompaña al while (mientras) es la
hará que el ciclo continúe, es decir, mientras que el
número NO sea igual a -1, continuará ejecutando las
instrucciones que integran el bloque.
Vale la pena recordar que un bloque se determina por
las instrucciones que están separadas del margen,
generalmente con 4 espacios. En este ejemplo, son 3 las
instrucciones que pertenecen al ciclo while y que serán
ejecutadas mientras se cumpla la condición.
Entonces, mientras que el número ingresado sea distinto
a -1, éste será sumado a lo que contenga la variable suma
(inicialmente tendrá un cero) y se volverá a pedir al
usuario el ingreso de otro número.
En el momento en que el número ingresado por el
usuario sea -1, el ciclo while finalizará y la ejecución
continuará en la siguiente instrucción que está fuera del
bloque. En este caso, es la que contiene la función print()
que mostrará un mensaje seguido del valor de la variable
suma. De esta manera, aparecerá en pantalla la suma de
los números ingresados por el usuario, sean positivos,
negativos o cero, pero sin incluir el valor -1 que se utilizó
en este caso como indicador para el usuario que ya no
tendría más números para ingresar.
EJERCICIOS
1. Ingresar la temperatura durante 7 días, calcular y mostrar el
promedio (le recordamos que la temperatura es un número real).
2. Ingresar el gasto en taxi día a día, calcular y mostrar el total
acumulado. El ingreso de datos finalizará cuando el usuario ingrese
un valor cero o menor a cero.
3. Ingresar 10 letras, una a una y mostrar la cantidad de vocales.
4. Ingresar una serie de números hasta que el usuario ingrese un
cero. Al finalizar, indicar la cantidad de números menores a 15.
5. Ingresar una serie de importes de compra, calcular y mostrar en
cada ciclo el importe más el IVA del %21. Finalizar la entrada de
datos con el valor cero.
EJERCICIOS
6. En una fabrica que cuenta con tres Áreas: Armado, Empaquetado
y Ventas. (a – e – v )
Se necesita saber:
El total de empleados de cada área.
El total general de empleados.
El sueldo promedio de los empleados.
Los datos a ingresar por cada empleado son: Área y Sueldo.
Nota: finalizar el programa cuando se ingrese la palabra “fin” al
momento de solicitar el Área.
EJERCICIOS
7. En una maratón de cuatro categorías: Infantil, Joven, Adulto y
Veterano. ( i – j – a – v )
Se necesita saber:
El total de competidores de cada categoría.
El total general de competidores.
El tiempo promedio de los competidores.
Los datos a ingresar por cada competidor son: Categoría y Tiempo.
Nota: finalizar el programa cuando se ingrese la palabra “fin” al
momento de solicitar la categoría.
EJERCICIOS
8. En una empresa que cuenta con tres secciones: Compra - Venta –
Publicidad.
Se necesita saber:
• El total de empleados de la sección Compra y Publicidad.
• El total de empleados mayores de 50 años.
• El sueldo promedio de los empleados.
Los datos a ingresar por cada empleado son: Sección, Edad y Sueldo.
Nota: finalizar el programa cuando se ingrese la palabra “fin” al
momento de solicitar la Sección.
EJERCICIOS
9. En una competencia con tres equipos: Azul – Rojo - Verde
Se necesita saber:
El total de competidores del equipo Azul y Verde.
El total general de competidores.
El tiempo mínimo de todos los competidores.
Los datos a ingresar por cada competidor son: Equipo y Tiempo.
Nota: finalizar el programa cuando se ingrese la palabra “fin” al
momento de solicitar la Equipo.
EJERCICIOS
10. En una zapatería que cuenta con tres sucursales: Corrientes –
Chaco – Misiones
Se necesita saber:
o El total de empleados de las sucursales de Corrientes y Misiones.
o El total de empleados de Corrientes con cargo de Vendedor.
o El sueldo máximo de los empleados.
Los datos a ingresar por cada empleado son: Sucursal, Cargo y
Sueldo.
Nota: finalizar el programa cuando se ingrese la palabra “fin” al
momento de solicitar la Sucursal.
EJERCICIOS
11. En una empresa que cuenta con tres categorías de empleados:
Vendedor – Administrativo - Gerente.
Se necesita saber:
El total general de empleados.
El promedio de sueldos de la Categoría Gerentes.
El mayor sueldo de la Categoría Administrativo.
Los datos a ingresar por cada empleado son: Categoría y Sueldo.
Nota: finalizar el programa cuando se ingrese la palabra “fin” al
momento de solicitar la Categoría.
EJERCICIOS
12. En una fabrica de insumos informático que vende tres tipos de
productos: Mouse, Teclados y Pendrive.
Se necesita saber:
El total general de ventas.
El promedio de ventas de Mouse.
La menor venta del tipo Teclado.
Los datos a ingresar por cada venta son: Tipo, Cantidad y Monto.
Nota: finalizar el programa cuando se ingrese la palabra “fin” al
momento de solicitar la Tipo.
Material:
Curso: Introducción a la Programación de En
FoCo ETP
link: https://
[Link]/cursos
Bibliografía
[Link]. (2018). 1. Introducción — Tutorial de Python 3.6.3
documentation. [online] Available at:
[Link] Accessed 14 Feb. 2018].