ট্র্যাক
/
Elixir
Elixir
/
অনুশীলনী
/
ফ্রিল্যান্সার রেট
ফ্রিল্যান্সার রেট

ফ্রিল্যান্সার রেট

লার্নিং অনুশীলনী

ভূমিকা

ইন্টিজার

Elixir-এ দুই ধরনের সংখ্যা আছে - ইন্টিজার আর ফ্লোট।

ইন্টিজার হলো পূর্ণসংখ্যা।

integer = 3
# => 3

ফ্লোটিং পয়েন্ট সংখ্যা

ফ্লোট হলো এমন সংখ্যা, যার দশমিক বিভাজকের পরে এক বা একাধিক অঙ্ক থাকে। এগুলো ৬৪-বিট ডাবল প্রেসিশন ফ্লোটিং-পয়েন্ট ফরম্যাট ব্যবহার করে।

float = 3.45
# => 3.45

সংখ্যা নিয়ে কাজ করা

Integer আর Float মডিউলে এই টাইপগুলো নিয়ে কাজ করার জন্য কিছু কাজের ফাংশন পাবেন। মৌলিক গাণিতিক অপারেটরগুলো Kernel মডিউলে ডিফাইন করা আছে।

রূপান্তর

একই গাণিতিক এক্সপ্রেশনে ইন্টিজার আর ফ্লোট একসাথে মেশানো যায়। কোনো এক্সপ্রেশনে ফ্লোট ব্যবহার করলে ফলাফলটিও যে ফ্লোট হবে তা নিশ্চিত হয়।

2 * 3
# => 6

2 * 3.0
# => 6.0

তবে ভাগ করার সময় ফলাফল সবসময় ফ্লোট হবে, এমনকি শুধু ইন্টিজার ব্যবহার করলেও।

6 / 2
# => 3.0

একটি ফ্লোটকে ইন্টিজারে রূপান্তর করতে, trunc/1 দিয়ে দশমিক অংশটি বাদ দিতে পারেন।

নির্দেশনা

এই অনুশীলনীতে আপনি এমন কোড লিখবেন, যা একজন ফ্রিল্যান্সারকে একটি প্রজেক্ট ম্যানেজারের সঙ্গে যোগাযোগ করতে সাহায্য করবে। আপনার কাজ হলো কয়েকটি ইউটিলিটি তৈরি করা, যেগুলো দিয়ে দৈনিক ও মাসিক হার দ্রুত হিসাব করা যাবে, প্রয়োজনে নির্দিষ্ট ছাড়সহ।

প্রথমে ফ্রিল্যান্সার ও প্রজেক্ট ম্যানেজারের মধ্যে কয়েকটি নিয়ম ঠিক করে নেওয়া যাক:

  • দৈনিক হার হলো ঘণ্টার হারের ৮ গুণ।
  • এক মাসে বিল করার মতো দিন থাকে ২২টি।

কখনও কখনও ফ্রিল্যান্সার তার দৈনিক হারে ছাড় দিতে চাইতে পারেন (যেমন তার সবচেয়ে বিশ্বস্ত কাস্টমার বা অলাভজনক কাস্টমারদের জন্য)।

ছাড়কে শতকরা হার বোঝানো ভগ্নাংশ সংখ্যা হিসেবে ধরা হয়, যেমন 25.0 (২৫%)।

1. ঘণ্টার হার থাকলে দৈনিক হার বের করা

ঘণ্টার হার প্যারামিটার হিসেবে দেওয়া থাকলে দৈনিক হার বের করার জন্য daily_rate নামের একটি ফাংশন লিখুন। কনট্র্যাক্ট অনুযায়ী এক দিনে বিল করার মতো ৮ ঘণ্টা থাকে।

FreelancerRates.daily_rate(60)
# => 480.0

রিটার্ন করা দৈনিক হারটি একটি ফ্লোট হওয়া উচিত।

2. ছাড় প্রয়োগ করে দাম বের করা

ছাড়ের পরের দাম বের করার জন্য apply_discount নামের একটি ফাংশন লিখুন।

FreelancerRates.apply_discount(150, 10)
# => 135.0

রিটার্ন করা মানটি সবসময় একটি ফ্লোট হতে হবে, কোনোভাবেই রাউন্ড করা যাবে না।

3. ঘণ্টার হার ও ছাড় থাকলে মাসিক হার বের করা

ছাড় প্রয়োগ করে মাসিক হার বের করার জন্য একটি monthly_rate ফাংশন লিখুন। এটি দুটি প্যারামিটার নেয়: একটি ঘণ্টার হার এবং শতকরা হিসেবে ছাড়।

FreelancerRates.monthly_rate(77, 10.5)
# => 12130

রিটার্ন করা মাসিক হারকে নিকটতম ইন্টিজারে ঊর্ধ্বমুখী করে রাউন্ড করতে হবে (সিলিং নিতে হবে)।

4. বাজেট, ঘণ্টার হার ও ছাড় থাকলে কত সম্পূর্ণ দিন কাজ করা যাবে তা বের করা

এমন একটি days_in_budget ফাংশন লিখুন, যা একটি বাজেট, একটি ঘণ্টার হার ও একটি ছাড় নেয় এবং তা দিয়ে কত সম্পূর্ণ দিন কাজ করা যাবে তা হিসাব করে।

FreelancerRates.days_in_budget(20000, 80, 11.0)
# => 35.1

রিটার্ন করা দিনসংখ্যাটি এক দশমিক স্থান পর্যন্ত নিচের দিকে রাউন্ড করতে হবে (ফ্লোর নিতে হবে)।

GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
Elixir Exercism

ফ্রিল্যান্সার রেট শুরু করতে প্রস্তুত?

Exercism-এ সাইন আপ করুন, Elixir ট্র্যাকের 58টি কনসেপ্ট168টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।