Módulos, Procedimientos y Funciones en Programación C


Módulos, Procedimientos y Funciones en Programación

1. Módulos

En programación, un módulo es una porción de un programa de computadora. De las varias tareas que debe realizar un programa para cumplir con su función u objetivos, un módulo realizará una de dichas tareas. En general, un módulo recibe como entrada la salida que haya proporcionado otro módulo o los datos de entrada al sistema (programa) si se trata del módulo principal de este; y proporcionará una salida que, a su vez, podrá ser utilizada como entrada de otro módulo o bien contribuirá directamente a la salida final del sistema (programa), si se retorna al módulo principal.

En programación, los módulos suelen estar organizados jerárquicamente en niveles, de forma que hay un módulo principal que realiza las llamadas oportunas a los módulos de nivel inferior. Cuando un módulo es convocado, recibe como entrada los datos proporcionados por otro del mismo nivel o de nivel superior, el que ha hecho la llamada; luego realiza su tarea. A su vez, este módulo convocado puede llamar a otro u otros módulos de nivel inferior si fuera necesario; cuando ellos finalizan su tarea, devuelven la salida pertinente al módulo inmediato llamador, en secuencia reversa, finalmente se continúa con la ejecución del módulo principal.

En un lenguaje de programación, un módulo se puede llamar procedimiento o función.

2. Procedimientos y Funciones

Las funciones y los procedimientos son conjuntos de instrucciones que realizan una tarea en particular y permiten crear programas complejos, mediante un reparto de tareas que permite construir el programa de forma estructurada y modular.

Desde un punto de vista académico, se entiende por procedimiento el conjunto de sentencias a las que se asocia un identificador (un nombre), y que realiza una tarea que se conoce por los cambios que ejerce sobre el conjunto de variables.

Y entendemos por función el conjunto de sentencias a las que se asocia un identificador (un nombre) y que genera un valor nuevo, calculado a partir de los argumentos que recibe.

Los elementos que componen un procedimiento o función son:

  1. Un identificador, que es el nombre que sirve para invocar a esa función o a ese procedimiento.
  2. Una lista de parámetros, que es el conjunto de variables que se facilitan al procedimiento o función para que realice su tarea modularizada. Al hacer la abstracción del sistema, y modularlo en partes más accesibles, hay que especificar los parámetros formales que permiten la comunicación y definen el dominio (tipo de dato) de los datos de entrada. Esa lista de parámetros define el modo en que podrán comunicarse el programa que utiliza la función y la función usada.
  3. Un cuerpo o conjunto de sentencias. Las necesarias para poder realizar la tarea para la que ha sido definida la función o el procedimiento. Dentro de las sentencias también se encuentran las declaraciones de variables locales.
  4. Un entorno. Entendemos por entorno el conjunto de variables globales al procedimiento o función, que pueden ser usadas y modificadas dentro del ámbito de la función. Esas variables, por ser globales y por tanto definidas en un ámbito más amplio al ámbito local de la función, no necesitan ser explicitadas en la lista de parámetros de la función.

Es una práctica desaconsejable trabajar con el entorno de la función desde el ámbito local de la función. Hacerlo lleva consigo que esa función deja de ser independiente de ese entorno y, por tanto, deja de ser exportable. Perderíamos entonces el valor de la independencia funcional, que es una de las propiedades de la programación por módulos.

Podemos pues concluir que el uso de variables globales dentro del cuerpo de un procedimiento o función es altamente desaconsejable.

En el lenguaje C no se habla habitualmente de procedimientos, sino sólo de funciones. Pero existen de los dos tipos de módulos. Procedimientos serían, por ejemplo, la función printf no se invoca para calcular valores nuevos, sino para realizar una tarea sobre las variables. Más claro se ve con la función scanf que, efectivamente, realiza una tarea que se conoce por los cambios que ejerce sobre una variable concreta. Y funciones serían, por ejemplo, la función strlen, que a partir de una cadena de caracteres que recibe como parámetro de entrada calcula un valor, que es la longitud de esa cadena; o la función sin, que a partir de un ángulo que recibe como valor de entrada, calcula el seno de ese ángulo como valor de salida.

En definitiva, una función o procedimiento es una porción de código, identificada con un nombre concreto (su identificador), que realiza una tarea concreta, que puede ser entendida de forma independiente al resto del programa, y que tiene muy bien determinado cómo se hace uso de ella, con qué parámetros se la invoca y bajo qué condiciones puede ser usada, cuál es la tarea que lleva a cabo, y cuál es el valor que calcula y devuelve.

Tanto los procedimientos como las funciones pueden ser vistos como cajas negras: un código del que desconocemos sus sentencias, al que se le puede suministrar unos datos de entrada y obtener modificaciones para esos valores de entrada y/o el cálculo de un nuevo valor, obtenido a partir de los valores que ha recibido como entrada.

Con eso se consigue programas más cortos; que el código pueda ser usado más de una vez; mayor facilidad para gestionar un correcto orden de ejecución de sentencias; que las variables tengan mayor carácter local, y no puedan ser manipuladas fuera del ámbito para el que han sido creadas.

3. Funciones en C

3.1 ¿Qué es una Función en C?

Una función, en C, es un segmento independiente de código fuente, diseñado para realizar una tarea específica.

Las funciones son los elementos principales de un programa en C. Cada una de las funciones de un programa constituye una unidad, capaz de realizar una tarea determinada. Quizá se podría decir que un programa es simplemente un conjunto de definiciones de distintas funciones, empleadas luego de forma estructurada.

La primera función que aparece en todo programa C es la función principal, o función main. Todo programa ejecutable tiene una, y sólo una, función main. Un programa sin función principal no genera un ejecutable. Y si todas las funciones se crean para poder ser utilizadas, la función principal es la única que no puede ser usada por nadie: nadie puede invocar a la función principal de un programa. Tampoco puede llamarse a sí misma.

Dejar un Comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *