Programación Procedimientos y Funciones

PROCEDIMIENTOS Y FUNCIONES

La resolución de problemas complejos se facilita considerablemente si se dividen en problemas mas pequeños; y la resolución de estos subproblemas se realiza mediante subalgoritmos.

Los subalgoritmos son unidades de programa o módulos que están diseñados para ejecutar laguna tarea específica. Éstos, constituidos por funciones o procedimientos, se escriben solamente una vez, pero pueden ser referenciados en diferentes puntos del programa, de modo que se puede evitar la duplicación innecesaria del código.

El módulo principal se ejecuta en una primera instancia, que da la orden de inicio de ejecución de los subprogramas. Puede ser ejecutado n veces. Es importante saber que datos se van a compartir entre los programas.

El subprograma es un programa en sí mismo, ejecutado por la solicitud del programa principal o de otro subprograma, una n cantidad de veces. Cuando realiza la solicitud, el programa se detiene hasta que el subprograma deja de realizar su tarea, luego continúa; esto se conoce como control de ejecución.

FUNCIONES

El concepto de función en programación se fundamenta en el concepto de función matemática.

Una función, desde el punto de vista de la programación, se define como un proceso que recibe valores de entrada (llamados parámetros) y el cual retorna un valor resultado. Adicionalmente, las funciones son subprogramas dentro de un programa, que se pueden invocar (ejecutar) desde cualquier parte del programa, es decir, desde otra función, desde la misma función o desde el programa principal, cuantas veces sea necesario.
Las funciones se usan cuando existen dos o más porciones de algoritmo dentro de un programa que son iguales o muy similares, por ejemplo, en un algoritmo se puede emplear varias veces una porción de algoritmo que eleva a una potencia dada un número real. De esta manera conviene definir una función que al ser invocada ejecute dicho código, y en el lugar donde estaba la porción de algoritmo original, se hace un llamado (ejecución) de la función creada.

Ejemplo:

Ejemplo:

El siguiente programa lee por teclado un año y calcula y muestra si es bisiesto. Para realizar el cálculo utiliza una función llamada bisiesto.

La función bisiesto recibe el año leído por teclado, comprueba si es o no bisiesto y devuelve 1 si lo es ó 0 si no lo es.

// Programa que lee un año y muestra si es o no bisiesto

#include

using namespace std;

int bisiesto(int);   //declaración o prototipo de la función

int main()

{

   int anio;

   cout<<«Introduce a»<<(char)164<<«o: «; //164 ascii de ñ

   cin >> anio;

   if(bisiesto(anio))  //llamada a la función

      cout << «Bisiesto» << endl;

   else

      cout << «No es bisiesto» << endl;

   system(«pause»); 

}

int bisiesto(int a)   //definición de la función    

{

    if(a%4==0 and a%100!=0 or a%400==0)

        return 1;

    else

        return 0;

}

FUNCIONES RECURSIVAS

Una función recursiva es una función que se define en términos de si misma, es decir, que el resultado de la función depende de resultados obtenidos de evaluar la misma función con otros valores.
Se debe tener mucho cuidado en la definición de funciones recursivas, pues si no se hace bien, la función podría requerir de un cálculo infinito o no ser calculable.

PROCEDIMIENTOS

En muchos casos existen porciones de código similares que no calculan un valor si no que por ejemplo, presentan información al usuario, leen una colección de datos o calculan más de un valor. Como una función debe retornar un único valor, este tipo de porciones de código no se podrían codificar como funciones. Para superar este inconveniente se creó el concepto de procedimiento. Un procedimiento se puede asimilar a una función que puede retornar más de un valor mediante el uso de parámetros por referencia.
.
Los procedimientos se usan para evitar duplicación de código y conseguir programas más cortos. Son también una herramienta conceptual para dividir un problema en subproblemas logrando de esta forma escribir más fácilmente programas grandes y complejos.

Ejemplo:

Ejemplo. Desarrollar un procedimiento que lea una colección de hasta cien (100) números
reales.

procedimiento leer_arreglo (ref n : entero, ref A : arreglo[100] de real)
variables
        i : entero
inicio
/* las siguientes cuatro líneas son para obtener el numero de datos a leer. Se controla que no sea un numero invalido */
repetir
       escribir (“Ingrese el numero de reales a operar”)
       leer (n)
hasta (0 < n & n <=100)
/* las siguientes seis líneas leen los n datos a procesar */
para ( i :=0 hasta n – 1) hacer
        escribir (“Ingrese un dato ”)
        leer (A[i])
fin_para
fin_procedimiento

Deja un comentario

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