ট্র্যাক
/
Go
Go
/
অনুশীলনী
/
সুদ মজাদার
সুদ মজাদার

সুদ মজাদার

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

ভূমিকা

ফ্লোটিং-পয়েন্ট সংখ্যা হলো এমন একটি সংখ্যা, যার দশমিক বিন্দুর পরে শূন্য বা তার বেশি ডিজিট থাকতে পারে। উদাহরণ: -2.4, 0.1, 3.14, 5., 16.984025 এবং 1024.0।

ভিন্ন ভিন্ন ফ্লোটিং-পয়েন্ট টাইপ দশমিক বিন্দুর পরে ভিন্ন সংখ্যক ডিজিট সংরক্ষণ করতে পারে, এটাকেই তার প্রিসিশন বলা হয়।

Go-তে দুটি ফ্লোটিং-পয়েন্ট টাইপ আছে:

  • float32: ৩২ বিট (~৬-৯ ডিজিট প্রিসিশন)।
  • float64: ৬৪ বিট (~১৫-১৭ ডিজিট প্রিসিশন)। এটিই ডিফল্ট ফ্লোটিং-পয়েন্ট টাইপ।

দেখা যাচ্ছে, দুটি টাইপই ভিন্ন সংখ্যক ডিজিট সংরক্ষণ করতে পারে। তার মানে হলো, PI একটি float32-এ সংরক্ষণ করার চেষ্টা করলে প্রথম ৬ থেকে ৯টি ডিজিটই সংরক্ষিত হবে (শেষ ডিজিটটি রাউন্ড হয়ে যাবে)।

ডিফল্টভাবে Go ফ্লোটিং-পয়েন্ট সংখ্যার জন্য float64 ব্যবহার করে, যদি না ফ্লোটিং-পয়েন্ট সংখ্যাটি:

  1. float32 টাইপের একটি ভ্যারিয়েবলে অ্যাসাইন করা হয়, অথবা
  2. float32 রিটার্ন টাইপের একটি ফাংশন থেকে রিটার্ন করা হয়, অথবা
  3. float32() ফাংশনে একটি আর্গুমেন্ট হিসেবে পাঠানো হয়।

math package-এ অনেক সহায়ক গাণিতিক ফাংশন আছে।

নির্দেশনা

এই অনুশীলনীতে আপনি সেভিংস অ্যাকাউন্ট নিয়ে কাজ করবেন। প্রতি বছর আপনার সেভিংস অ্যাকাউন্টের ব্যালেন্স সুদের হার অনুযায়ী হালনাগাদ করা হয়। আপনার ব্যাংক আপনাকে যে সুদের হার দেয়, তা নির্ভর করে আপনার অ্যাকাউন্টে কত টাকা আছে (অর্থাৎ তার ব্যালেন্স) তার উপর:

  • 0 ডলারের কম ব্যালেন্সে 3.213% (ব্যালেন্স আরও ঋণাত্মক হয়ে যায়)।
  • 0 ডলার বা তার বেশি এবং 1000 ডলারের কম ব্যালেন্সে 0.5%।
  • 1000 ডলার বা তার বেশি এবং 5000 ডলারের কম ব্যালেন্সে 1.621%।
  • 5000 ডলার বা তার বেশি ব্যালেন্সে 2.475%।

আপনার সামনে চারটি কাজ আছে, যার প্রত্যেকটিতে আপনার ব্যালেন্স ও তার সুদের হার নিয়ে কাজ করতে হবে।

1. সুদের হার হিসাব করুন

InterestRate() ফাংশনটি ইমপ্লিমেন্ট করুন, যা নির্দিষ্ট ব্যালেন্সের ভিত্তিতে সুদের হার হিসাব করবে:

InterestRate(200.75)
// => 0.5

মনে রাখবেন, রিটার্ন করা মানটি একটি float32।

2. সুদ হিসাব করুন

Interest() ফাংশনটি ইমপ্লিমেন্ট করুন, যা নির্দিষ্ট ব্যালেন্সের ভিত্তিতে সুদ হিসাব করবে:

Interest(200.75)
// => 1.003750

মনে রাখবেন, রিটার্ন করা মানটি একটি float64।

3. বার্ষিক ব্যালেন্স হালনাগাদ হিসাব করুন

AnnualBalanceUpdate() ফাংশনটি ইমপ্লিমেন্ট করুন, যা সুদের হার বিবেচনায় নিয়ে বার্ষিক ব্যালেন্স হালনাগাদ হিসাব করবে:

AnnualBalanceUpdate(200.75)
// => 201.75375

মনে রাখবেন, রিটার্ন করা মানটি একটি float64।

4. কাঙ্ক্ষিত ব্যালেন্সে পৌঁছাতে কত বছর লাগবে তা হিসাব করুন

YearsBeforeDesiredBalance() ফাংশনটি ইমপ্লিমেন্ট করুন, যা কাঙ্ক্ষিত ব্যালেন্সে পৌঁছাতে ন্যূনতম কত বছর লাগবে তা হিসাব করবে; এখানে মনে রাখতে হবে যে প্রতি বছর ব্যালেন্সের সাথে সুদ যোগ হয়। এর মানে হলো, এক বছর পরের ব্যালেন্স: শুরুর ব্যালেন্স + শুরুর ব্যালেন্সের সুদ। দ্বিতীয় বছর পরের ব্যালেন্স: এক বছর পরের ব্যালেন্স + এক বছর পরের ব্যালেন্সের সুদ। এভাবে চলবে, যতক্ষণ না চলতি বছরের ব্যালেন্স লক্ষ্য ব্যালেন্সের সমান বা তার বেশি হয়।

balance := 200.75
targetBalance := 214.88
YearsBeforeDesiredBalance(balance, targetBalance)
// => 14

মনে রাখবেন, রিটার্ন করা মানটি একটি int।

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

সুদ মজাদার শুরু করতে প্রস্তুত?

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