مسیرها
/
C#
C#
/
تمرین‌ها
/
خودروها، مونتاژ شوید!
خودروها، مونتاژ شوید!

خودروها، مونتاژ شوید!

تمرین یادگیری

مقدمه

عدد

در C# دو نوع مختلف عدد وجود دارد:

  • «عدد صحیح»: اعدادی بدون رقم پس از جداکننده‌ی اعشار (اعداد کامل). مثال‌ها: -6، 0، 1، 25، 976 و 500000.
  • «عدد اعشاری»: اعدادی با صفر یا چند رقم پس از جداکننده‌ی اعشار. مثال‌ها: -2.4، 0.1، 3.14، 16.984025 و 1024.0.

دو نوع عددی رایج در C#، int و double هستند. int یک عدد صحیح ۳۲ بیتی است و double یک عدد اعشاری ۶۴ بیتی.

محاسبات با عملگرهای حسابی استاندارد انجام می‌شوند. می‌توان اعداد را با عملگرهای مقایسه‌ی عددی استاندارد و همچنین عملگرهای تساوی (==) و نامساوی (!=) مقایسه کرد.

C# دو نوع تبدیل عددی دارد:

  1. «تبدیل ضمنی»: هیچ داده‌ای از دست نمی‌رود و به نگارش اضافی نیازی نیست.
  2. «تبدیل صریح»: ممکن است داده از دست برود و به نگارش اضافی به شکل cast نیاز است.

از آنجا که دقت int از double کمتر است، تبدیل int به double ایمن است و بنابراین یک تبدیل ضمنی به حساب می‌آید. اما تبدیل double به int می‌تواند به از دست رفتن داده منجر شود، پس به یک تبدیل صریح نیاز دارد.

int softCool = 1358938113;
double notLost = 4.8151623;

// implicit cast: no loss of information
double macDebug = softCool;         // 1358938113.0

// explicit cast: possible loss of information 
int somethingLost = (int)notLost;   // 4

دستور شرطی

در این تمرین باید منطقی را به‌صورت شرطی اجرا کنید. رایج‌ترین راه برای این کار در C# استفاده از دستور if/else است:

int x = 6;

if (x == 5)
{
    // Execute logic if x equals 5
}
else if (x > 7)
{
    // Execute logic if x greater than 7
}
else
{
    // Execute logic in all other cases
}

شرط یک دستور if باید از نوع bool باشد. C# هیچ مفهومی از مقادیر truthy ندارد.

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

در این تمرین کدی می‌نویسید تا تولید یک خط مونتاژ در یک کارخانه‌ی خودروسازی را تحلیل کنید. سرعت خط مونتاژ می‌تواند از 0 (خاموش) تا 10 (حداکثر) متغیر باشد.

در کمترین سرعت (1)، هر ساعت 221 خودرو تولید می‌شود. تولید به‌صورت خطی با سرعت افزایش می‌یابد. بنابراین اگر سرعت روی 4 تنظیم شود، باید هر ساعت 4 * 221 = 884 خودرو تولید کند. اما سرعت‌های بالاتر احتمال تولید خودروهای معیوب را افزایش می‌دهند، خودروهایی که در آن صورت باید دور ریخته شوند.

سه وظیفه دارید.

1. محاسبه‌ی نرخ موفقیت

متد AssemblyLine.SuccessRate() (که static است) را پیاده‌سازی کنید تا نسبت تولید بدون خطای یک قطعه را برای یک سرعت مشخص محاسبه کنید. جدول زیر نشان می‌دهد که سرعت چگونه بر نرخ موفقیت اثر می‌گذارد:

  • 0: نرخ موفقیت ۰٪.
  • 1 تا 4: نرخ موفقیت ۱۰۰٪.
  • 5 تا 8: نرخ موفقیت ۹۰٪.
  • 9: نرخ موفقیت ۸۰٪.
  • 10: نرخ موفقیت ۷۷٪.
AssemblyLine.SuccessRate(10)
// => 0.77

2. محاسبه‌ی نرخ تولید در ساعت

متد AssemblyLine.ProductionRatePerHour() (که static است) را پیاده‌سازی کنید تا نرخ تولید خط مونتاژ در ساعت را با در نظر گرفتن نرخ موفقیت آن محاسبه کنید:

AssemblyLine.ProductionRatePerHour(6)
// => 1193.4

توجه کنید که مقدار برگشتی یک double است.

3. محاسبه‌ی تعداد قطعات سالم تولیدشده در دقیقه

متد AssemblyLine.WorkingItemsPerMinute() (که static است) را پیاده‌سازی کنید تا محاسبه کنید هر دقیقه چند خودروی سالم تولید می‌شود:

AssemblyLine.WorkingItemsPerMinute(6)
// => 19

توجه کنید که مقدار برگشتی یک int است.

ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
C# Exercism

آماده‌اید خودروها، مونتاژ شوید! را شروع کنید؟

در Exercism ثبت‌نام کنید تا C# را همراه با 62 مفهوم178 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.