প্রবলেম সলভিং এ হাতেখড়ি - নতুনদের জন্য | How To Start Problem Solving - For Beginner | URI Online Judge

How to Start Programming with URI Online Judge | Sign UP- Sign In Full Tutorial

শুরুর আগেঃ আমরা যারা প্রোগ্রামিং এ নতুন , প্রায়ই বড় ভাই/আপুদের মুখে শুনে থাকি "যেকোন একটা প্রোগ্রামিং ল্যাঙ্গুয়েজ শিখে প্রবলেম সল্ভিং শুরু করে দাও"
কোথায় করব ? এটা অনেকে বলে দিলেও , কিভাবে করব সেটা শিখিয়ে দেয়ার মত মানুষ খুব কমই পাওয়া যায় । আবার আমরা সেভাবে তাদের খোঁজার  সময়ও পাইনা , অনেক ব্যাস্ত -_-

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

সাইন আপঃ আসলে সাইন আপ করা একদম সহজ । অন্যান্য সাইন আপের মতই শধুমাত্র একটা জায়গায় অনেকে আটকে যায় - ভাইয়া আমিতো গ্রেজুয়েশন কমপ্লিট করিনি Graduation Year কি দেব ? কোন দরকার নেই যেমন আছে তেমনই থাক । আর যারা কমপ্লিট করেছেন তারা শুধু চেইঞ্জ করে দিয়েন । আমি একটা ডেমো পিক এড করে দিচ্ছি , বুঝতে আরো সহজ হবে।

URI Sign Up Demo
আরো একটা জিনিস খেয়াল রাখতে হবে I'm not a robot এ ক্লিক করে টিক মার্ক এনে নিতে হবে এবং I AGREE WITH THE TERMS & CONDITIONS এ টিক মার্ক দিয়ে তারপর SIGN UP করতে হবে।

অতঃপর একটা মেইল যাবে তোমার ইমেইল এ, নিচের ছবির মত।

URI Activition Email
ইমেইলে হিজিবিজি টাইপের যে লেখাটা যেখা যাচ্ছে সেটা হচ্ছে একটিভিশন কোড। তোমরা চাইলে এই কোড কপি করে এনে পেস্ট করেও একটিভেট করতে পার আবার ACTIVATE! বাটনটিতে ক্লিক করলেও অটোমেটিক একটিভ হয়ে যাবে। আমার অটোমেটিকই ভাল লাগে -

একটিভেশন শেষ ! এবার কোপাকোপি হবে :D

 ইমেইল ওবং পাসওয়ার্ড ব্যাবহার করে লগিন করলে নিচের ছবির মতো একটা ইন্টারফেস দেখা যাবে।
যারা লগিন করতে পারবেনা , কমেন্টে যানাবে -_-

তোমাদের মতো আমার একাউন্টটাও নতুন , তাই Day,Solved,Points সব ০ দেখাচ্ছে। সবার উপরে লাল মার্ক করা যে মানুবার টা দেখছো, এটা দিয়েই মুলত সব কন্ট্রল করতে হয়।
প্রথমে আমরা একটা প্রবলেম দেখব - বুঝব এবং সেটা সল্ভ করে সাবমিট করব -  আচ্ছা, সেজন্য আমাদের  যেতে হবে মেনু বারের Problems > Beginner এ। Problems এর উপর মাউস পয়েন্টার রাখলেই নিচের মত একটা সাব মেনু চলে আসবে এবং সেখান থেকে Beginner এ ক্লিক করতে হবে - কারন আমরা বিগেইনারস, ইজি প্রবলেম সল্ভ করব ।

আচ্ছা Beginner এ ক্লিক করার পর নিচের ছবির মত হাজার-খানেক প্রবলেম সেখাবে । আমাদের আসলে সব সল্ভ করার প্র্যোজন নেই , ১৫০+ সলভ করা হয়ে গেলে আমরা আরো একটু হার্ড লেভেলের প্রবলেম সলভের জন্য প্রস্তুত হয়ে যাব তখন বিভিন্ন রেপুটেড অনলাইন জাজ যেমন- CodeForces , Codechef , HackerRank , HackerEarth, UVA, LightOj এসবে প্রবলেম সল্ভ করব ।


URI তে Beginner এর ১ম প্রবলেম হচ্ছে Extremly Basic. চলো একটা ক্লিক করে প্রবলেমটা দেখি - বুঝি - আলোচনা করি এবং সল্ভ করার চেস্টা করি -


সমস্যা ১০০১ঃ Extrememly Basic

কি বলা আছে প্রবলেম এ ? সবটুকু একবার পড়ে ফেল - ইনপূট , আউটপুট  একটূ মণোযোগ দিয়ে দেখ। কিছু বুঝতে পেরেছ ? কেউ কেউ বুঝে গেছ যে, আরে এখানে তো যোগফল বের করতে বলেছে। হ্যা এখানে বলা আছে তোমাকে দুইটা ইন্টেজার টাইপ ভেরিয়েবল নিতে হবে ,এবং সেখানে ইনপুট নেয়া দুইটি সংখ্যা যোগ করে যোগফল দেখাতে হবে ।

- ভেরিয়েবল তোমার নিজের মত নামে নিতে পার । এখানে A,B,X ব্যবহার করেছে বলে যে তোমাকে এগুলোই ব্যবহার করতে হবে তার কোন বাধ্যবাধকতা নেই।
- আউটপুট সেম টু সেম Sample Output এর মত আসতে হবে - X = যোগফল এমন। আর নাহয় Presentation Error দেখাবে।
 তোমাদের মাঝে যারা একটু চালাক তারা ইতিমধ্যে সল্যুশন লিখে ফেলেছে - তবে একটা যায়গায় ধরা খাবে 
প্রবলেম এ সবার শেষে দেখো একটা কথা লিখে আছে , obs...dont forget the endline after all.এই একটা লাইন না দেখার জন্য আমাকে ১০০১ নাম্বার প্রবলেম ৫ বার সাবমিট করতে হয়েছিল ।
এই লেখাটার মানে কি ? তোমাকে প্রত্যেক লাইনের শেষে একটা করে লাইনব্রেক দিতে হবে । C Programming এ লাইন ব্রেক কিভাবে দেয় ? \n ব্যবহার করে , তাইনা ?
আচ্ছা, মোটামোটি সব বোঝা শেষ চলো এবার CodeBlocks এ কোডটা লিখে ফেলি -
CodeBlocks না থাকলে ডাউনলোড করে নিতে পার।
কোড শেষে উপরের ছবিতে মার্ক করা Submit এর মত সাবমিট এ ক্লিক করলে নিচের মত একটা ইন্টারফেস আসবে ।

প্রথমত প্রবলেম নং ( ভেতর থেকে সাবমিট দিলে সাধারনত অটোমেটিক প্রবলেম নং এসে যায় , না আসলে ম্যানুয়ালি লিখে দিতে হবে ) তারপর আসে Language - আমরা যেহেতু সি তে কোড করব তাই C(gcc 4.8.5..যা থেকে) সিলেক্ট করে দেব , কেউ অন্য লেঙ্গুয়েজ এ করলে সেটা সিলেক্ট করে দিবা । তারপর নিচের ছবির মত CodeBlocks থেকে Source Code টা কপি করে বসিয়ে দিবা-


সবকিছু ঠিকঠাক থাকলে , একটু নিচে এসে আল্লাহর নাম নিয়া SEND -


কাজ শেষ !

ভাইয়া , সেন্ড তো করলাম কিন্তু আমার কোড সঠিক নাকি ভুল বুঝব কিভাবে ? আচ্ছা, সেটা বুঝতে হলে আমাদের আবার মেন্যুবার থেকে Problems >> Beginner এ যেতে হবে -


হয়ে গেলে গ্রিণ কার্ড নাহলে লাল । এই সিস্টেমটা কিছুটা ঝামেলার বার বার এখানে এসে দেখা , অনেকে আবার বলবে নিউ ট্যাব ওপেন করে রাখব আর বারবার রিফ্রেশ মারব :D
আসলে আমরা যাদি একটা নিউ ট্যাব নিয়ে Submissions >> Live এ যাই , তাহলেই সঠিক নাকি ভুল আর ভুল হলে কি ভুল সেটা দেখতে পারব -


এখানে Wrong Answer , Runtime Error , Persentation Error আরো অনেক ধরনের Error দেখাতে পারে , এসব কেন দেখায় - কি করতে হবে এসব নিয়ে অন্য একদিন আলোচনা করব।
আল্লাহ হাফেজ ।
Print / Save As PDF
সর্বশেষ
পরের পোষ্ট
এই পোষ্টটি লিখেছেনঃ
আরো দেখতে পারেনঃ