Estamos en el año 2525 y acabas de emprender un viaje para visitar todos los planetas del sistema solar (Mercurio, Venus, la Tierra, Marte, Júpiter, Saturno, Urano y Neptuno). La primera parada es Mercurio, donde la aduana te exige llenar un formulario (al parecer, la burocracia no es exclusiva de la Tierra). Cuando entregas el formulario al agente de aduanas, este lo examina con atención y frunce el ceño. «¿De verdad esperas que te crea que solo tienes 50 años? ¡Debes tener cerca de 200 años!».
Te hace gracia y esperas que el agente de aduanas se ría, pero parece estar completamente en serio. Te das cuenta de que escribiste tu edad en años terrestres, pero el agente esperaba que la dieras en años mercurianos. Como el periodo orbital de Mercurio alrededor del sol es mucho más corto que el de la Tierra, en realidad eres bastante mayor en años mercurianos. Después de unos cálculos rápidos, puedes dar tu edad en años mercurianos. El agente de aduanas sonríe, satisfecho, y te indica que pases. Te propones calcular de antemano tu edad en cada planeta antes de futuros controles de aduana, para evitar este tipo de confusiones.
Si te preguntas por qué Plutón no entró en la lista, mira este video de YouTube.
Dada una edad en segundos, calcula qué edad tendría alguien en un planeta de nuestro sistema solar.
Un año terrestre equivale a 365.25 días terrestres, o 31,557,600 segundos. Si te dijeran que alguien tiene 1,000,000,000 segundos de edad, su edad sería de 31.69 años terrestres.
Para los demás planetas, tienes que tener en cuenta su período orbital en años terrestres:
| Planeta | Período orbital en años terrestres |
|---|---|
| Mercurio | 0.2408467 |
| Venus | 0.61519726 |
| Tierra | 1.0 |
| Marte | 1.8808158 |
| Júpiter | 11.862615 |
| Saturno | 29.447498 |
| Urano | 84.016846 |
| Neptuno | 164.79132 |
La duración real de una órbita completa de la Tierra alrededor del Sol se acerca más a 365.256 días (1 año sidéreo). El calendario gregoriano tiene, en promedio, 365.2425 días. Aunque no es del todo exacto, 365.25 es el valor que se usa en este ejercicio. Consulta Año en Wikipedia para ver más formas de medir un año.
En este ejercicio, se espera que devuelvas las edades usando una cantidad física con una unidad personalizada que represente la duración de un solo año en ese planeta. En Arturo, una cantidad consta de un valor numérico y una unidad de medida asociada.
length: 10`m
units length ; `m
scalar length ; 10
10`m * 10`m ; 100 m²
La unidad `yr integrada de Arturo se convierte a 31556952 segundos. Por lo tanto, tendrás que definir y usar tu propia unidad de año en términos del número de segundos mencionado anteriormente en las instrucciones.
Las cantidades se pueden convertir a otra unidad compatible.
convert 1`m `ft ; 1250/381 ft
convert 100`m2 `ft2 ; 156250000/145161 ft²
property `m ; length
property `m2 ; area
convert 1`m `m2 ; conversion error results
Debido a las limitaciones de precisión de los números de punto flotante, Arturo a veces almacena el valor escalar como un número racional.
La función to se puede usar para obtener el valor como un número de punto flotante aproximado.
length: convert 1`m `ft ; 1250/381 ft
to :floating length ; 3.280839895013123
Arturo también nos permite especificar nuestras propias unidades para las cantidades.
specify 'nauMile 1.151`mi
property `nauMile length
specify 'lea 3.00579`nauMile
property `lea ; length
depth: 20000`lea
convert depth `km ; 111355.7993425152 km
Regístrate en Exercism para aprender y dominar Arturo con 79 ejercicios y mentoría humana real, todo gratis.