Problemas a resolver en programación de ordenadores. Analizar y plantear objetivos de programas (CU00108A)

Resumen: Entrega nº7 del curso Bases de la programación Nivel I.
Codificación aprenderaprogramar.com: CU00108A

 

 

Continuamos con otro posible planteamiento de objetivos de programación:

b) Desarrollar un programa para el cálculo de depósitos (volúmenes) de los siguientes tipos:

 
·  Esfera seccionada en su base inferior para conseguir una base plana de apoyo.
·  Cono circular.
·  Tronco de una pirámide.
 
 
Comentarios: problema que mentalmente somos capaces de abarcar con un esquema como el mostrado en la Figura 1.
 
A la hora de plantear el objetivo no es imprescindible elaborar un esquema como el anterior.

 

Es suficiente saber hacer una valoración global respecto a si creemos conocer los condicionantes, métodos 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 genéricos con variables no fijadas.
 
Ejemplo: Si habitualmente trabajamos con depósitos de combustible tipo esfera seccionada con una altura eliminada de 2 metros, podríamos "fijar" este parámetro de modo que dejará de ser un dato de entrada. Esto a su vez "simplificaría" el proceso de cálculo al tener una variable menos.
 
Sin embargo, recomendamos no hacer esto porque a la larga nos supondrá adquirir un mal hábito de programación. Lo adecuado será pues, programar el caso genérico de un depósito 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 través de una opción específica.
 
A la hora de programar nos interesa obtener la máxima potencialidad posible para el tiempo y esfuerzo que apliquemos a la tarea. Obtener potencialidad implica que el programa sea capaz de resolver el mayor número de casos y variantes posibles. Por tanto el programa hay que "abrirlo".
 

Figura 1. Esquema para un problema de cálculo de volúmenes. 

 

 
El planteamiento de objetivos se resume en el siguiente cuadro:
 

Proceso

Movimiento tipo
Finalidad
Centrar
Cerrar el problema
Hacer abarcable el objetivo subdividiendo en extensión y complejidad
Enfocar
Abrir el problema
Obtener máxima potencialidad
 

 

 

EJERCICIO
 
Distintas personas han planteado estos seis objetivos para desarrollar un programa útil para su trabajo. Hacer una valoración de los mismos.
 
1.    Programa para cálculo de muros de contención de tierras.  
2.   Programa para determinar la facturación de un producto que se vende a 0,60 € / ud para ventas de hasta 50 unidades y a 0,55 € / ud para ventas de más de 50 unidades.
3.    Programa para determinar el peso de una plancha de hierro rectangular a la que se hace una perforación circular.
4.    Programa para simular el disparo de un proyectil que se supone sigue un tiro parabólico.
5.    Programa para el cálculo de edificios de hasta 8 plantas.
6.    Programa para el cálculo de armaduras de muros de hormigón armado con puntera y talón.
 
 
 
SOLUCIÓN
 
1.    Planteamiento no suficientemente centrado. Existen diferentes tipologías de muros de contención, que a su vez pueden estar afectados por múltiples tipos de carga, etc. Por tanto, problema demasiado extenso.
 
2.    Problema bien centrado. Como única indicación, recomendamos programarlo partiendo de valores variables en vez de fijos. Es decir, desarrollaremos un programa para determinar la facturación de un producto que se vende a x € / ud para ventas de hasta n unidades y a z € / ud para ventas de más de n uds.
 
3.    Problema bien centrado y bien enfocado.
 
4.    Problema bien centrado y bien enfocado. Obviamente es más complejo que el caso de resolver el peso de la plancha de hierro en el que rápidamente se nos ocurren las variables y procedimientos de cálculo.
 
5.    Problema no centrado. Si se refiere a un cálculo de cimentación, estructura, instalaciones, etc., la cantidad de variantes y su complejidad invitan a subdividir, y mucho.
 
6.    Planteamiento que puede ser correcto aunque al menos mentalmente deberíamos acotar a un problema concreto (p. ej. muro que soporta un relleno sin talud y sin sobrecargas). Una vez resuelto este programa, podríamos aumentar las posibilidades de cálculo del mismo (p. ej. cargas lineales, cargas en faja, etc).

 

 

 

 

 

 

Para acceder a la información general sobre este curso y al listado completo de entregas pulsa en este link:  Ver curso completo.

Para  hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.

Donar o colaborar

Este sitio se mantiene abierto gracias al apoyo de muchas personas. Si crees que merece la pena apoyar económicamente este sitio web puedes realizar una donación o colaborar. Contacta con nosotros.

¿Puedo yo aprender?

Seas o no del área informática, si quieres aprender a programar te ofrecemos una solución guiada y personalizada: realizar un curso tutorizado on-line. Con este tipo de curso, podrás aprender a programar de forma ágil y amena.

Acceder a detalles y precios de los cursos tutorizados on-line

Política sobre cookies

Utilizamos cookies propias y de terceros para ofrecerte una mejor experiencia y servicio, de acuerdo a tus hábitos de navegación.

Si continúas navegando, consideramos que aceptas su uso. Puedes obtener más información en nuestra Política de Cookies.

En Facebook!

Ahora puedes seguirnos en Facebook. Noticias, novedades y mucho más ¡Te esperamos!

RANKING APR2+

Ranking de lenguajes y entornos de programación aprenderaprogramar.com
 

JULIO - AGOSTO 2017

1. Java / J2EE
2. Entornos Oracle
3. Entornos SQL Server
4. JavaScript, jQuery
5. .NET, C#
6. HTML, CSS
7. Android, iOS
8. Php, MySql


Acceder a detalles sobre el ranking de programación aprenderaprogramar.com

FOROS APR2+

Pregunta, responde, consulta, lee, intercambia...

Participa!!! Entra en los foros aprenderaprogramar.com.

             Copyright 2006-2017 aprenderaprogramar.com                La web abierta a cualquier persona interesada en la programación