এবার আমরা , যারা কম্পিটিটিভ প্রোগ্রামের সাথে জড়িত , তাদের সুবিধার্থে । এই পর্বে , আলোচনা করবো -- যেটুকু শিখেছি , আরো কিছু শিখে - কিভাবে প্রোবলেম সলভিং শুরু করা যায় ।।
স্ট্রিং নেয়া আমরা শিখেছি , কিন্তু - যখন পুরো একটি লাইন ইনপুট হিসেবে নিতে বলবে , তখনো কিন্তু - আমরা সেইম্ভাবে ইমপ্লিমেন্ট করবো । এখানে , 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());
আশা করি , এতটুকু দিয়েই - ছোট ছোট প্রোবলেম শুরু করা যেতে পারে ।।
আজ এইটুকুই ।।
স্ট্রিং নেয়া আমরা শিখেছি , কিন্তু - যখন পুরো একটি লাইন ইনপুট হিসেবে নিতে বলবে , তখনো কিন্তু - আমরা সেইম্ভাবে ইমপ্লিমেন্ট করবো । এখানে , 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