عصر فضا

عصر فضا

متوسط

مقدمه

سال ۲۵۲۵ است و شما تازه سفرتان را به قصد دیدن همه‌ی سیاره‌های منظومه‌ی شمسی آغاز کرده‌اید (عطارد، زهره، زمین، مریخ، مشتری، زحل، اورانوس و نپتون). اولین ایستگاه عطارد است، جایی که گمرک از شما می‌خواهد فرمی پر کنید (ظاهراً بوروکراسی مخصوص زمین نیست). وقتی فرم را به مأمور گمرک تحویل می‌دهید، آن را با دقت برانداز می‌کند و اخم می‌کند. «آیا واقعاً انتظار دارید باور کنم که فقط ۵۰ سالتان است؟ باید نزدیک به ۲۰۰ سال داشته باشید!» با لبخند منتظر می‌مانید که مأمور گمرک شروع به خندیدن کند، اما او کاملاً جدی به نظر می‌رسد. متوجه می‌شوید که سنتان را بر حسب سال‌های زمینی وارد کرده‌اید، اما مأمور آن را بر حسب سال‌های عطاردی انتظار داشته است! چون مدت گردش عطارد به دور خورشید به‌طور چشمگیری از زمین کوتاه‌تر است، در واقع به سال‌های عطاردی خیلی مسن‌تر هستید. پس از چند محاسبه‌ی سریع، می‌توانید سنتان را بر حسب سال‌های عطاردی اعلام کنید. مأمور گمرک راضی لبخند می‌زند و به شما اجازه می‌دهد رد شوید. در ذهنتان یادداشت می‌کنید که پیش از بازرسی‌های گمرکی آینده، سن مخصوص هر سیاره‌تان را از پیش محاسبه کنید تا از چنین اشتباه‌هایی جلوگیری شود.

Note

اگر برایتان سؤال است که چرا پلوتو در این فهرست جا نگرفت، این ویدیوی یوتیوب را ببینید.

دستورالعمل‌ها

اگر سنی بر حسب ثانیه داده شود، حساب کنید که آن شخص در هر سیاره‌ای از منظومه‌ی شمسی ما چند ساله خواهد بود.

یک سال زمینی برابر است با ۳۶۵٫۲۵ روز زمینی، یا ۳۱٬۵۵۷٬۶۰۰ ثانیه. اگر به شما بگویند سن کسی ۱٬۰۰۰٬۰۰۰٬۰۰۰ ثانیه است، سن او ۳۱٫۶۹ سال زمینی خواهد بود.

برای سیاره‌های دیگر باید دوره‌ی مداری آن‌ها را بر حسب سال زمینی در نظر بگیرید:

سیاره دوره‌ی مداری بر حسب سال زمینی
عطارد 0.2408467
زهره 0.61519726
زمین 1.0
مریخ 1.8808158
مشتری 11.862615
کیوان 29.447498
اورانوس 84.016846
نپتون 164.79132
Note

طول واقعی یک دور کامل گردش زمین به دور خورشید به ۳۶۵٫۲۵۶ روز (یک سال نجومی) نزدیک‌تر است. تقویم میلادی به‌طور میانگین ۳۶۵٫۲۴۲۵ روز دارد. اگرچه این مقدار کاملاً دقیق نیست، در این تمرین از ۳۶۵٫۲۵ استفاده می‌شود. برای آشنایی با روش‌های دیگر اندازه‌گیری سال، سال در ویکی‌پدیا را ببینید.

اطلاعات مخصوص Arturo

در این تمرین، انتظار می‌رود سن‌ها را با یک کمیت فیزیکی برگردانید که یکای سفارشی آن، طول یک سال را در آن سیاره نشان می‌دهد. در Arturo، یک کمیت از یک مقدار عددی و یک یکای اندازه‌گیری مرتبط تشکیل می‌شود.

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

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

یکای `yr توکار Arturo معادل ۳۱۵۵۶۹۵۲ ثانیه است. بنابراین لازم است یکای سال خودتان را بر پایه‌ی همان تعداد ثانیه‌ای که پیش‌تر در دستورالعمل‌ها به آن اشاره شد تعریف کنید و از آن استفاده کنید.

کمیت‌ها را می‌توان به یکای سازگار دیگری تبدیل کرد.

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 '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 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.