প্রোগ্রামিং দক্ষতা বাড়িয়ে নেয়ার কয়েকটি ওয়েবসাইট




Intermediate , Beginner, Absolute Beginner, expert লেভেলের বিভিন্ন প্রোগ্রামিং সমস্যা এখানে আছে।নতুনদের  জন্য খুব ভালো জায়গা,আখানে কিছু প্রোগ্রামিং সমস্যার সমাধান ও ব্যাখ্যা দেওয়া আছে যেগুলো নতুন কোডারদের জন্য খুব সহায়ক।সাইটের নিজস্ব ফোরাম আছে যেখানে কোন সমস্যা নিয়ে আলোচনা করা যায়,টপ প্রোগ্রামারদের সাথে পরিচয় হয়া যায়।একটা কথা না বললেই নয়,অন্যান্য প্রোগ্রামারদের সমাধান করা সমস্যার কোড দেখতে দেয় যেটা অন্য সাইট গুলো দেয় না।এই ওয়েবসাইট নিয়মিত প্রোগ্রামিং contest এর আয়োজন করে। 



বাংলাদেশী প্রোগ্রামারদের মধ্যে খুব জনপ্রিয় একটা সাইট,অনেক সমস্যার সমাধান দেওয়া আছে অনুশীলনের জন্য।প্রোগ্রামিং যারা মোটামুটি পারে,আমি তাদের বলবো এই ওয়েবসাইটটিতে নিয়মিত অনুশীলন করতে।uva Ranking এ বর্তমানে বাংলাদেশী প্রোগ্রামারদের অবস্থান খুব ভালো,টপ 3 বা 5 এ দুই-একজন বাংলাদেশী থাকবেই। 



গনিতবিদ Leonhard Euler এর কথা কে না জানে, euler মাত্র ১৮ বছর বয়সে French-Academy of Science এ তার গবেষণাপত্র জমা দেন,তার ৫৩০টিরও বেশি বই এবং papers প্রকাশিত হয়।ত্রিকনমিতির exponential function তারই গবেশনার ফল।ইউলার সম্পর্কে একটা কথা প্রচলিত আছে, “Euler calculated as long as breathed” .
যাই হোক, এই ওয়েবসাইটের সমস্যা গুলোর অধিকাংশই গাণিতিক যুক্তি দিয়ে সমাধান করতে হয়।সমাধান করে পুরো প্রোগ্রাম জমা দিতে হয় না শুধু উত্তর জমা দিলেই হয়, খুবই সহজ ব্যাবহার করা যে কেউ পারবে। 
আমি ব্যক্তিগত ভাবে এই ওয়েবসাইটের একজন একনিষ্ঠ ভক্ত।



এই ওয়েবসাইট নিয়ে কিছু বলবো না সাইটে গেলেই বুজতে পারবেন।


টপকোডার.কম নিয়ে আসলে নতুন করে বলার কিছু নাই। অভিজ্ঞ প্রোগ্রামারদের জন্য আদর্শ জায়গা।অনেক সমস্যা দেওয়া থাকে,নিয়মিত প্রতিযোগিতার আয়োজন করে এই ওয়েবসাইট, সমস্যা সমাধান করলে টাকাও পাওয়া যায়। আমি নতুন প্রোগ্রামারদের topcoder.com এর আশেপাশে না যাওয়ার পরামর্শ দিবো।




এই ওয়েবসাইটের কথা না বললে খুব অন্যায় হবে।ওয়েবসাইটটি চালু করেন একজন বাংলাদেশী “জানই-আলম”,তিনি ঢাকা বিশ্ববিদ্যালয় থেকে কম্পিউটার ইঞ্জিনিয়ারিং বিভাগ থেকে পাশ করে বর্তমানে Google এ কর্মরত আছেন।এই ওয়েবসাইটটিতে খুব সহজ ভাষায় সমস্যা গুলো দেয়া আছে, নতুন প্রোগ্রামারদের জন্য একটা আদর্শ জায়গা।এই সাইটের একটি চমৎকার ফোরাম আছে। শুধু এই সাইটে নয় প্রত্যেকটি online judge সাইটেরই একটা করে ফোরাম থাকে, যেখানে বড় বড় প্রোগ্রামারদের সাথে কথা বলা যায়,তারা কিভাবে প্র্যাকটিস করে,কম সময়ে সমস্যা সমাধানের বিভিন্ন টিপস ইত্যাদি বিষয় গুলো জানা যায়, যেগুলো প্রোগ্রামিং এ দক্ষ হয়ে ওঠার পক্ষে সহায়ক।



উপরের সবগুলো ওয়েবসাইটের থেকে আমি এই সাইটকে এগিয়ে রাখবো।কেন রাখবো বুঝে নেন।






এটি একটি বাংলা ফোরাম, সাইটটা বেশ কাজের ফোরামে রাবি,ঢাবি,বুয়েট,রুয়েট...... এর বিভিন্ন প্রোগ্রামারদের সাথে পরিচয় হওয়া যায়।তাদের সাথে বিভিন্ন বিষয় শেয়ার করা যায়। 

সব শেষে এই ফেসবুক পেজে আপনাদের সমস্যার কথা বলতে পারেন আশা করি উত্তর পাবেন।

পোস্টটি ভালো লাগলে কমেন্ট করতে ভুলবেন না।


 

প্রাইম নাম্বার কি? সি প্রোগ্রামে বিভিন্নভাবে প্রাইম নাম্বার বের করা

প্রাইম নাম্বার কি? এটা মনে হয় প্রায় সবাই জানেন তাই এইটা নিয়া আর বেহুদা প্যাঁচাল না পারি আমরা সমস্যায় চলে যাই।

১ম সমসাঃ আমাদের একটি প্রোগ্রাম লিখতে হবে যেটি ইনপুট নিয়ে বলে দিতে পারবে ইনপুট দেওয়া সংখ্যাটি প্রাইম কিনা।

এই সমস্যাটি বিভিন্ন লজিকে সমাধান করা যায়, আমরা সবচেয়ে সহজ পদ্ধতি সমাধান করবো। প্রাইম নাম্বারের সংজ্ঞা থেকে আমারা জানি, প্রাইম নাম্বার মাত্র দুটি সংখ্যা দ্বারা নিঃশেষে বিভাজ্য হবে( একটি ১ অন্যটি ঐ সংখ্যা নিজে)


তাহলে আমরা প্রোগ্রামে একটি সংখ্যা ইনপুট দিলে সংখ্যাটি যদি ২ বার নিঃশেষে বিভাজ্য হয় তাহলে প্রাইম র না হলে প্রাইম নয়। 







উপরের প্রোগ্রামটি না বোঝার কিছু নাই।
আমারা এখানে for loop i এর মান 1, i, n থেকে ছোট বা সমান এবংI এর মান একএক করে বাড়বে। প্রতিবার loop repeat হওয়ার সময় if এর মধ্যকার শর্ত চেক হবেশর্তে বলা আছে যখন n এবংI এর ভাগশেষ শুন্য হবে তখন count এর মান এক বাড়বে।ভাগশেষ শূন্য হবে যখন n, i দ্বারা নিঃশেষে বিভাজ্য হবে।এভাবে চললে দেখা যাবে count এর মান 2 হবে যদি input দেওয়া নাম্বারটি প্রাইম হয় আর যদি না হয় নাম্বার টি 
প্রাইম নয়।

প্রোগ্রামটি অন্যভাবে করা যায় যেমন
সিভ অফ এন্টারস্থেনিজ থিওরি "প্রয়োগ করে প্রাইম নাম্বার বের করা




প্রোগ্রামিং সমস্যা বাংলায় (এউলার সমস্যা ০১)



সমস্যাঃ 10 থেকে ছোট সকল স্বাভাবিক সংখ্যার যোগফল বের করতে হবে যেগুলো 3 অথবা 5 এর গুনিতক।( গুনিতক কি এইটা আবার জিগায়েন না)


সমাধানঃ 10 থেকে ছোট সকল স্বাভাবিক সংখ্যা হচ্ছে 1,2,3,4,5,6,7,8,9 এদের মধ্যে 3 বা 5 এর গুণিতক হচ্ছে 3,5,6, এবং 9এদের যোগফল 23।  

লজিক তো বুঝলেন এইবার কোড লিখে ফেলেন,নিজে নিজে চেষ্টা করেন, চিন্তা করেন প্রোগ্রামারদের কোন সমস্যা নিয়া রাত-দিন একাকার করে ফেলা একটা বড় গুন, তারপরও না পারলে নিচের লিঙ্কে একটা ক্লিক করেন।

সমাধান

euler problem overview (Download)


Euler problem #03: 600851475143 এর সর্বচ্চ প্রাইম factor (largest prime factor)

প্রোগ্রামিং সমস্যার সমাধান



এইটা আশা করি বুজতে পারছেন, এইবার যোগফলের সাথে 10 থেকে ছোট সংখ্যাগুলো(অবশ্যই 3 বা 5 এর গুণিতক সংখ্যাগুলো) print করেন। না পারলে নিচের কোডটি দেখেন....