ট্র্যাক
/
C#
C#
/
অনুশীলনী
/
আন্তর্জাতিক কলিং বিশেষজ্ঞ
আন্তর্জাতিক কলিং বিশেষজ্ঞ

আন্তর্জাতিক কলিং বিশেষজ্ঞ

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

ভূমিকা

ডিকশনারি

ডিকশনারি হলো এলিমেন্টের একটি কালেকশন, যেখানে প্রতিটি এলিমেন্টে একটি কী (key) আর একটি মান থাকে; ডিকশনারির কোনো মেথডে একটি কী (key) পাঠালে তার সঙ্গে যুক্ত মানটি ফেরত পাওয়া যায়। অন্য ভাষায় ম্যাপ বা অ্যাসোসিয়েটিভ অ্যারে যে ভূমিকা পালন করে, ডিকশনারি তারই ভূমিকা পালন করে।

ডিকশনারি তৈরি করা যায় এভাবে:

new Dictionary<int, string>();
// Empty dictionary

অথবা

new Dictionary<int, string>
{
    [1] = "One",
    [2] = "Two"
};

// Or

new Dictionary<int, string>
{
    {1, "One"},
    {2, "Two"}
};
// 1 => "One", 2 => "Two"

খেয়াল করুন, কী (key) আর মানের টাইপও ডিকশনারির সংজ্ঞার অংশ।

একবার তৈরি হয়ে গেলে, ডিকশনারির বিল্ট-ইন মেথড Add আর Remove ব্যবহার করে এন্ট্রি যোগ করা বা মুছে ফেলা যায়।

কী (key) দিয়ে ডিকশনারিতে ইনডেক্স করে ডিকশনারির মান পড়া বা হালনাগাদ করা হয়:

var numbers = new Dictionary<int, string>
{
   {1, "One"},
   {2, "Two"}
};

// Set the value of the element with key 2 to "Deux"
numbers[2] = "Deux";

// Get the value of the element with key 2
numbers[2];
// => "Deux"

ডিকশনারিতে একটি মান আছে কি না, তা এভাবে পরীক্ষা করতে পারেন:

var dict = new Dictionary<string, string>{/*...*/};
dict.ContainsKey("some key that exists");
// => true

ডিকশনারির উপর এনুমারেট করলে তার কী (key) ও মানের জোড়াগুলোর উপর এনুমারেট হয়। এছাড়া ডিকশনারিতে এমন প্রপার্টিও থাকে, যা দিয়ে কেবল তার কী (key) বা মানের উপর এনুমারেট করা যায়।

নির্দেশনা

এই অনুশীলনীতে আপনি একটি আন্তর্জাতিক ডায়ালিং কোড ডিকশনারির মাধ্যমে আন্তর্জাতিক ডায়ালিং কোডগুলো ট্র্যাক রাখার কোড লিখবেন।

ডিকশনারিটি তার কী (key) হিসেবে একটি ইন্টিজার (ডায়ালিং কোড) এবং তার মান হিসেবে একটি স্ট্রিং (দেশের নাম) ব্যবহার করে।

আপনার ৯টি কাজ আছে, যেগুলোতে DialingCodes স্ট্যাটিক ক্লাসটি জড়িত।

1. একটি নতুন ডিকশনারি তৈরি করুন

(স্ট্যাটিক) মেথড DialingCodes.GetEmptyDictionary() ইমপ্লিমেন্ট করুন, যা একটি খালি ডিকশনারি রিটার্ন করে।

DialingCodes.GetEmptyDictionary();
// => empty dictionary

2. একটি প্রি-পপুলেটেড ডিকশনারি তৈরি করুন

এমন একটি প্রি-পপুলেটেড ডিকশনারি আছে, যেটিতে নিচের ৩টি ডায়ালিং কোড রয়েছে: "United States of America", যার কোড 1; "Brazil", যার কোড 55; এবং "India", যার কোড 91। প্রি-পপুলেটেড ডিকশনারিটি রিটার্ন করার জন্য (স্ট্যাটিক) মেথড DialingCodes.GetExistingDictionary() ইমপ্লিমেন্ট করুন:

DialingCodes.GetExistingDictionary();
// => 1 => "United States of America", 55 => "Brazil", 91 => "India"

3. একটি খালি ডিকশনারিতে একটি দেশ যোগ করুন

(স্ট্যাটিক) মেথড DialingCodes.AddCountryToEmptyDictionary() ইমপ্লিমেন্ট করুন, যা একটি ডিকশনারি তৈরি করে এবং তাতে একটি ডায়ালিং কোড ও সংশ্লিষ্ট দেশের নাম যোগ করে।

DialingCodes.AddCountryToEmptyDictionary(44, "United Kingdom");
// => 44 => "United Kingdom"

4. একটি বিদ্যমান ডিকশনারিতে একটি দেশ যোগ করুন

(স্ট্যাটিক) মেথড DialingCodes.AddCountryToExistingDictionary() ইমপ্লিমেন্ট করুন, যা খালি নয় এমন একটি ডিকশনারিতে একটি ডায়ালিং কোড ও সংশ্লিষ্ট দেশের নাম যোগ করে।

DialingCodes.AddCountryToExistingDictionary(DialingCodes.GetExistingDictionary(),
  44, "United Kingdom");
// => 1 => "United States of America", 44 => "United Kingdom", 55 => "Brazil", 91 => "India"

5. একটি ডায়ালিং কোডের সাথে মেলে এমন দেশের নাম বের করুন

(স্ট্যাটিক) মেথড DialingCodes.GetCountryNameFromDictionary() ইমপ্লিমেন্ট করুন, যা একটি ডায়ালিং কোড নেয় এবং তার সংশ্লিষ্ট দেশের নাম রিটার্ন করে। ডিকশনারিতে যদি ওই ডায়ালিং কোডটি না থাকে, তাহলে একটি খালি স্ট্রিং রিটার্ন করা হয়।

DialingCodes.GetCountryNameFromDictionary(
  DialingCodes.GetExistingDictionary(), 55);
// => "Brazil"

DialingCodes.GetCountryNameFromDictionary(
  DialingCodes.GetExistingDictionary(), 999);
// => string.Empty

6. ডিকশনারিতে একটি দেশ আছে কি না তা যাচাই করুন

ডিকশনারিতে একটি ডায়ালিং কোড আছে কি না তা যাচাই করার জন্য (স্ট্যাটিক) মেথড DialingCodes.CheckCodeExists() ইমপ্লিমেন্ট করুন।

DialingCodes.CheckCodeExists(DialingCodes.GetExistingDictionary(), 55);
// => true

7. একটি দেশের নাম হালনাগাদ করুন

(স্ট্যাটিক) মেথড DialingCodes.UpdateDictionary() ইমপ্লিমেন্ট করুন, যা একটি ডায়ালিং কোড নেয় এবং ডিকশনারিতে তার সংশ্লিষ্ট দেশের নামকে প্যারামিটার হিসেবে পাঠানো দেশের নাম দিয়ে প্রতিস্থাপন করে। ডিকশনারিতে যদি ওই ডায়ালিং কোডটি না থাকে, তাহলে ডিকশনারি অপরিবর্তিত থাকে।

DialingCodes.UpdateDictionary(
  DialingCodes.GetExistingDictionary(), 1, "Les États-Unis");
// => 1 => "Les États-Unis", 55 => "Brazil", 91 => "India"

DialingCodes.UpdateDictionary(
  DialingCodes.GetExistingDictionary(), 999, "Newlands");
// 1 => "United States of America", 55 => "Brazil", 91 => "India"

8. ডিকশনারি থেকে একটি দেশ সরিয়ে ফেলুন

(স্ট্যাটিক) মেথড DialingCodes.RemoveCountryFromDictionary() ইমপ্লিমেন্ট করুন, যা একটি ডায়ালিং কোড নেয় এবং ডিকশনারি থেকে তার সংশ্লিষ্ট রেকর্ড, ডায়ালিং কোড + দেশের নাম, সরিয়ে ফেলে।

DialingCodes.RemoveCountryFromDictionary(
  DialingCodes.GetExistingDictionary(), 91);
// => 1 => "United States of America", 55 => "Brazil"

9. সবচেয়ে লম্বা নামের দেশটি খুঁজে বের করুন

(স্ট্যাটিক) মেথড DialingCodes.FindLongestCountryName() ইমপ্লিমেন্ট করুন, যা ডিকশনারিতে সংরক্ষিত সবচেয়ে লম্বা নামের দেশটির নাম রিটার্ন করবে।

DialingCodes.FindLongestCountryName(
  DialingCodes.GetExistingDictionary());
// => "United States of America"
GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
C# Exercism

আন্তর্জাতিক কলিং বিশেষজ্ঞ শুরু করতে প্রস্তুত?

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