Sub algoritmos
5.1.- SUBALGORITMOS:
Conjunto estructurado de operaciones identificado mediante un nombre único, de modo que toda referencia al mismo implica la ejecución de las acciones correspondientes.
Módulos o bloques que resuelven un problema parcial y que se pueden utilizar en un algoritmo principal como si fuesen operaciones primitivas simplificación en la codificación.Existe la posibilidad de anidamiento (dentro de un subalgoritmo, definir otro).
5.2.- FUNCIONES Y PROCEDIMIENTOS:
Existen dos tipos de subalgoritmos:
Funciones: resultado explícito función del valor de unos parámetros o argumentos.
Procedimientos: no producen forzosamente un resultado explícito.
Ejemplo:
Algoritmo selección
constante n =...
vector de reales a(1..n)
variables enteras i,k
leera
para i de 1 a n-1 hacer
k=indice_minimo (a,i,n)
intercambiar (a,i,k)
fin para
escribir a
Fin
Función entera indice_minimo (a,i,n)
parámetro vector de reales a(1..n)
parámetros enteros i,n
variables enteras x,j
x=i
para j de i+1 a n hacer
si a(j) fin para
indice_minimo=x
Fin
-Procedimiento intercambiar (a,i,k)
parámetro variable vector de realesa(1..n)
parámetros enteros i,k
variable real x
x=a(i)
a(i)=a(k)
a(k)=x
-Fin
5.2.1.- FUNCIONES
Declaración: Función tipo nombre (parámetros)
Resultado de una función: se especifica mediante una instrucción de asignación incluida en el subalgoritmo:
nombre=expresión
Declaración de los parámetros: al comienzo de la función y pueden ser de cualquier tipo, incluido vector, matriz o tabla:parámetro tipo nombre
Parámetros: valores constantes del subalgoritmo. Ninguna operación debe modificarlos.
Dentro de la función se pueden definir las variables necesarias para su ejecución (además de los parámetros).
Referencia a una función: mediante un nombre con los valores de los parámetros particulares.
Cuando el nombre de la función aparece en una expresión del algoritmo principal, seejecutan las operaciones definidas en el subalgoritmo, calculándose así su valor, y sustituyéndose éste en la expresión donde se hace referencia a la función.
Las funciones pueden aparecer en cualquier lugar de una expresión, siempre que sean del tipo adecuado.
Ejemplos:
-Función real g(x)
parámetro real x
g=sen(x) + cos(x)
-Fin
Función entera m (a,b)
parámetros enteros a,b
m=(a + b) / 2
FinFunción real producto_escalar (x,y)
parámetros vectores reales x(1..n),y(1..n)
variable real p
variable entera j
p=0 * 0
para j de 1 a n hacer
p=p + x(j) * y(j)
fin para
producto_escalar=p
Fin
Ejemplos de utilización de funciones:
variables enteras i,j,k
variables reales a,b,c
vectores reales x(1..3),y(1..3)
...
...
i=m (j,k) + 2
...
k=3 * i + 2 * m (i,j)
...
a=g(b) / 3 * 0 + c *producto_escalar(x,y)
5.2.2.- PROCEDIMIENTOS:
Declaración: procedimiento nombre (parámetro)
En lugar de devolver un valor escalar, los procedimientos pueden tener parámetros variables (escalares o vectoriales), cuyo valor se puede modificar en el subalgoritmo, siendo visible el cambio de valor por el algoritmo invocador.
Activación de un procedimiento: se produce con la presencia de su nombrecomo instrucción independiente, junto con los parámetros correspondientes, en el algoritmo principal. Obsérvese que un procedimiento no devuelve ningún valor, así que no debe invocarse en una acción de asignación ni dentro de una expresión, como es el caso de las funciones.
Ejemplos de definición de procedimientos:
Procedimiento P(a,b,c)
parámetros enteros a,b
parámetro variable entero c
c=(a+ b) / 2
Fin
Procedimiento suma_de_vectores (x,y,z)
parámetros vectores reales x(1..n),y(1..n)
parámetro variable vector real z(1..n)
variable entera i
para i de 1 a n hacer
z(i)=x(i) + y(i)
fin para
Fin
Ejemplos de utilización de procedimientos:
constante n=3
variables enteras i,j,k
vectores reales a(1..n),b(1..n),c(1..n)
...
...
i02
j=5
P(i,j,k)
...
leer a,b
suma_de_vectores...
Regístrate para leer el documento completo.