miércoles, 6 de julio de 2011

Puntos Extra Lenguaje Ansi-C

Subrutinas
En computacion, una subrutina o subprograma (también llamada procedimiento, función o rutina), como idea general, se presenta como un subalgoritmo que forma parte del algoritmo principal, el cual permite resolver una tarea específica. Algunos lenguajes de programación, como Visual Basic .NET, utilizan el nombre función para referirse a subrutinas que devuelven un valor.
Una subrutina al ser llamada dentro de un programa hace que el código principal se detenga y se dirija a ejecutar el código de la subrutina, en cambio cuando se llama a una macro, el compilador toma el código de la macro y lo implanta donde fue llamado, aumentando así el código fuente y por consiguiente el objeto.

Elementos de la declaración de una subrutina

Las declaraciones de subrutinas generalmente son especificadas por:
  • Un nombre único en el ámbito: nombre de la función con el que se identifica y se distingue de otras. No podrá haber otra función ni procedimiento con ese nombre (salvo sobrecarga o polimorfismo en programación orientada a objetos).
  • Un tipo de dato de retorno: tipo de dato del valor que la subrutina devolverá al terminar su ejecución.
  • Una lista de parámetros: especificación del conjunto de argumentos (pueden ser cero, uno o más) que la función debe recibir para realizar su tarea.
  • El código u órdenes de procesamiento: conjunto de órdenes y sentencias que debe ejecutar la subrutina.

Ejemplos

PROGRAMA principal
     instrucción 1
                   instrucción 2
     ...
     instrucción N
     ...
     SUBRUTINA NombreX
        .......
     FIN SUBRUTINA
     ...
 FIN PROGRAMA principal.
La siguiente función en C es la analogía al cálculo del promedio matemático. La función "Promedio" devuelve un valor decimal correspondiente a la suma de 2 valores enteros de entrada (A y B):
float Promedio(int A, int B){
   float r;
   r=(A+B)/2.0;
   return r;
}
Así una llamada "Promedio(3, 5)" devolverá el valor de tipo real (float) 4,0.

2 comentarios:

  1. este es un tema de la sesion 8 espero les ayude en algo y pueda aclarar sus dudas

    ResponderEliminar
  2. Bien. Te pongo 3 puntos extra. Menos copypaste en el futuro, por favor.

    ResponderEliminar