عصر الفضاء

عصر الفضاء

متوسط

مقدمة

نحن في عام 2525، وقد شرعت للتو في رحلة لزيارة جميع كواكب المجموعة الشمسية (عطارد، الزهرة، الأرض، المريخ، المشتري، زحل، أورانوس ونبتون). المحطة الأولى هي عطارد، حيث تطلب منك الجمارك تعبئة استمارة (يبدو أن البيروقراطية ليست حكرًا على الأرض). وبينما تسلّم الاستمارة إلى موظف الجمارك، يدقق فيها ويقطّب جبينه. «هل تتوقع حقًا أن أصدّق أن عمرك 50 سنة فقط؟ لا بد أن عمرك يقترب من 200 سنة!»

وأنت مستمتع، تنتظر أن يبدأ موظف الجمارك بالضحك، لكنه يبدو جادًا للغاية. تدرك أنك أدخلت عمرك بـ_سنوات الأرض_، لكن الموظف كان يتوقعه بـ_سنوات عطارد_! ولأن مدة دوران عطارد حول الشمس أقصر بكثير من مدة دوران الأرض، فأنت في الحقيقة أكبر سنًا بكثير بعمر عطارد. وبعد بعض الحسابات السريعة، تتمكن من تقديم عمرك بسنوات عطارد. يبتسم موظف الجمارك، راضيًا، ويشير لك بالمرور. وتسجّل في ذهنك أن تحسب عمرك الخاص بكل كوكب قبل فحوص الجمارك المستقبلية، لتجنّب مثل هذه الالتباسات.

Note

إذا كنت تتساءل عن سبب استبعاد بلوتو، فشاهد هذا الفيديو على يوتيوب.

التعليمات

إذا أُعطيت عمرًا بالثواني، فاحسب كم سيكون عمر شخص ما على أحد كواكب مجموعتنا الشمسية.

السنة الأرضية الواحدة تساوي 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
Note

الطول الفعلي لدورة كاملة واحدة للأرض حول الشمس أقرب إلى 365.256 يومًا (سنة نجمية واحدة). ويبلغ متوسط عدد أيام التقويم الغريغوري 365.2425 يومًا. ورغم أن القيمة 365.25 ليست دقيقة تمامًا، فهي القيمة المستخدمة في هذا التمرين. راجع Year on Wikipedia لمعرفة مزيد من الأساليب لقياس السنة.

معلومات خاصة بـ Arturo

في هذا التمرين، سيكون مطلوبًا منك إرجاع الأعمار باستخدام [كمية فيزيائية] ذات وحدة مخصصة تمثّل طول سنة واحدة على ذلك الكوكب. في Arturo، تتكوّن الكمية من مقدار عددي ووحدة قياس مرتبطة به.

length: 10`m
units length ; `m
scalar length ; 10

10`m * 10`m ; 100 m²
Caution

وحدة `yr المدمجة في Arturo تُحوَّل إلى 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
Note

بسبب محدوديات الدقة في أعداد الفاصلة العائمة، يخزّن Arturo أحيانًا المقدار القياسي كعدد نسبي. يمكن استخدام دالة to للحصول على المقدار بدلًا من ذلك كعدد تقريبي ذي فاصلة عائمة.

length: convert 1`m `ft ; 1250/381 ft
to :floating length ; 3.280839895013123

يتيح لنا Arturo أيضًا specify وحداتنا الخاصة للكميات.

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
تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
Arturo Exercism

مستعد لبدء عصر الفضاء؟

سجّل في Exercism لتتعلّم وتتقن Arturo عبر 79 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.