Зараз 2525 рік, і ми щойно вирушили в подорож, щоб відвідати всі планети Сонячної системи (Меркурій, Венеру, Землю, Марс, Юпітер, Сатурн, Уран і Нептун). Перша зупинка - Меркурій, де митні правила вимагають заповнити форму (бюрократія, вочевидь, не є особливістю самої лише Землі). Коли ми передаємо форму митнику, він уважно її вивчає і хмуриться. Невже ми справді сподіваємося, що він повірить, ніби нам лише 50 років? Нам, мабуть, ближче до 200!
Розвеселені, ми чекаємо, що митник ось-ось засміється, але він, схоже, цілком серйозний. Ми розуміємо, що вписали свій вік у земних роках, а митник чекав на нього в меркуріанських роках! Оскільки орбітальний період Меркурія навколо Сонця значно коротший за земний, у меркуріанських роках ми насправді значно старші. Після кількох швидких обчислень ми можемо назвати свій вік у меркуріанських роках. Митник задоволено всміхається і пропускає нас. Подумки ми занотовуємо собі розрахувати свій вік для конкретної планети перед майбутніми митними перевірками, щоб уникати таких плутанин.
Якщо нам цікаво, чому Плутон не потрапив до списку, подивімося це відео на YouTube.
Маючи вік у секундах, обчислімо, скільки років комусь було б на одній із планет нашої Сонячної системи.
Один земний рік дорівнює 365.25 земних діб, або 31,557,600 секунд. Якби нам сказали, що комусь 1,000,000,000 секунд, його вік становив би 31.69 земних років.
Для інших планет треба врахувати їхній орбітальний період у земних роках:
| Планета | Орбітальний період у земних роках |
|---|---|
| Меркурій | 0.2408467 |
| Венера | 0.61519726 |
| Земля | 1.0 |
| Марс | 1.8808158 |
| Юпітер | 11.862615 |
| Сатурн | 29.447498 |
| Уран | 84.016846 |
| Нептун | 164.79132 |
Насправді один повний оберт Землі навколо Сонця триває ближче до 365.256 діб (1 сидеричний рік). У григоріанському календарі в середньому 365.2425 діб. Хоча це не цілком точно, у цій вправі використовується значення 365.25. Про інші способи вимірювання року можна дізнатися зі статті Рік у Вікіпедії.
У цій вправі потрібно повертати вік за допомогою фізичної величини з власною одиницею вимірювання, яка позначає тривалість одного року на цій планеті. В Arturo величина складається з числового значення та повʼязаної з нею одиниці вимірювання.
length: 10`m
units length ; `m
scalar length ; 10
10`m * 10`m ; 100 m²
Вбудована в Arturo одиниця `yr дорівнює 31556952 секундам. Тому потрібно визначити й використати власну одиницю року через кількість секунд, згадану раніше в інструкціях.
Величини можна перетворювати на іншу сумісну одиницю.
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
Через обмеження точності чисел з плаваючою комою Arturo іноді зберігає скаляр як раціональне число.
Функція to дозволяє натомість отримати значення як наближене число з плаваючою комою.
length: convert 1`m `ft ; 1250/381 ft
to :floating length ; 3.280839895013123
Arturo також дозволяє задавати власні одиниці для величин.
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