viernes, 23 de diciembre de 2011

DIFERENCIA ENTRE PROCEDIMIENTO Y FUNCION ENC++

Procedimientos y Funciones en C++.
En su concepción más simple, un procedimiento es una construcción que permite dar nombre a un
conjunto de sentencias y declaraciones asociadas que se usan para resolver un subproblema dado. Los
procedimientos no siempre realizan la misma función y pueden recibir parámetros. No repetir código no
es la única razón para estructurar un programa usando procedimientos. Puesto que un subproblema
puede codificarse como un procedimiento, un problema complejo puede dividirse en subproblemas más
simples, quienes a su vez pueden ser de nuevo subdivididos hasta llegar a la descripción de
subproblemas muy simples que se puedan codificar como procedimientos escritos en C++. La filosofía
que acabamos de presentar se denomina Refinamiento Progresivo o por pasos, diseño descendente,
Programación Top-Down o bien Divide y Vencerás.
En C++ no hay diferencias entre procedimientos y funciones: todo son funciones, con la diferencia
de que un procedimiento es una función que no devuelve nada (void). Tanto procedimientos como
funciones, deben ser declarados antes de poder ser usados. Esto es posible de dos formas: indicando su
cabecera (nombre, parámetros y tipo de retorno) después de la zona de constantes y antes del programa
principal, o bien escribir el procedimiento o la función entera en dicha zona. Nosotros recomendamos la
primera opción, ya que evita problemas de orden de implementación para solucionar problemas de
ámbito. Mientras que un procedimiento ejecuta un grupo de sentencias, una función además devuelve un
valor al punto donde se llamó. Una llamada a una función puede aparecer como operando de alguna
expresión. El valor de la función se usa, por tanto, para calcular el valor total de la expresión. El uso de
una función puede ser algo como 2.0+Maximo(3.0,p)/6.90, de forma que la llamada devolverá
el mayor valor entre 3.0 y el contenido de la variable p y con dicho valor se evaluará el resto de la
expresión. Otro ejemplo puede ser: p = Maximo( 3.0, p ).