SUBPROGRAMAS
Prof.: Ojeda, Sabrina A.
SUBPROGRAMAS
Hasta el momento,
desarrollamos nuestro
código en el Algoritmo
Principal, con esto, si
quisiéramos realizar varias
sumas de variables, cada vez
que quisiéramos adicionar su
valor, deberíamos calcularlo,
algo así:
Muchas veces nos ocurrirá en la
programación que deberemos
realizar la misma operación
varias,incluso miles de veces.
Para evitar que repitamos estas
operaciones, surgen los
subprogramas.
Sería mucho más eficiente
hacer lo siguiente:
Un método muy útil para solucionar un problema complejo es dividirlo en
subproblemas —problemas más sencillos— y a continuación dividir estos
subproblemas en otros más simples, hasta que los problemas más pequeños sean
fáciles de resolver. Esta técnica de dividir el problema principal en subproblemas se
suele denominar “divide y vencerás”.
Este método de diseñar la solución de un problema principal obteniendo las soluciones
de sus subproblemas se conoce como diseño descendente (top-down).
Se denomina descendente, ya que se inicia en la parte superior con un problema
general y se termina con varios subproblemas de ese problema general y los
soluciones a esos subproblemas. Luego, las partes en que se divide un programa deben
poder desarrollarse independientemente entre sí.
El problema principal se soluciona por el correspondiente programa o algoritmo principal, mientras
que la solución de los subproblemas será a través de subprogramas, divididos en procedimientos y
funciones. Un subprograma es un como un mini algoritmo, que recibe los datos, necesarios para
realizar una tarea, desde el programa y devuelve resultados o realiza esa tarea.
Cada vez que el subprograma es invocado, el algoritmo va al subprograma invocado y se realiza el
subprograma, y a su vez, un subprograma puede llamar a otros subprogramas.
ÁMBITO DE UNA VARIABLE
Las variables utilizadas en los programas principales y subprogramas se clasifican en dos tipos:
variables locales y variables globales.
● Una variable local es aquella que está declarada y definida dentro de un subprograma. Es
distinta a las variables con el mismo nombre declaradas en cualquier parte del programa principal
y son variables a las que el algoritmo principal no puede acceder de manera directa.
● Una variable global es aquella que está declarada en el programa o algoritmo principal, del
que dependen todos los subprogramas y a las que pueden acceder los subprogramas, a través
del paso de argumento.
La parte del programa/algoritmo en que una variable se define se conoce como ámbito o alcance
(scope, en inglés).
El uso de variables locales hace a los subprogramas independientes, siendo solo la comunicación
entre el programa principal y los subprogramas a través de la lista de parámetros. Si un subprograma
asigna un valor a una de sus variables locales, este valor no es accesible a otros programas, es decir, no
pueden utilizar este valor.
PARÁMETROS Y ARGUMENTOS, ¿QUÉ SON?
El término parámetro, se usa a menudo para referirse a la variable en la declaración
del método, mientras que argumento, se refiere al valor que se envía. Para evitar
confusiones, es común ver a un parámetro como una variable y un argumento como un
valor.
Los parámetros aparecen en la declaración de los métodos y los argumentos en las
llamadas a los métodos. En la declaración del método, la variable es un parámetro. Y
en la llamada del método, la variable es el argumento del método.
DECLARACIÓN Y LLAMADA DE
PARÁMETROS Y ARGUMENTOS
Cuando un programa llama a un subprograma, la información se comunica a través de la lista de
parámetros y se establece una correspondencia automática entre los parámetros y los argumentos.
Los parámetros son “sustituidos” o “utilizados” en lugar de los argumentos. La declaración del
subprograma se hace de la siguiente manera:
Subproceso nombre (PA1, PA2, ...,PAn)
<acciones>
FinSubproceso
y la llamada al subprograma, dentro del algoritmo principal se hace de la siguiente manera:
nombre (AR1, ARG2,..., ARGn)
donde PA1, PA2, ..., PAn son los parámetros y ARG1, ARG2, ..., ARGn son los argumentos.
PASO DE PARÁMETROS
POR VALOR Y POR REFERENCIA
Cuando invocamos a un subprograma, podemos pasarle argumentos en la llamada.
Cada argumento en la llamada se corresponde con un parámetro formal de la
definición.
PASO DE PARÁMETROS POR VALOR
En el paso de parámetros Por Valor, lo que se le pasa a la función es el valor del
argumento
5
PASO DE PARÁMETROS POR REFERENCIA
En el paso de parámetros Por Referencia, lo que se le pasa a la función es la dirección de
memoria donde está la expresión de ese argumento
dir1
dir2