خرید خودرو

خرید خودرو

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

مقدمه

مقایسه

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

مقایسه عملگر
بزرگ‌تر از a > b
بزرگ‌تر یا مساوی a >= b
کوچک‌تر از a < b
کوچک‌تر یا مساوی a <= b
برابری (دقیق) a === b
نابرابری (دقیق) a !== b

نتیجه‌ی مقایسه همیشه یک مقدار «منطقی» است: true یا false.

1 < 3;
// => true

2 !== 2;
// => false

1 === 1.0;
// => true
// All numbers are floating-points, so this is different syntax for
// the exact same value.

در JavaScript می‌توان از عملگرهای مقایسه‌ی بالا برای مقایسه‌ی رشته‌ها هم استفاده کرد. در این حالت، ترتیب واژه‌نامه‌ای (فرهنگ‌نامه‌ای) اعمال می‌شود. فهرست ترتیب دقیق همه‌ی نویسه‌ها را می‌توانید اینجا پیدا کنید.

'Apple' > 'Pear';
// => false

'a' < 'above';
// => true

'a' === 'A';
// => false

دستورهای شرطی

راهی رایج برای اجرای شرطی منطق در JavaScript، دستور if است. این دستور از کلیدواژه‌ی if، یک شرط که داخل پرانتز قرار می‌گیرد و یک بلوک کد که داخل آکولاد قرار می‌گیرد تشکیل شده است. بلوک کد تنها در صورتی اجرا می‌شود که شرط به true ارزیابی شود.

if (condition) {
  // code that is executed if "condition" is true
}

می‌توان از آن به‌تنهایی یا همراه با کلیدواژه‌ی else استفاده کرد.

if (condition) {
  // code that is executed if "condition" is true
} else {
  // code that is executed otherwise
}

برای قرار دادن شرطی دیگر درون دستور else، می‌توانید از else if استفاده کنید.

if (condition1) {
  // code that is executed if "condition1" is true
} else if (condition2) {
  // code that is executed if "condition2" is true
  // but "condition1" was false
} else {
  // code that is executed otherwise
}

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

در این تمرین، کدی می‌نویسید که به شما کمک می‌کند برای خرید یک وسیله‌ی نقلیه آماده شوید.

سه کار پیش رو دارید: تعیین اینکه به گواهینامه‌ی رانندگی نیاز دارید یا نه، کمک به انتخاب میان دو وسیله‌ی نقلیه و تخمین قیمت مناسب برای یک وسیله‌ی نقلیه‌ی دست‌دوم.

1. تعیین کنید که به گواهینامه‌ی رانندگی نیاز دارید یا نه

برخی از انواع وسایل نقلیه برای راندنشان به گواهینامه‌ی رانندگی نیاز دارند. فرض کنید فقط انواع 'car' و 'truck' به گواهینامه نیاز دارند و بقیه را می‌توان بدون گواهینامه راند.

تابع needsLicense(kind) را پیاده‌سازی کنید که نوع وسیله‌ی نقلیه را می‌گیرد و یک مقدار «منطقی» برمی‌گرداند که نشان می‌دهد آیا برای آن نوع وسیله به گواهینامه نیاز دارید یا نه.

needsLicense('car');
// => true

needsLicense('bike');
// => false

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

شما گزینه‌های خود را از میان وسایل نقلیه‌ی موجود بررسی می‌کنید. موفق می‌شوید آن‌ها را به دو گزینه محدود کنید، اما برای گرفتن تصمیم نهایی به کمک نیاز دارید. برای این کار تابع chooseVehicle(option1, option2) را پیاده‌سازی کنید که دو وسیله‌ی نقلیه را به عنوان آرگومان می‌گیرد و تصمیمی برمی‌گرداند که شامل گزینه‌ای است که در ترتیب الفبایی جلوتر می‌آید.

chooseVehicle('Wuling Hongguang', 'Toyota Corolla');
// =>  'Toyota Corolla is clearly the better choice.'

chooseVehicle('Volkswagen Beetle', 'Volkswagen Golf');
// =>  'Volkswagen Beetle is clearly the better choice.'

3. محاسبه‌ی تخمینی برای قیمت یک وسیله‌ی نقلیه‌ی دست‌دوم

حالا که تصمیم خود را گرفته‌اید، می‌خواهید مطمئن شوید که در نمایندگی قیمت منصفانه‌ای می‌پردازید. چون قصد خرید یک وسیله‌ی نقلیه‌ی دست‌دوم را دارید، قیمت به عمر آن بستگی دارد. برای یک تخمین تقریبی، فرض کنید اگر عمر وسیله‌ی نقلیه کمتر از ۳ سال باشد، قیمت آن ۸۰ درصد قیمت اصلی‌اش در زمانی است که کاملاً نو بود. اگر عمرش بیشتر از ۱۰ سال باشد، ۵۰ درصد. اگر عمر وسیله‌ی نقلیه حداقل ۳ سال باشد اما بیشتر از ۱۰ سال نباشد، ۷۰ درصد قیمت اصلی است.

تابع calculateResellPrice(originalPrice, age) را پیاده‌سازی کنید که این منطق را با if، else if و else اعمال می‌کند (اگر دوست دارید تمرین کنید، روش‌های دیگری هم هست). این تابع قیمت اصلی و عمر وسیله‌ی نقلیه را به عنوان آرگومان می‌گیرد و قیمت تخمینی را در نمایندگی برمی‌گرداند.

calculateResellPrice(1000, 1);
// => 800

calculateResellPrice(1000, 5);
// => 700

calculateResellPrice(1000, 15);
// => 500
ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
JavaScript Exercism

آماده‌اید خرید خودرو را شروع کنید؟

در Exercism ثبت‌نام کنید تا JavaScript را همراه با 37 مفهوم159 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.