Subrutinas 2
En general un problema complejo puede ser resuelto de manera más fácil y eficiente si se divide en
problemas más pequeños y concentrándonos en cada etapa en la solución de ese "subproblema".
Esto implica que el gran problema original será resuelto por medio de varios módulos, cada uno de
los cuales se encarga de resolver un subproblema determinado. Esosmódulos, se conocen con el
nombre de subalgoritmos. Un subalgoritmo no es más que un algoritmo que tiene la función de
resolver un subproblema.
Los subalgoritmos se escriben sólo una vez, luego es posible hacer referencia a ellos ("llamarlos")
desde diferentes puntos de un pseudocódigo. La ventaja obvia es que nos permite reutilización y
evita la duplicación de códigos.
Los subalgoritmos sonindependientes entre si, en el sentido de que se puede escribir y verificar
cada módulo en forma separada sin preocuparse por los demás módulos. Por ello, es menos
complicado localizar un error y también se puede modificar el código sin tener que tocar o rehacer
varias partes del mismo.
Los subalgoritmos pueden ser dos tipos: Funciones y Procedimientos (también llamadas
subrutinas o subprogramas).
Notemosque al utilizar procedimientos y funciones se establece un límite para el alcance de las
variables, unas tendrán efecto y valor sólo en el subalgoritmo y otras en el algoritmo principal,
también es posible especificar que una variable tenga efecto en el algoritmo principal y todos los
subalgoritmos (averiguar Ámbito de variables).
Los subalgoritmos pueden recibir valores del algoritmo principal(parámetros) , trabajar con ellos y
devolver un resultado al algoritmo principal: No existen limitaciones en cuanto a las acciones que
pueda ejecutar un subalgoritmo. Un subprograma puede, a su vez, invocar o llamar a otros o a sus
propios subprogramas, inclusive puede llamarse a sí mismo (esto se conoce como recursividad).
Funciones
Desde el punto de vista matemático, una función es una expresiónque toma uno o más valores
llamados argumentos y produce un valor que se llama resultado. Este resultado es además, único.
Ejemplos de funciones matemáticas son los logaritmos, funciones trigonométricas (seno, coseno,
etc).
En el ambiente de programación y diseño de algoritmos, las funciones tienen exactamente el mismo
significado. Es decir, se realizan ciertos cálculos con una o más variables deentrada y se produce un
único resultado. En programación y diseño de algoritmos, este resultado podrá ser un valor
numérico, alfanumérico o lógico. Es decir, una función puede devolver un resultado que puede ser
una cadena, un número o un valor de tipo lógico (verdadero o falso). Esto hace que en los lenguajes
de programación, debamos especificar de que tipo es una función. Una función será de tiponumérica cuando devuelva un número y será de tipo alfanumérica o string cuando devuelva una
cadena.
En el caso de las funciones de tipo numérico se tienen subdivisiones que están dadas por los tipos
de datos soportados por el lenguaje (integer o entero, simple o single, doble precisión o double, real,
etc). O sea que cuando una función numérica devuelva un valor numérico entero (sin decimales)será de tipo entera o integer. Si devuelve un valor decimal será doble o simple, dependiendo del
grado de exactitud que se desea; sin embargo como esto es propio de lenguajes de programación no
se tendrá en cuenta en este material (las funciones serán numéricas cuando devuelvan un dato
Funciones y Procedimientos
Prof. Jamie Gill
1
numérico y de tipo string cuando devuelvan una cadena, sinnecesidad de especificar esto
previamente en el algoritmo).
Puedes investigar este tema en los distintos libros de referencia o en la web, que te proporcione
más detalles sobre los tipos de datos y su aplicación en las funciones.
Tomemos como ejemplo al función matemática sen(x). En este caso la función se llama sen (seno) y
el argumento o valor que se pasa a la función para que lo procese es x. Así...
Regístrate para leer el documento completo.