1. INTRODUCCIN A LOS SUBPROGRAMAS O SUBALGORITMOS: La programacin modular es una de las tcnicas fundamentales de la programacin. Se apoya en el diseo descendente y en la filosofa de divide y vencers, es decir se trata de dividir el problema dado, en problemas ms simples en que cada uno de los cuales lo implementaremos en un mdulo independiente. A cada uno de estos mdulos es a lo que llamamos subalgoritmos o subprogramas. Siempre existir un mdulo o programa principal que es con el que comienza la ejecucin de todo el programa, y a partir de l iremos llamando al resto. Cada vez que se llama a un subprograma se le pasa la informacin que necesita en la llamada, a continuacin comienza a ejecutarse el subprograma llamado, y cuando termine su ejecucin, devuelve el control a la siguiente instruccin a la de llamada en el programa que lo llam. En cuanto a la estructura de un subprograma es igual a la estructura de un programa, va a tener una informacin de entrada que es la que le pasamos al hacer la llamada y que se coloca junto al nombre del subprograma. Despus va a tener un conjunto de acciones, declarar otras variables propias del subprograma, y al terminar la ejecucin puede que devuelva o no resultados al programa que lo llam. Hay dos tipos fundamentales de subprogramas: Funciones y procedimientos.
2. FUNCIONES: Desde el punto de vista matemtico, una funcin es una operacin que toma uno o varios operandos, y devuelve un resultado. Y desde el punto de vista algortmico, es un subprograma que toma uno o varios parmetros como entrada y devuelve a la salida un nico resultado. Pascal: En las funciones se puede devolver ms de un nico resultado mediante parmetros. C: Se devuelve todo por parmetros. Para llamar a una funcin se da su nombre, y entre parntesis van los argumentos o parmetros que se quieren pasar. Declaracin de una funcin: La estructura de una funcin es semejante a la de cualquier subprograma. Tendr una cabecera (con el nombre y los parmetros) y un cuerpo(con la declaracin de los parmetros de la funcin y las instrucciones). Sintaxis: Funcion <nombre_funcion> (n_parametro: tipo, n_parametro: tipo): tipo funcion Var <variables locales funcion> Inicio <acciones> retorno <valor> fin <nombre_funcion> La lista de parmetros es la informacin que se le tiene que pasar a la funcin. Los parmetros luego dentro de la funcin los podemos utilizar igual que si fueran variables locales definidas en la funcin y para cada parmetro hay que poner su nombre y tipo. El nombre de la funcin lo da al usuario y tiene que ser significativo. En las variables locales se declaran las variables que se pueden usar dentro de la funcin. Entre las acciones tendr que existir entre ellas una del tipo retorno <valor>. Esta sentencia pondr fin a la ejecucin de la funcin y devolver el valor de la funcin, es decir, como valor asociado al nombre de mismo tipo que el tipo de datos que devuelve a la funcin, este valor por tanto tiene que ser del mismo tipo que el tipo de datos que devuelve la funcin, que es el que habremos indicado al declarar la funcin en la parte final de la cabecera. No se permiten funciones que no devuelvan nada.* La funcin solo puede ser llamada desde una expresin.
3. PROCEDIMIENTOS: El inconveniente de una funcin es que solo puede devolver un nico valor, por lo que s nos interesa devolver 0 o N valores, aunque puedo usarlo para devolver un solo valor, debo usar un procedimiento. Un procedimiento es un subprograma o un subalgoritmo que ejecuta una determinada tarea, pero que tras ejecutar esa tarea no tienen ningn valor asociado a su nombre como en las funciones, sino que si devuelve informacin, lo hace a travs de parmetros. Al llamar a un procedimiento, se le cede el control, comienza a ejecutarse y cuando termina devuelve el
Las variables locales se declaran dentro de un mdulo o subalgoritmo y slo tienen utilidad dentro de ese mdulo, no se podr acceder a ellas desde otros mdulos. Pueden existir variables locales con el mismo nombre siempre que estn en mdulos diferentes. Las variables globales son declaradas de forma que puedan ser utilizadas (consultada y/o modificada) desde cualquiera de los mdulos que forman el programa. En este caso, no puede haber dos variables globales con el mismo nombre, ya que esto producira una ambigedad que el compilador no podra resolver. En el diseo estructurado de algoritmos se desaconseja el uso de variables globales ya que este producira acoplamiento comn.
Variables Locales Una
variable local es una variable que esta declarada dentro de un subprograma y se dice que es local al subprograma. Una variable local solo esta disponible durante el funcionamiento del subprograma, al terminar su funcin el subprograma y regresar al programa llamador, se pierde el valor que se encontraba guardado en la variable local.
Variables Globales Las
variables declaradas en el programa principal se denominan variables globales. Al contrario que las variables locales cuyos valores se pueden utilizar solo dentro del subprograma en que fueron declaradas, las variables globales se pueden utilizar en todo el programa principal y en todos los subprogramas, donde se haga referencia al identificador de esta variable, salvo que
alguno de esos subprogramas tenga definida una variable local con el mismo nombre que la variable global, en este caso si utilizo el nombre de esa variable me referir a la local, nunca a la global(ya que tienen 2 zonas de memoria distintas). Por valor: Nos interesa el valor del parmetro actual a la entrada, para ello este valor se copia en la direccin de memoria del parmetro formal asociado. En este caso el parmetro real puede se una constante, expresin o variable, y nunca se va a usar para devolver resultado a travs de l, por esa razn precisamente puede ser una constante o una expresin, porque al no devolver resultados a travs de l no