La anécdota en análisis de problemas de programación: programar optimizar llamadas telefónicas (CU00122A)

Resumen: Entrega nº 21 del curso Bases de la programación Nivel I.
Codificación aprenderaprogramar.com: CU00122A
 
 
LA ANÉCDOTA EN TORNO A CONOCER EL PROBLEMA
 
En cierta ocasión nos propusimos desarrollar un programa informático que permitiera decidir qué operador telefónico convenía usar para realizar una llamada, desde el punto de vista económico. Como condicionantes se pensó en las distintas compañías que permitían todo tipo de llamadas, los tipos de teléfonos (móvil-fijo), los lugares de origen-destino, las tarifas y la hora de la llamada (horario reducido o normal).
 
 
 
 
Así pues, se decidió, antes de recabar todos los datos y ni siquiera de pensar en la estrategia de resolución, realizar un tanteo entre dos compañías 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 gráficos seguían las tarifas, posibles simplificaciones, etc. Muchas de las tablas obtenidas fueron de este tipo:
 
 
HORARIO NORMAL (8 a 20 horas, de lunes a viernes)
LLAMADAS CON OPER. 1 DE FIJO A MÓVIL
LLAMADAS CON OPER. 2 DE FIJO A MÓVIL
 
A oper. 1
A oper. 2
A oper. 3
A oper. 1
A oper. 2
A oper. 3
1min
50,4
50,4
55,4
45
45
45
1 min 30 s
69,9
69,9
77,4
67,5
67,5
67,5
2 min
89,4
89,4
99,4
90
90
90
2 min 30 s
108,9
108,9
121,4
112,5
112,5
112,5
3 min
128,4
128,4
143,4
135
135
135
                          Nota: Coste de las llamadas en céntimos de euro.
 
 
 
De estas tablas se desprendían preguntas-respuestas tales como:
 
Pregunta: ¿Qué operador debo usar si voy a llamar a un móvil desde un fijo hoy miércoles en horario laboral?
 
Respuesta:Si la llamada dura menos de 1 min. y 30 seg. debe usar el Operador 2. Si la llamada dura 2 min. y es a un móvil del Operador 1 ó 2 puede usar indistintamente el Operador 1 o el Operador 2. Si la llamada dura dos minutos y es a un móvil del Operador 3 debe usar el Operador 2. Si la llamada dura dos minutos y medio o más y es a un móvil del Operador 1 ó 2 debe usar el Operador 1, pero si es a un móvil del Operador 3 debe usar el Operador 2.


Gráficamente algo así: 

 

 
Del tanteo se desprendía que había más condicionantes de los esperados (p. ej. no bastaba saber si se llamaba a un fijo o a un móvil sino que había que saber a qué operador móvil se llamaba; por otro lado, la existencia de un coste de establecimiento de llamada daba lugar a gráficas de tarifas no paralelas sino secantes...). Esto daba pie a concluir que el objetivo, tal y como se había planteado, era una quimera. Había que replantearlo o cesar en el empeño.
 
La conclusión fue que en las compañías telefónicas cuanto menos se piense mejor, y que si un programa nos va a complicar la vida en vez de facilitárnosla, más vale dejarlo en el tintero.

 

 

P. S. Recordando al célebre “Y sin embargo, se mueve...”. Y sin embargo, se puede programar...
 

 

 

 

 

 

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.

¿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