La Esencia de la Lógica de Programación – Omar Ivan Trejos Buriticá
leinard28 de Octubre de 2013
15.296 Palabras (62 Páginas)410 Visitas
La Esencia de la Lógica de Programación – Omar Ivan Trejos Buriticá
307
Capítulo 11
Funciones
Concepto General
Ningún concepto a nivel de la programación es mas importante que el concepto de Función. Sin
temor a equivocarme puedo garantizarle que la Función es lo que podríamos llamar la gran
“vedette” de la programación. Esto por ahora no será muy significativo para usted pues tendrá que
depurar muy bien el concepto de Función como tal para que vea que tan sencillo se vuelve
programar basados en esta poderosísima herramienta.
Antes de entrar a definir qué es una función quiero exponerle un breve texto para que lo lea
detenidamente:
Receta para preparar unos Huevos Fritos
Ingredientes:
-2 Huevos Crudos
-¼ de cucharadita de sal
-Una cucharadita de aceite
Preparación:
Colóquese una cacerola a calentar en medio. Échese la cucharadita de aceite hasta cuando esté
bien caliente. Quiébrense los huevos y vacéese su contenido en la cacerola. Esperar hasta cuando
Capítulo 11 - Funciones
la clara esté bien blanca. Echar por encima del huevo de manera que quede repartida
uniformemente la sal que se incluyó en los ingredientes.
Resultado:
Unos ricos huevos en cacerola que pueden ser acompañados con un pan.
Estoy absolutamente seguro que en este momento del libro usted estará un poco desconcertado
pues no sabrá el porqué he comenzado este capítulo explicando algo que cada uno de nosotros
de alguna manera sabe como es preparar unos huevos fritos. Antes de entrar un poco mas en
materia no está de más reescribir la receta anterior de la siguiente forma
Receta para preparar unos Huevos Fritos
Ingredientes:
-2 Huevos Crudos
-¼ de cucharadita de sal
-Una cucharadita de aceite
Preparación:
Colóquese una cacerola a calentar en medio.
Échese la cucharadita de aceite hasta cuando esté bien caliente.
Quiébrense los huevos y vacéese su contenido en la cacerola.
Esperar hasta cuando la clara esté bien blanca.
Echar por encima del huevo de manera que quede repartida uniformemente la sal que
se incluyó en los ingredientes.
Resultado:
Unos ricos huevos en cacerola que pueden ser acompañados con un pan.
Solo es un pequeño cambio como para que de alguna manera se vaya asociando con lo que hasta
el momento hemos visto. De acuerdo a todo lo anterior entonces tenemos la Receta para preparar
unos Huevos Fritos o, dicho mejor en nuestros términos, el Algoritmo para preparar unos Huevos
Fritos.
Acerca de esta Receta (o Algoritmo) vamos a plantear algunas precisiones:
a.
La receta tiene un nombre específico que, en condiciones normales, no lo tiene ninguna otra
receta. Esto quiere decir algo que aunque parece redundante será muy importante plantearlo
desde ahora y es que la única receta que debe llamarse Receta para preparar unos Huevos
Fritos es la que nos enseña a preparar unos huevos fritos. Obvio, cierto..?
b.
Para la preparación efectiva de esta receta podemos ver que se necesitan unos ingredientes
sin los cuales sería imposible realizarla, por lo menos, tal como está explicada en el texto de la
La Esencia de la Lógica de Programación – Omar Ivan Trejos Buriticá
309
misma. Estos ingredientes serán diferentes por cada receta aunque puedan existir recetas que
tengan los mismos ingredientes y su diferencia radicará en el texto de la misma o sea en su
preparación real. Es importante anotar que los ingredientes tienen unas características en
tamaño, en peso y en medida. Igualmente es útil anotar que los ingredientes no se explican
detalladamente, por ejemplo: Se supone, en esta receta, que estamos hablando de huevos de
gallina.
c.
La preparación no es mas que un conjunto de pasos secuenciales y ordenados que nos
permiten lograr el objetivo inicial (que en este caso era preparar unos Huevos Fritos). Estos
pasos no se pueden alterar ya que hacerlo no nos garantizaría que el resultado final fuera el
esperado.
d.
El resultado final de la receta debe lograr el objetivo inicial planteado y ese resultado final es el
que puede ser utilizado para todo aquello en lo cual consideremos que puede sernos útil.
Bien, de acuerdo a lo dicho anteriormente, nuestra receta también podríamos haberla escrito de la
siguiente forma para estar acorde con las normas algorítmicas de seudocódigo planteadas a lo
lardo de este libro.
Receta para preparar unos Huevos Fritos (2 Huevos Crudos, ¼ de cucharadita
de sal, Una cucharadita de aceite)
Inicio
Colocar cacerola a calentar en medio
Echar la cucharadita de aceite
Mientras el aceite no esté bien caliente
Esperar
Fin_Mientras
Quebrar los huevos (uno a uno)
Vaciar su contenido en la cacerola
Mientras la clara no esté bien blanca
Esperar
Fin_Mientras
Echar la sal por encima del huevo
Verificar que quede repartida uniformemente
Fin
Resultado:
Unos ricos huevos en cacerola que pueden ser acompañados con un pan.
Note usted que vista así la Receta inicial puede ser vista, ahora sí oficialmente, como un algoritmo.
Un algoritmo que tiene unas características:
Capítulo 11 - Funciones
a. Tiene un nombre específico y único
b. Tiene unos ingredientes que son los que permiten que la receta se realice
c. Tiene un conjunto de pasos que son la receta en sí
d. Tiene un resultado final que es el objetivo de la receta
Siendo así podríamos representar también este algoritmo con el siguiente diagrama de bloques
2 Huevos, Sal
y Aceite
Estufa, Cacerola,
Corriente
Eléctrica y
conexiones
Receta para
preparar unos
Huevos Fritos
Estufa,
Cacerola,
Corriente
Eléctrica y
Conexiones
Huevos Fritos
Basados en lo concluido con esta receta podemos escribir la siguiente definición:
Función
Conjunto de órdenes que:
1. Permite lograr un objetivo
2. Tiene un nombre único identificativo
3. Puede necesitar parámetros para lograr dicho objetivo
4. Nos puede retornar un resultado que deberá concordar
con el objetivo propuesto
5. Puede ser manejado como una sola unidad
La Esencia de la Lógica de Programación – Omar Ivan Trejos Buriticá
311
Conociendo usted la estética y características de este libro, sé que debe estarse preguntando el
porqué esta definición, que pareciera ser una mas en la teoría de la programación, se ha colocado
con tanta rimbombancia y de manera tan destacademente notoria.
No es un “decoradito” que le coloqué al libro para que usted no se me fuera a aburrir. No. Es
precisamente la definición mas importante que tiene la programación pues no en vano le dije al
inicio de este capítulo que el concepto de Función se podía considerar como la gran “Vedette” de la
programación.....voy a explicarle el porqué.
Problemas Reales de la Programación
Cuando se desarrolla un programa el programador se enfrenta a varios problemas entre los cuales
se encuentran los errores que en uno de los capítulos anteriores le expliqué. Y a hablábamos pues
de los errores de sintaxis y los errores de precaución. En ese momento le decía yo que los errores
mas difíciles de encontrar eran los errores lógicos y que dichos errores solo se podían enfrentar
desarrollando una excelente Prueba de Escritorio. Sin embargo no es fácil concebir una prueba de
escritorio cuando hemos desarrollado un algoritmo que tiene mas de 1000 líneas...(Ojo!!! Mas de
mil líneas) pues de manera muy fácil podemos “perdernos” en la ejecución de dicha prueba o
sencillamente hacerla mal.
También cabe anotar que cuando se desarrolla un programa extenso, muchas veces nos
encontramos con que parte de el puede sernos útil en otro programa pero con frecuencia lo que
nos toca hacer es volver a copiar las líneas que creemos pueden tener cabida en el otro algoritmo.
De esta manera podemos resumir los problemas reales de la programación en 3 tópicos:
a.
Necesidad de simplificar la idea general para lograr un objetivo
Cuando usted se enfrenta a un objetivo, cualquiera que este sea, no sabemos en primera instancia
cuántas líneas (u órdenes) va a tener nuestro algoritmo.
...