O ano é 2525 e acabaste de embarcar numa viagem para visitar todos os planetas do Sistema Solar (Mercúrio, Vénus, Terra, Marte, Júpiter, Saturno, Úrano e Neptuno). A primeira paragem é Mercúrio, onde as alfândegas exigem que preenchas um formulário (aparentemente a burocracia não é exclusiva da Terra). Quando entregas o formulário ao funcionário da alfândega, ele examina-o com atenção e franze o sobrolho. «Achas mesmo que vou acreditar que tens apenas 50 anos? Deves estar mais perto dos 200 anos!»
Achas piada e esperas que o funcionário da alfândega comece a rir, mas ele parece estar perfeitamente sério. Percebes então que indicaste a tua idade em anos terrestres, mas o funcionário esperava-a em anos mercurianos! Como o período orbital de Mercúrio à volta do Sol é bastante mais curto do que o da Terra, na verdade és muito mais velho em anos mercurianos. Depois de alguns cálculos rápidos, consegues indicar a tua idade em anos mercurianos. O funcionário da alfândega sorri, satisfeito, e faz-te sinal para seguires. Ficas com a nota mental de calcular antecipadamente a tua idade em cada planeta antes de futuras verificações alfandegárias, para evitares este tipo de confusões.
Se estás a pensar porque é que Plutão ficou de fora, vê este vídeo do YouTube.
Dada uma idade em segundos, calcula que idade teria alguém num planeta do nosso Sistema Solar.
Um ano terrestre equivale a 365,25 dias terrestres, ou 31 557 600 segundos. Se te dissessem que alguém tinha 1 000 000 000 segundos de idade, essa pessoa teria 31,69 anos terrestres.
Para os outros planetas, tens de ter em conta o período orbital em anos terrestres:
| Planeta | Período orbital em anos terrestres |
|---|---|
| Mercúrio | 0,2408467 |
| Vénus | 0,61519726 |
| Terra | 1,0 |
| Marte | 1,8808158 |
| Júpiter | 11,862615 |
| Saturno | 29,447498 |
| Úrano | 84,016846 |
| Neptuno | 164,79132 |
O comprimento real de uma órbita completa da Terra em torno do Sol é mais próximo de 365,256 dias (1 ano sideral). O calendário gregoriano tem, em média, 365,2425 dias. Embora não seja totalmente exato, 365,25 é o valor usado neste exercício. Vê Ano na Wikipédia para mais formas de medir um ano.
Neste exercício, espera-se que devolvas as idades através de uma grandeza física com uma unidade personalizada que representa a duração de um ano nesse planeta. Em Arturo, uma quantidade é composta por um valor numérico e por uma unidade de medida associada.
length: 10`m
units length ; `m
scalar length ; 10
10`m * 10`m ; 100 m²
A unidade `yr incorporada no Arturo converte-se em 31556952 segundos. Por isso, vais ter de definir e usar a tua própria unidade de ano com base no número de segundos mencionado anteriormente nas instruções.
As quantidades podem ser convertidas para outra unidade compatível.
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
Devido às limitações de precisão dos números de vírgula flutuante, o Arturo guarda por vezes o escalar como um número racional.
A função to pode ser usada para obter o valor como um número de vírgula flutuante aproximado.
length: convert 1`m `ft ; 1250/381 ft
to :floating length ; 3.280839895013123
O Arturo também nos permite especificar as nossas próprias unidades para as quantidades.
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
Inscreve-te no Exercism para aprenderes e dominares Arturo com 79 exercícios, e mentoria humana real, tudo grátis.