Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Aunque pueda parecer extrao, buena parte de los quebraderos de cabeza a los que nos
enfrentamos programando derivan de no saber bien lo que queremos hacer. Esto responde al
siguiente esquema:
Lo cual implica, simplemente, comenzar una tarea sin la preparacin necesaria. En el ejemplo
del edificio slo en situaciones de extrema sencillez (por ejemplo levantar un cuarto) el
resultado ser satisfactorio. En el resto de los casos la falta de mtodo llevar a defectos o
colapsos debido a la ausencia de proyecto, planos, clculos, etc.
Cada programador tiene sus propios esquemas de trabajo, pero en lneas generales podemos
distinguir las siguientes fases en el desarrollo de un programa:
CONOCER EL PROBLEMA A RESOLVER
1. Cul es mi objetivo?
2. Cules son los condicionantes que afectan al problema?
3. Qu mtodo o esquema de resolucin voy a aplicar?
4. Cules son los datos de partida?
5. Qu resultado quiero obtener?
SOBRE EL OBJETIVO
Aunque ser la experiencia la que mejor nos gue a la hora de plantear objetivos podemos
usar esta regla: "Slo trataremos de programar aquello que mentalmente somos capaces de
abarcar en mtodo, extensin y condicionantes".
Esfera seccionada en su base inferior para conseguir una base plana de apoyo.
Cono circular.
Tronco de una pirmide.
Comentarios: problema que mentalmente somos capaces de abarcar con un esquema como
el mostrado en la Figura 1.
Es suficiente saber hacer una valoracin global respecto a si creemos conocer los
condicionantes, mtodos y datos de partida as como si tenemos claros los resultados a
mostrar.
Por ltimo, en cuanto al objetivo, desde este momento conviene empezar a pensar en
resolver problemas genricos con variables no fijadas.
Sin embargo, recomendamos no hacer esto porque a la larga nos supondr adquirir un mal
hbito de programacin. Lo adecuado ser pues, programar el caso genrico de un depsito
con radio r y altura eliminada h. Si se quiere evitar que el usuario tenga que introducir un
valor que se repite (h) podemos hacer que aparezca como predeterminado en la lista de
datos de entrada, o bien que se acceda a cambiarlo a travs de una opcin especfica.
A la hora de programar nos interesa obtener la mxima potencialidad posible para el tiempo
y esfuerzo que apliquemos a la tarea. Obtener potencialidad implica que el programa sea
capaz de resolver el mayor nmero de casos y variantes posibles. Por tanto el programa hay
que "abrirlo".
Figura 1. Esquema para un problema de clculo de volmenes.
EJERCICIO
Distintas personas han planteado estos seis objetivos para desarrollar un programa til para
su trabajo. Hacer una valoracin de los mismos.
SOLUCIN
6. Planteamiento que puede ser correcto aunque al menos mentalmente deberamos acotar
a un problema concreto (p. ej. muro que soporta un relleno sin talud y sin sobrecargas). Una
vez resuelto este programa, podramos aumentar las posibilidades de clculo del mismo (p.
ej. cargas lineales, cargas en faja, etc).
Ejemplo: para el clculo de prdidas de carga en una tubera el condicionante: "se trata de
rgimen laminar?" supone la bifurcacin:
4.1 Para admisin de datos: pueden resultar no admisibles ciertos valores para datos de
entrada, bien por motivos tcnicos, comerciales u operativos, o bien por imposibilidad fsica,
matemtica, etc.
Ejemplo: para ordenar una serie de nmeros es viable aceptar nmeros positivos o
negativos. En cambio, si pedimos la altura de un pilar no tiene sentido admitir un valor
negativo.
Si tratamos de realizar ciertos clculos relacionados con una nave industrial, podemos acotar
el rango de luz o distancias entre pilares a distancias tcnicamente viables. Podemos
preparar el programa para que detecte cualquier valor que consideremos anmalo e impida
la continuacin de procesos hasta tanto no se corrija.
4.2 Para la emisin de resultados: ciertos datos de entrada en principio viables pueden
dar lugar a resultados no admisibles.
Ejemplo:
Puede darse el caso de problemas largos (muchos pasos a dar) pero operaciones sencillas.
Ms que la longitud, ser la existencia de mltiples bifurcaciones lo que pueda complicar la
programacin.
Ejemplo:
Aparte de lo dicho para el caso anterior, convendr tener cuidado con el uso de frmulas
matemticas y su escritura. Lo estudiaremos ms adelante.
As pues, se decidi, antes de recabar todos los datos y ni siquiera de pensar en la estrategia
de resolucin, realizar un tanteo entre dos compaas a las que llamaremos Operador 1 y
Operador 2. El tanteo consisti en una comparativa en una hoja de excel que permitiera
valorar la influencia del destino de llamada, qu tipo de grficos seguan las tarifas, posibles
simplificaciones, etc. Muchas de las tablas obtenidas fueron de este tipo:
Pregunta: Qu operador debo usar si voy a llamar a un mvil desde un fijo hoy mircoles
en horario laboral?
Del tanteo se desprenda que haba ms condicionantes de los esperados (p. ej. no bastaba
saber si se llamaba a un fijo o a un mvil sino que haba que saber a qu operador mvil se
llamaba; por otro lado, la existencia de un coste de establecimiento de llamada daba lugar a
grficas de tarifas no paralelas sino secantes...). Esto daba pie a concluir que el objetivo, tal y
como se haba planteado, era una quimera. Haba que replantearlo o cesar en el empeo.
La conclusin fue que en las compaas telefnicas cuanto menos se piense mejor, y que si
un programa nos va a complicar la vida en vez de facilitrnosla, ms vale dejarlo en el
tintero.
P. S. Recordando al clebre Y sin embargo, se mueve.... Y sin embargo, se puede
programar...