|
CarlosPes.com
> Curso
de Diseño de Algoritmos
> Procedimientos en Pseudocódigo |
|
Procedimientos en
Pseudocódigo
|
|
|
|
|
¿Cómo
representar procedimientos en pseudocódigo?
|
|
En pseudocódigo, la sintaxis que se utiliza para
escribir un procedimiento es muy similar
a la que se usa para escribir un algoritmo. |
|
/* Cabecera */
procedimiento <nombre_del_procedimiento>(
[ <lista_de_parámetros_formales> ] )
/* Declaraciones */
[ constantes
<declaraciones_de_constantes> ]
[ tipos_de_datos
<declaraciones_de_tipos_de_datos> ]
[ variables
<declaraciones_de_variables> ]
/* Cuerpo */
inicio
<bloque_de_instrucciones>
fin |
|
|
Existen
dos diferencias importantes entre la sintaxis de un algoritmo y la de
un procedimiento:
- En
vez de la palabra reservada algoritmo, se debe escribir la palabra
reservada procedimiento.
- En
un procedimiento, después del
<nombre_del_procedimiento>, se deben escribir los
paréntesis "( )", entre los cuales, opcionalmente, se pueden
declarar parámetros formales.
En
el apartado "Parámetros Formales" estudiaremos
qué son y para qué sirven los
parámetros formales. De momento, para entender
cómo se puede hacer uso de los procedimientos (sin
parámetros) estúdiese el siguiente problema.
Ejemplo: Se quiere diseñar el
algoritmo de un programa que:
1º) Muestre un menú con 4 opciones:
1. Mostrar los números del 1 al 10 (ambos inclusive).
2. Mostrar la tabla de multiplicar del 8.
3. Mostrar las primeras diez potencias de 2.
4. Salir.
2º) Pida por teclado la opción deseada (dato
carácter). Deberá ser introducida, mientras que,
no sea mayor o igual que '1' y menor o igual que '4'.
3º) Ejecute la opción del menú
seleccionada.
4º) Repita los pasos 1º, 2º y 3º,
mientras que, el usuario no seleccione la opción 4 (Salir)
del menú.
En pantalla: |
|
>>>
MENÚ DE OPCIONES <<<
1. Números del 1 al 10.
2. Tabla de multiplicar del 8.
3. Primeras diez potencias de 2.
4. Salir.
Introduzca opción (1-4): 1
1 2 3 4 5 6 7 8 9 10
>>> MENÚ DE OPCIONES
<<<
1. Números del 1 al 10.
2. Tabla de multiplicar del 8.
3. Primeras diez potencias de 2.
4. Salir.
Introduzca opción (1-4): 3
2 4 8 16 32 64 128 256 512 1024
>>> MENÚ DE OPCIONES
<<<
1. Números del 1 al 10.
2. Tabla de multiplicar del 8.
3. Primeras diez potencias de 2.
4. Salir.
Introduzca opción (1-4): 2
8 * 1 = 8
8 * 2 = 16
8 * 3 = 24
8 * 4 = 32
8 * 5 = 40
8 * 6 = 48
8 * 7 = 56
8 * 8 = 64
8 * 9 = 72
8 * 10 = 80
>>> MENÚ DE OPCIONES
<<<
1. Números del 1 al 10.
2. Tabla de multiplicar del 8.
3. Primeras diez potencias de 2.
4. Salir.
Introduzca opción (1-4): 4 |
|
|
Sin
usar subalgoritmos, la solución al problema puede ser la
siguiente: |
|
algoritmo Menu_de_opciones
variables
caracter opcion
entero numero, contador,
resultado
inicio
hacer
escribir(
">>> MENÚ DE
OPCIONES<<<" )
escribir( "1.
Números del 1 al 10." )
escribir( "2. Tabla
de multiplicar del 8." )
escribir( "3.
Primeras diez potencias de 2." )
escribir( "4.
Salir." )
escribir(
"Introduzca opción: " )
/* Filtramos la
opción elegida por el usuario. */
hacer
leer( opcion )
mientras ( opcion
< '1' o opcion > '4' )
/* La
opción sólo puede ser 1, 2, 3 ó 4. */
segun_sea ( opcion )
'1' : para numero ← 1 hasta 10 hacer
escribir( numero )
fin_para
'2' : para contador ← 1 hasta 10 hacer
contador ← contador * 8
escribir( "8 * ", contador,
" = ", resultado )
fin_para
'3' : para contador ← 1 hasta 10 hacer
escribir( 2 ** contador )
fin_para
fin_segun_sea
mientras ( opcion <> '4' )
fin |
|
|
En
este caso, parece obvio que cada una de las opciones del
menú puede considerarse como un subproblema:
Subproblema 1: Mostrar los números del 1 al 10 (ambos
inclusive).
Subproblema 2: Mostrar la tabla de multiplicar del 8.
Subproblema 3: Mostrar las primeras diez potencias de 2.
Los subalgoritmos (procedimientos) que dan solución a dichos
subproblemas, pueden ser: |
|
procecimiento Numeros_del_1_al_10()
variables
entero numero
inicio
para numero ← 1 hasta 10 hacer
escribir( numero )
fin_para
fin |
|
|
procedimiento
Tabla_de_multiplicar_del_8()
variables
entero contador, resultado
inicio
para contador ← 1 hasta 10 hacer
contador ←
contador * 8
escribir( "8 * ",
contador,
" = ", resultado )
fin_para
fin |
|
|
procedimiento
Primeras_diez_potencias_de_2()
variables
entero contador
inicio
para contador ← 1 hasta 10 hacer
escribir( 2 **
contador )
fin_para
fin |
|
|
Además,
al conjunto de instrucciones de salida que se utilizan para mostrar el
menú por pantalla, también se le puede considerar
como un subproblema:
Subproblema 4: Mostrar menú por pantalla.
Para ello, el procedimiento propuesto es: |
|
procedimiento Menu_por_pantalla()
inicio
escribir( ">>>
MENÚ DE OPCIONES<<<" )
escribir( "1. Números del 1 al 10." )
escribir( "2. Tabla de multiplicar del 8." )
escribir( "3. Primeras diez potencias de 2." )
escribir( "4. Salir." )
escribir( "Introduzca opción: " )
fin |
|
|
De
manera que, la solución al problema planteado puede venir
dada por un módulo principal (programa principal):
Menu_de_opciones
y cuatro submódulos (subprogramas):
Numeros_del_1_al_10()
Tabla_de_multiplicar_del_8()
Primeras_diez_potencias_de_2()
Menu_por_pantalla()
Por otra parte, para hacer una llamada a un procedimiento, la sintaxis
es: |
|
<nombre_del_procedimiento>(
[ <lista_de_parámetros_actuales> ] ) |
|
|
En
una llamada a un procedimiento se debe escribir el identificador de
dicho procedimiento, seguido de los parentesis "( )", entre los cuales,
opcionalmente, se puede indicar una lista de parámetros
actuales. En el apartado "Parámetros Actuales" vamos a
estudiar qué son y para qué sirven los
parámetros actuales.
Por tanto, usando los cuatro subalgoritmos (procedimientos) anteriores,
la solución algorítmica al problema del ejemplo
planteado, puede ser la siguiente: |
|
algoritmo Menu_de_opciones
variables
caracter opcion
inicio
hacer
Menu_por_pantalla() /* Llamada a subalgoritmo */
/* Filtramos la
opción elegida por el usuario. */
hacer
leer( opcion )
mientras ( opcion
< '1' o opcion > '4' )
/* La
opción sólo puede ser 1, 2, 3 ó 4. */
segun_sea ( opcion )
'1' : Numeros_del_1_al_10()
'2' : Tabla_de_multiplicar_del_8()
'3' : Primeras_diez_potencias_de_2()
fin_segun_sea
mientras ( opcion <> '4' )
fin |
|
|
Nota: En el apartado Declaración
de Subprogramas
veremos cómo se
pueden declarar los procedimientos utilizados en el algoritmo.
Cuando se hace una llamada a un procedimiento, éste se
ejecuta y, al finalizar, devuelve el control del flujo al programa (o
subprograma) llamante, el cual continuará su
ejecución con la siguiente instrucción a la
llamada. |
|