martes, 12 de octubre de 2010

.: Subrutinas :.

:: Subrutinas ::



Materia. Lab de Leng de Progr

Hora. V1 (Jueves)

Compañeros, deseo compartirles una información.
Cuando explique lo que fue el pseudocódigo de “Búsqueda Binaria”, tuve que requerir la ayuda de la Dra. Elisa, pues era porque no podía mandar unos simples parámetros a una función. Así que me propuse a buscar algo a fondo.
Tenemos dos tipos de subrutinas: Procedimientos y Funciones.
Procedimiento
Estas subrutinas son un conjunto de acciones que no devuelven ningún valor como resultado de dichas acciones o cálculos. Ejemplo:
void PROCESO (argumentos){
     ----------
     ----------
}
Funciones
A diferencia de los procesos, éstas si devuelven algún valor como resultado de las operaciones o cálculos que se hayan llevado a cabo dentro de la subrutina.
int FUNCIÓN (argumentos){
     ----------
     ----------
     return VALOR DESEADO;
}
NOTA. Donde tenemos el int, puede ir cualquier tipo de dato, como float, double, long, etc.
Limitación del RETURN
Hay que saber que la instrucción return, únicamente devuelve un solo valor. Si queremos devolver varios valores, se debe usar otra instrucción. (La cual no he localizado).
Llamadas a subrutinas
Cuando se mandan llamar subrutinas por medio de argumentos, puede ser por medio de valores.
  • void PROCESO (0, 5, 25)
  • a = int FUNCIÓN (25, 30)
La otra manera es a través de referencias. En este caso, se escriben las variables de los valores que deseamos enviar.
  • int FUNCION (a, b, c)
  • void PROCESO (x, y, z)
Cabe aclarar un dato importante: los arreglos se mandan siempre por referencia. Por ejemplo, si tengo mi arreglo  A[50], al momento de enviarlo a una subrutina, lo enviamos como “A” solamente. Y en el argumento de la subrutina, se estará esperando como “*A”.
Otro dato es que cuando se mandan argumentos a las subrutinas, es importante que estén en el orden correcto, es decir, deben colocarse los datos en el orden en que se encuentran especificados los argumentos en las subrutinas. De lo contrario, tendremos problemas.
Podemos tener la opción que una subrutina no reciba argumento alguno, pero estos casos se deben a que tenemos variables globales declaradas en nuestro código; es decir, variables que pueden ser utilizadas en cualquier subrutina de nuestro programa como en la función main.
De hecho, no es muy recomendable que digamos utilizar variables globales. En otra publicación veremos algo sobre este tema.
Cualquier duda y/o comentario, no duden en mencionarlo.
Saludos.

1 comentario:

  1. En algunos lenguajes como R el return puede devolver más valores (en R es porqué se los mete en un vector en un sentido liberal). Cuatro puntos para el lab.

    ResponderEliminar