Thursday, October 5, 2017

C# For Beginners , Part -4 ( Competitive Programming Hints , C# )

এবার আমরা , যারা কম্পিটিটিভ প্রোগ্রামের সাথে জড়িত , তাদের সুবিধার্থে । এই পর্বে , আলোচনা করবো -- যেটুকু শিখেছি , আরো কিছু শিখে - কিভাবে প্রোবলেম সলভিং শুরু করা যায় ।।


স্ট্রিং নেয়া আমরা শিখেছি , কিন্তু - যখন পুরো একটি লাইন ইনপুট হিসেবে নিতে বলবে , তখনো কিন্তু - আমরা সেইম্ভাবে ইমপ্লিমেন্ট করবো । এখানে , c++ এ যেমন , পুরো একটা  লাইন রিড করার জন্য
cin(getline ,s);  ইউস করি - সেরকম কোনো ব্যপার এখানে নেই ।।    এখানে ,  string s =   Console.ReadLine(); লিখলেই পুরোএকটা লাইন রিড করতে পারবো ।।


অনেক সময় , আমাদের বিভিন্ন অনলাইন জাজগুলোতে -- একই লাইনে থেকে ৪ /৫ টা ইন্টিজার রিড করতে বলে , এটাকে - আমরা c++ এ যেমন - cin>>a>>b>>c>>d;  দিয়ে নিয়ে নেই , এখানে কিন্তু , এইভাবে নেয়া যাবে না । কারন , আমাদের ইনপুট ফাংশনের রিটার্ন টাইপ string হবার কারণে , একটু ঝামেলা হয় । তাই , আমরা প্রথমে - স্ট্রিং আকারে সংখ্যাগুলোকে নিয়ে , আরেকটা string অ্যারেতে
সংখ্যাগুলো নেওয়ার মাঝের স্পেস অনুসারে ,ভাগ করে সংখ্যাগুলোকে আলাদা করে করে ঢুকাবো , আর তারপর সেই অ্যারে'র ভেতরের স্ট্রিংগুলোকে এক এক করে int -এ কনভার্ট করে ইন্টিজার ভ্যারিয়েবলে রেখে , তারপর কাজ করবো , একটা উদাহরন দেখি ।।

using System;
  class Program
    {
        static void Main()
        {

            string s = Console.ReadLine();
            string[] values = s.Split(' ');
            int A = int.Parse(values[0]);
            int B = int.Parse(values[1]);
            Console.WriteLine("{0},{1}", A, B);
            Console.ReadKey();

        }
    }






আমাদের অনেক সময়ই , পাওয়ার ফাংশন ইউজ করতে হয় ।।

double b=Math.Pow(9,0.5);


 আমরা , অনেক সহজেই - C++ - এ , min /max  ফাংশন ইউজ করি , কিন্তু - এখানে কিন্তু , আমাদের
সেই ফাংশন ক্রিয়েট করে তারপর সেটাকে call করতে হবে ।

 public int min(int a,int b)
{

return a>b?b:a;

}

public int max(int a,int b)
{

return a>b?a:b;

}


ইন্টিজার নেবো ,  int a=Convert.ToInt32(Console.ReadLine());

ডাবল নেবো আমরা ,  double b=Convert.ToDouble(Console.ReadLine());


 আশা করি , এতটুকু দিয়েই - ছোট ছোট প্রোবলেম শুরু করা যেতে পারে ।।
আজ এইটুকুই ।।





No comments:

Post a Comment