|
CarlosPes.com
> Curso
de Diseño de Algoritmos
> Declaración de Subprogramas |
|
Declaración de Subprogramas
|
|
|
|
|
¿Cómo
declarar subalgoritmos en pseudocódigo?
|
|
En
pseudocódigo, los subprogramas también se pueden
declarar locales o globales. Por consiguiente, tanto a la
sección de declaraciones de un algoritmo (programa
principal), como a la de un subalgoritmo (subprograma), se debe
añadir la sintaxis: |
|
[ subalgoritmos
<declaraciones_de_subalgoritmos> ] |
|
|
Para
declarar un procedimiento (sin parámetros) se utiliza el
identificador de dicho procedimiento, seguido de los
paréntesis "()". La sintaxis es: |
|
<nombre_del_procedimiento>() |
|
|
Por
tanto, si al algoritmo del ejemplo del apartado Procedimientos le
añadimos las declaraciones de los procedimientos que en
él se utilizan, obtendremos el algoritmo: |
|
algoritmo Menu_de_opciones
subalgoritmos
/* Procedimientos globales */
Numeros_del_1_al_10()
Tabla_de_multiplicar_del_8()
Primeras_diez_potencias_de_2()
Menu_por_pantalla()
variables
caracter opcion /* Variable global */
inicio
hacer
Menu_por_pantalla() /* Llamada a subalgoritmo */
hacer
leer( opcion )
mientras (
opcion < '1' o opcion > '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 |
|
|
Haciendo
lo mismo con el algoritmo del ejemplo del apartado Declaraciones
Locales y Globales,
obtendremos el algoritmo: |
|
algoritmo Ejemplo_C
subalgoritmos
/* Procedimientos globales */
Ejemplo_A()
Ejemplo_B()
variables
entero n /* Variable global */
inicio
n ← 30
Ejemplo_A()
Ejemplo_B()
escribir( n )
fin |
|
|
Ejemplo: Estúdiese ahora el
procedimiento siguiente: |
|
procedimiento Ejemplo_A()
subalgoritmos
Ejemplo_B() /* Procedimiento local */
variables
entero n /* Variable local */
inicio
Ejemplo_B() /* Llamada a subalgoritmo */
n ← 26
escribir( n )
fin |
|
|
En
el ejemplo, se ha declarado el procedimiento Ejemplo_B localmente. Por
tanto, éste sólo puede ser llamado desde el
procedimiento Ejemplo_A. Esto es posible en los lenguajes
estructurados, sin embargo, en lenguaje C esta
característica no se cumple, ya que, no se puede definir un
subprograma dentro de otro. Por tanto, cuando se escribe un programa en
C, todos los subprogramas se declaran globlamente.
Y dado el procedimiento: |
|
procedimiento Ejemplo_B()
variables
entero n /* Variable local */
inicio
n ← 90
escribir( n )
fin |
|
|
Y
el algoritmo: |
|
algoritmo Ejemplo_D
subalgoritmos
Ejemplo_A() /* Procedimiento global */
variables
entero n /* Variable global */
inicio
n ← 18
Ejemplo_A() /* Llamada a subalgoritmo */
escribir( n )
fin |
|
|
Su
salida por pantalla es: |
|
|
|
Al
igual que con las variables, constantes y tipos de datos,
también es conveniente declarar los subalgoritmos lo
más localmente posible. Así como, no usar el
mismo identificador para un subalgoritmo local, que para otro global.
Por otro lado, el espacio de memoria reservado
para las variables globales (en este caso una varible, n), no se libera
hasta que el programa principal finaliza su ejecución, a
diferencia de las variables locales. |
|