2. Postulado Principal
La programación estructurada postula que todo programa se
puede resolver usando 3 bloques básicos:
• Proceso
• Decisión
• Repetición
11. Todo es un proceso
La decisión y la repetición
pueden considerarse como
procesos.
12. Todo es un proceso
Un programa es una
secuencia de bloques.
13. Todo es un proceso
Un programa es una
secuencia de bloques.
14. Todo es un proceso
Un programa es una
secuencia de bloques.
15. Todo es un proceso
Un programa es una
secuencia de bloques.
16. Todo es un proceso
De ese modo, cualquier
programa puede ser
considerado como un
proceso.
17. Tipos de proceso
Ejecución
Por ejemplo, al llamar un procedimiento:
init();
Asignación
Por ejemplo, al calcular una expresión, o llamar una
función:
a = b + 1;
y = f(x);
Lectura/Escritura
Como leer del teclado, presentar
algo en pantalla, etc.
A veces se representa con un
paralelogramo.
18. Tipos de procesos
Puede ser útil considerar que:
• Un procedimiento es una función que no retorna nada (retorna
void).
• La llamada a una función ejecuta un procedimiento además de
retornar un valor.
21. Tipos de decisión
Múltiple:
a)
if P
then A
else if Q
then B
else if R
then C
b)
switch
case P: A
case Q: B
case R: C
22. Tipos de decisión
Todas las decisiones pueden expresarse en términos de
la decisión simple.
Las formas doble y múltiple son simplemente para
facilitar la programación.
26. Tipos de repetición
Todas las repeticiones pueden expresarse en términos
de while.
Las formas for y do while son simplemente para facilitar
la programación.
28. Equivalencias
A veces un bloque puede ser
expresado en términos de otro
tipo de bloque.
La práctica de esto puede ayudar
a elegir los bloques más
adecuados para cada problema.
29. Equivalencias
do while - while
do A A
while P while P
do A
30. Jugando
contando hasta 10
for (i=1; i<=10; i++)
write(i)
Normalmente un conteo se hace
usando un bloque for.
31. Jugando
contando hasta 10
i = 1;
while (i<=10) {
write(i);
i++;
}
Un for se puede expresar como
un while.
32. Jugando
contando hasta 10
i = 0;
do {
if (i>0) {
write(i);
i++;
}
} while (i<=10);
Para poder hacer lo mismo con
un do while hay que hacer unos
ajustes, pero es posible.