Subscribe Twitter Twitter

martes, 3 de agosto de 2010

Programación desde cero: Procedimientos y funciones

No sé si te habrás encontrado en algún manual algo relacionado con los conceptos de procedimientos y funciones aunque no sea así es importante para lo que es fundamentos de la programación en general.

Tanto un procedimiento como una función son porciones de código que hacen algo y que se les ha dado un nombre, por ejemplo imagínate que dentro de una misma aplicación quieres comprobar si un año es bisiesto y para ello hay que hacer una serie de comprobaciones, pero tu en tu aplicación tienes que hacerlo en varios sitios por lo que si copias el mismo código varias veces iba a quedar muy redundante a parte que si por lo que sea te has equivocado en alguna condición de año bisiesto tienes que andar buscando por toda la aplicación en los sitios en los que la copiaste para ir modificándolo.

¿Qué hacemos? pues a ese trozo de código le asignamos un nombre por ejemplo "comprobacionBisiesto" y de esa manera en todas las partes de la aplicación en las que quiera comprobar si un año es bisiesto tendría que poner "comprobaciónBisiesto" y de esa manera cuando tengamos que hacer un cambio en "comprobaciónBisiesto" solo lo haremos una vez.


Pero por ejemplo tomando como base "comprobaciónBisiesto" para poder evaluar si año es bisiesto debo decirle a "comprobaciónBisiesto" cuál es el año que quiero que compruebe y por ello lo que hacemos es pasarle parámetros, ésto es común tanto cuando hablamos de procedimientos como de funciones en cambio la diferencia entre ambos es si esa porción de código que hemos escrito (comprobaciónBisiesto) devuelve algo o no, por ejemplo si queremos que devuelva un dato lo haremos con una función y sino con un procedimiento.

Hay lenguajes de programación que lo que nos permiten es las funciones y procedimientos que los parámtros de entrada (en este caso sería el año) puedan ser parámetros también de salida (para así devolver varios datos) pero eso depende del lenguaje de programación por lo que aquí no nos interesa ya que estamos hablando de programación en general.

Eso si en las funciones como solo se devuelve 1 dato y solo 1 dentro del trozo de código hay que hacer un return con la información a devolver ya sea un dato o una variable.


En nuestro caso de ComprobaciónBisiesto devolvería un tipo de dato booleano (verdadero/falso) y de esa manera sabríamos si lo es o no. En función del lenguaje de programación el tipo booleano puede tomar valores como 0/cualquier número, 0/1, true/false... esta representación va en función del lenguaje de programación.

En este caso lo que estamos haciendo es pasarle a la función un año y nos devuelve si es bisiesto o no.



Booleano comprobacionBisiesto(entero Año){
booleano esBisiesto

//Aquí irian todas las comprobaciones pertinentes

si (esBisiesto)
return verdadero
sino
return falso
// Otra opción más eficiente sería: return esBisiesto
}



En éste caso le pasamos como parámetro un tipo de dato entero y mostramos por pantalla su área pero como ves no devuelve nada ya que es un procedimiento.


MostrarAreaCuadrado(entero a){

mostrarPorPantalla(a*a);

}





0 comentarios:

Publicar un comentario