Cambio de neumático pinchado
Un coche queda detenido en la carretera al desinflársele un neumático.1.Definición del problema
Conceptualización: El problema tiene lugar en una carretera, en donde un auto se ha quedado parado, pues uno de sus 4 neumáticos se ha desinflado.
El auto cuenta con las herramientas necesarias para que el conductor pueda cambiar el neumático, así como también con un neumático de repuesto en buenas condiciones.
El único dato de entrada con que se cuenta es la posición del neumático desinflado, es decir, en cuál de las cuatro ruedas ocurrió el percance.
Objetivo: el objetivo es cambiar el neumático desinflado por el de repuesto, de modo que el auto pueda andar.
Cuantitativamente, el logro del objetivo puede medirse verificando que los 4 Neumáticos estén inflados.
Elementos involucrados: Existe un único elemento activo que es el conductor del auto. Además, existen los siguientes elementos pasivos, que formarían parte del equipamiento del auto:
El auto cuenta con las herramientas necesarias para que el conductor pueda cambiar el neumático, así como también con un neumático de repuesto en buenas condiciones.
El único dato de entrada con que se cuenta es la posición del neumático desinflado, es decir, en cuál de las cuatro ruedas ocurrió el percance.
Objetivo: el objetivo es cambiar el neumático desinflado por el de repuesto, de modo que el auto pueda andar.
Cuantitativamente, el logro del objetivo puede medirse verificando que los 4 Neumáticos estén inflados.
Elementos involucrados: Existe un único elemento activo que es el conductor del auto. Además, existen los siguientes elementos pasivos, que formarían parte del equipamiento del auto:
Maletero
Ruedas, una de las cuales tiene el neumático desinflado
Pernos que sujetan cada rueda
Neumático de repuesto, en buenas condiciones, ubicado en maletero del auto
Gato hidráulico en el maletero del auto
Llave de cruz en el maletero del auto
Ruedas, una de las cuales tiene el neumático desinflado
Pernos que sujetan cada rueda
Neumático de repuesto, en buenas condiciones, ubicado en maletero del auto
Gato hidráulico en el maletero del auto
Llave de cruz en el maletero del auto
Entidades Involucradas: el objeto
principal es claramente el coche. Es esta entidad la que contiene todos
los elementos relevantes de manejar en esta solución, como son las
ruedas, el maletero, y todos los elementos dentro de él, necesarios para
el cambio de rueda.
Clases de Objetos: la única clase requerida en este caso, es Auto, la cual es descrita por medio de ciertos atributos y métodos.
Los atributos se definen directamente en función de los elementos pasivos requeridos en la solución, más un atributo indicando la rueda que está desinflada: maletero, gato hidráulico; llave de cruz; un perno (su
número: 1, 2, 3, ó 4); neumático desinflado; neumático de repuesto.
El método constructor de esta clase recibirá como parámetro el Nº del neumático desinflado.
Los otros métodos, se pueden resumir en las siguientes actividades:
Clases de Objetos: la única clase requerida en este caso, es Auto, la cual es descrita por medio de ciertos atributos y métodos.
Los atributos se definen directamente en función de los elementos pasivos requeridos en la solución, más un atributo indicando la rueda que está desinflada: maletero, gato hidráulico; llave de cruz; un perno (su
número: 1, 2, 3, ó 4); neumático desinflado; neumático de repuesto.
El método constructor de esta clase recibirá como parámetro el Nº del neumático desinflado.
Los otros métodos, se pueden resumir en las siguientes actividades:
- Retirar y colocar cosas
- Aflojar y apretar pernos
- Subir y bajar el auto con la gato
- Aflojar y apretar pernos
- Subir y bajar el auto con la gato
De esa manera, se podrían definir los siguientes métodos:
- Retirar "algo" de un "lugar"
- Colocar "algo" en un "lugar"
- Aflojar "un determinado perno"
- Apretar "un determinado perno"
- Subir auto desde "una determinada posición"
- Bajar auto desde "una determinada posición"
- Colocar "algo" en un "lugar"
- Aflojar "un determinado perno"
- Apretar "un determinado perno"
- Subir auto desde "una determinada posición"
- Bajar auto desde "una determinada posición"
Los términos resaltados en cursiva
corresponden a variables de entrada (parámetros) que proporcionan
generalidad a las operaciones.
Por ejemplo, el primer método puede emplearse para retirar el neumático
de repuesto del maletero, pero también para retirar la llave de cruz del maletero y un perno de la rueda.
Una definición más formal involucra especificar claramente cuáles son los parámetros con los que trabaja cada operación. Así, la lista definitiva de operaciones será la siguiente:
Por ejemplo, el primer método puede emplearse para retirar el neumático
de repuesto del maletero, pero también para retirar la llave de cruz del maletero y un perno de la rueda.
Una definición más formal involucra especificar claramente cuáles son los parámetros con los que trabaja cada operación. Así, la lista definitiva de operaciones será la siguiente:
- Retirar
Parámetros: Lo que se desea retirar y el lugar de dónde se retirará
- Colocar
Parámetros: Lo que se desea colocar y el lugar dónde se colocará
- Aflojar perno
Parámetros: La posición de la rueda, el número de perno que se desea aflojar.
- Apretar perno
Parámetros: La posición de la rueda, el número de perno que se desea apretar, y la herramienta
que se usará
- Subir auto
Parámetros: La posición de la rueda en donde se desea subir el auto y la herramienta (gato) que se usará
- Bajar auto
Parámetros: Ninguno.
Parámetros: Lo que se desea retirar y el lugar de dónde se retirará
- Colocar
Parámetros: Lo que se desea colocar y el lugar dónde se colocará
- Aflojar perno
Parámetros: La posición de la rueda, el número de perno que se desea aflojar.
- Apretar perno
Parámetros: La posición de la rueda, el número de perno que se desea apretar, y la herramienta
que se usará
- Subir auto
Parámetros: La posición de la rueda en donde se desea subir el auto y la herramienta (gato) que se usará
- Bajar auto
Parámetros: Ninguno.
Instancias: En el contexto del
problema la única instancia necesaria es una de la clase Auto, que
simplemente se llamará auto1, la cual contiene todos los atributos
necesarios para representar la situación.
3. Especificación del algoritmo
El algoritmo presentado a continuación
emplea las operaciones (tareas) definidas anteriormente para resolver el
problema de cambiar el neumático desinflado.
Se resalta los argumentos de cada operación.
La única operación elemental que se emplea para cambiar el flujo de control de las tareas es la iteración.
Algoritmo:
Considere N como la posición del neumático desinflado (dato de entrada), referenciado como 1, 2, 3, ó 4.
1. Declarar instancia de Auto, con N como parámetro.
2. Auto.Retirar( gato hidráulico, del maletero )
2. Auto.Retirar( llave de cruz, del maletero )
3. Itere sobre cada perno P = 1,2,3,4
3.1. Auto.Aflojar( perno P, en rueda N)
4. Auto.Subir( posición N )
5. Itere sobre cada perno P = 1,2,3,4
5.1. Auto.Retirar( perno P, de rueda N)
6. Auto.Retirar( neumático D, de rueda N)
7. Auto.Retirar( neumático R, del maletero )
8. Auto.Colocar( neumático R, en rueda N)
9. Auto.Colocar( neumático D, en maletero )
10. Itere sobre cada perno P = 1,2,3,4
10.1. Auto.Colocar( perno P, en rueda N )
11. Auto.Bajar()
12. Itere sobre cada perno P = 1,2,3,4
12.1. Auto.Apretar( perno P, en rueda N )
13. Auto.Colocar( llave de cruz, en maletero )
14. Auto.Colocar( gata hidráulica, en maletero )
Se resalta los argumentos de cada operación.
La única operación elemental que se emplea para cambiar el flujo de control de las tareas es la iteración.
Algoritmo:
Considere N como la posición del neumático desinflado (dato de entrada), referenciado como 1, 2, 3, ó 4.
1. Declarar instancia de Auto, con N como parámetro.
2. Auto.Retirar( gato hidráulico, del maletero )
2. Auto.Retirar( llave de cruz, del maletero )
3. Itere sobre cada perno P = 1,2,3,4
3.1. Auto.Aflojar( perno P, en rueda N)
4. Auto.Subir( posición N )
5. Itere sobre cada perno P = 1,2,3,4
5.1. Auto.Retirar( perno P, de rueda N)
6. Auto.Retirar( neumático D, de rueda N)
7. Auto.Retirar( neumático R, del maletero )
8. Auto.Colocar( neumático R, en rueda N)
9. Auto.Colocar( neumático D, en maletero )
10. Itere sobre cada perno P = 1,2,3,4
10.1. Auto.Colocar( perno P, en rueda N )
11. Auto.Bajar()
12. Itere sobre cada perno P = 1,2,3,4
12.1. Auto.Apretar( perno P, en rueda N )
13. Auto.Colocar( llave de cruz, en maletero )
14. Auto.Colocar( gata hidráulica, en maletero )
4.Validación del algoritmo
Dominios: Los posibles dominios que existen en el contexto de este problema se constituyen a partir del neumático que se haya desinflado.
Por ejemplo, un posible dominio será aquel en que el neumático desinflado es el de la rueda izquierda delantera.
Validación: Ejecutando el algoritmo para cualquiera de los cuatro neumáticos del auto puede verificarse que la parametrización de las operaciones elementales permite alcanzar el objetivo buscado.
Al final de la ejecución del algoritmo, para cualquier dominio (es decir, considerando cualquiera de los cuatro neumáticos), el auto contará con todos sus neumáticos inflados y por consiguiente podrá andar.
5. Limitaciones del algoritmoPor ejemplo, un posible dominio será aquel en que el neumático desinflado es el de la rueda izquierda delantera.
Validación: Ejecutando el algoritmo para cualquiera de los cuatro neumáticos del auto puede verificarse que la parametrización de las operaciones elementales permite alcanzar el objetivo buscado.
Al final de la ejecución del algoritmo, para cualquier dominio (es decir, considerando cualquiera de los cuatro neumáticos), el auto contará con todos sus neumáticos inflados y por consiguiente podrá andar.
El desarrollo del algoritmo se hizo para un auto que tuviera 4 pernos sujetando cada rueda. Sin embargo, puede modificarse para recibir este valor como un dato de entrada.
Por simplicidad se dejaron de lado algunas consideraciones, como por ejemplo, abrir y cerrar el maletero, transportar los neumáticos y las herramientas, etc.
Además, la solución presentada se aplica únicamente a autos que cuenten con cuatro neumáticos.
No hay comentarios:
Publicar un comentario