II.5. Composición de acciones. Herramientas de Iteración
Las Herramientas de Iteración permiten repetir un conjunto de acciones o pasos tantas veces como indique el predicado. En este punto, se estudiaran tres formas: Repetir, Mientras e Iterar.
II.5.1. Primera Herramienta de Iteración: REPETIR
Notación:
Repetir
A
hasta (ß)
Reglas de Coherencia
{Ro}
Repetir
{A0} R0 -> A0
A A1 ∧¬ ß -> A0
{A1} A1 ∧ ß -> R1
hasta (ß) {R1}
II.5.2. Segunda Herramienta de Iteración: MIENTRAS
Notación:
Mientras (ß) hacer
A
Fmientras
Equivalencia:
Si (¬ ß) entonces Mientras (¬ß) hacer
Repetir A
A Fmientras
hasta ß
Fsi
Reglas de Coherencia
{M0}
Mientras (ß) hacer Mo ∧ ß -> {A0}
{Ao} M0 ∧ ¬ ß -> M1
A A1 ∧ ß -> A0
{A1} A1 ∧ ¬ ß -> M1
Fmientras
{M1}
II.5.3. Tercera Herramienta de Iteración: ESQUEMA “ITERAR”
Notación:
Iterar
A
Parada : ß
B
Fiterar
Reglas de Coherencia:
{I0}
Iterar
{Ao} A {A1} { Io } -> {Ao}
Parada: ß {A1} ∧ ß -> {I1}
{Bo} B {B1} {A1} ∧ ¬ß -> {Bo}
{B1} -> {Ao}
Fiterar
{I1}
En el Caso del Lenguaje Python
La instrucción for en Python difiere de los lenguajes Go, C y Pascal . En lugar de siempre iterar sobre una progresión aritmética de números o darle al usuario la posibilidad de definir tanto el paso de la iteración como la condición de fin (como en C y Go), la sentencia for de Python itera sobre los ítems de cualquier secuencia (una lista o una cadenas de caracteres), en el orden que aparecen en la secuencia. (mas información)
Auto Evaluación
EJERCICIOS PRÁCTICOS
Los Ejercicios que a continuación se muestran, corresponden a la Practica Nro. 5 de la Guía de Practica.
CONTENIDO:
• Secuenciamiento
• Herramientas de Partición
• Herramientas de iteración
TIEMPO: 3horas/practica.
SEMANA: 5
HERRAMIENTAS:
• Información Nominada: valores numéricos, lógicos y caracteres.
• Identificación de un valor: abstracción, copia, acumulación, entrada y salida simple.
• Composición de las acciones
. Secuenciamiento.
• Partición (Selección) y Partición particular (Si α entonces A fsi)
• Herramientas de Iteración.
EJERCICIOS:
5.1. Se desea que Usted realice el algoritmo que permita sumar diez números (leídos) e imprimir su valor.
5.2. Realice el algoritmo que permita sumar 100 números leídos e imprimir el resultado.
5.3. Se desea que Usted realice el algoritmo que permita, dada una secuencia de N números, sumarla e imprimir el resultado.
5.4. Realice el algoritmo que permita calcular la suma de los cuadrados de los 100 primeros números naturales.
5.5. Realice el algoritmo que permita sumar los números Naturales pares comprendidos en el intervalo [2,100]. Imprima su valor.
Ejemplo de programa y corrida en lenguaje Python
5.6. Realice el algoritmo que permita calcular e imprimir la suma y el producto de los números naturales pares comprendidos entre 20 y 400 ambos inclusive.
Ejemplo de programa y corrida en lenguaje Python
5.7. Realice el algoritmo que permita calcular la media de 50 números leídos desde el teclado e imprimir el resultado.
5.8. Realice el algoritmo que permita leer N números enteros y obtener cuantos son positivos {con N> 50 y N ∈ N}.
5.9. Realice el algoritmo que permita calcular la suma de los números naturales pares e impares comprendidos entre 1 y 1000, independientemente.
5.10. Realice el algoritmo que permita leer una serie de números distintos de cero (el último número de la serie es el - 99) y obtener el número mayor. Como resultado se debe visualizar el número mayor y un mensaje que indique si el numero es negativo (en el caso que se lea un número negativo).
5.11. Realice el algoritmo que permita dada una secuencia de números ordenados (orden creciente), determinar cuantos elementos de la secuencia son más pequeños que un número dado n. {con n ∈ Z}.
5.12. Realice el algoritmo que permita dados 10 números enteros, imprimir la suma de los números pares de la lista, cuántos números pares existen y cuál es la media aritmética de los números impares.
5.13. Realice el algoritmo que permita calcular el elemento de rango n de una serie de Fibonacci (n>=0) con: F0 = 0, F1 = 1, Fi = Fi-1 + Fi-2 V i > 1.
PROGRAMACIÓN
P.1. Investigue como se traducen a lenguaje C, Python y Go las herramientas de Iteración Mientras y Repetir
P.1. Sea el siguiente programa en lenguaje C. Se desea que usted lo corra en un computador e interprete la salida.
/* Suma los números del 0 al 9 */
int sum;
main()
{
int contador
sum = 0; /*inicializa */
for (contador = 0; contador < 10; contador++)
{ total (contador); display(); } }
/* añade al total */
total (x) int x;
{ sum = x +sum; }
display()
{ int contador; /* este contador es diferente del de main()*/
for (contador=0; contador < 10; contador++) printf “.”);
printf(“la suma actual es %d\n”, sum); }
P.3. Identifique a que pregunta de los ejercicios descritos anteriormente (practica 5), corresponde el siguiente programa