প্রোগ্রামিং প্রব্লেম ব্রেকডাউন প্রসেস......
টিউন-৭ঃ এ পর্বে প্রোগ্রামিং প্রব্লেমের ব্রেকডাউন কিভাবে করতে হয় সেই প্রসেস টা দেখব ......।
এর জন্য প্রথমে আমাদের বুঝতে প্রোগ্রাম কি এবং প্রব্লেম কি ?
সাধারন ভাষায় বলতে গেলে ধরুন, আগামী পরশু আপনার জন্মদিন । এখন আপনি ভাবছেন আগামী পরশু আপনি আপনার জন্মদিন উপলক্ষে আপনার পরিবার বন্ধু-বান্ধব এবং প্রতিবেশিদের নিয়ে বেশ জমজমাট একটা অনুষ্টান করতে চান । যে অনুষ্টানে লোকজন আসবে আপনি তাদের রিচিভ করবেন তারা আপনাকে wish করবে তারপর আপনি তাদের কে নিয়ে কেক কাটবেন তারপর তাদের কে খেতে দিবেন (আবার গরমের দিনে অনুষ্টান হলে তাদের জন্য ফেন এর ব্যবস্থা করে দিবেন ) পরিশেষে বিদায় দিয়ে অনুষ্টান টি শেষ করবেন।
এই যে আপনি আপনার জন্মদিনের অনুষ্টানটি সম্পূর্ণ করলেন প্রোগ্রামিং এর ভাষায় এটাকেই হল প্রোগ্রাম ।
এখন আসি প্রব্লেম কি .........
আমরা জানি যে, প্রত্যেক টা Problem ই এক একটা Challenge আবার প্রত্যেক টা Challenge ই এক একটা Problem. প্রথমে বুঝতে হবে প্রব্লেমে কি থাকে, প্রব্লেমে থাকে একটা Description যেখানে উল্লেখ থাকে কিছু নির্দেশনা এবং সেই নির্দেশনা অনুসারে কিছু একটা ফলাফল চাওয়া হয়। এখন মনে করুন, আপনি আপনার অনুষ্টান বা প্রোগ্রাম টা বাড়িতে না করে কোন একটা কমিউনিটি সেন্টারে সম্পূর্ণ করতে চান আর তাই আপনি আপনার অনুষ্টান বা প্রগ্রামে কোন কাজ টার পর কোন কাজ টা follow করতে চান এবং অনুষ্টানে আপনি কি কি খাবারের আইটেম রাখতে চান এবং গরমে তাদের জন্য ফেন নাকি এসি’র ব্যবস্থা রাখতে চান সেই সব নির্দেশনা দিয়ে একটা description চার্ট তৈরি করে পছন্দের একটা কমিউনিটি সেন্টারে যাওয়ার পর ম্যানেজারের কাছে গিয়ে চার্ট টা ম্যানেজারের হাতে দিয়ে বললেন এই চার্ট অনুসারে আপনি একটা জন্মদিনের অনুষ্টান করতে চান ।
প্রোগ্রামিং ভাষায় আপনার দেওয়া চার্ট 'ই ম্যানেজারের সাপেক্ষে একটা প্রব্লেম।
এবার আসি প্রোগ্রামিং এ একটা প্রব্লেম কে কিভাবে ব্রেকডাউন করে স্টেপ বাই স্টেপ সমাধান বের করা যায়.........

চিত্র-১
আমরা চিত্র নং ১ এ একটি সম্পূর্ণ গাছের চিত্র দেখছি । এখন আপনাকে যদি প্রশ্ন করা হয় গাছটির বর্ণনা দিতে তাহলে আপনি কিভাবে বর্ণনা করবেন ? অবশ্যই বলবেন গাছটি দাঁড়ানো অবস্থায় রয়েছে যার একেবারে উপরের অংশে পাতা তারপর পাতার নিচের অংশে ডাল তারপর ডাল গুলো ধরে আছে মূল গাছ আর সবশেষে গাছের নিচের অংশে রয়েছে শিকড়। অথ্যাৎ আপনি গাছটি উপর থেকে নিছের বিবেচনা করে বর্ণনা করলেন যাকে প্রোগ্রামিং এর ভাষায় বলা হয়ে থাকে Top to Down প্রসেস। ( মূলত প্রোগ্রামিং এর প্রব্লেম গুলো এই প্রসেস’ই দেওয়া হয়ে থাকে। )
এখন আপনাকে যদি এমন একটা গাছের চিত্র দিয়ে বলা হয় প্রোগ্রামিং দিয়ে এমন একটা গাছের চিত্র ডিজাইন করে দেও ( প্রোগ্রামিং এর ভাষায় যেটা আপনার কাছে একটি প্রব্লেম) । তখন আপনি কিভাবে ডিজাইন করবেন মানে আপনার এই প্রব্লেম টা কিভাবে সমাধান করবেন। আপনি কি পাতা থেকে ডিজাইন শুরু করবেন নাকি শিকড় থেকে নাকি যে কোনো এক পাশ থেকেই ডিজাইন শুরু করবেন ? কিভাবে কোন পাশ থেকে ডিজাইন শুরু করিলে আপনি সহজেই ডিজাইন টা সম্পূর্ণ করতে পারবেন ।
আসুন তবে দেখি কিভাবে এই প্রসেস টা শুরু করা যায়...........................

চিত্র-২
এখন যদি আমরা চিত্র নং -১ এবং চিত্র নং-২ লক্ষ্য করি তাহলে দেখবে যে ১ নং চিত্রের গাছ টি’ই ২ নং চিত্রে বড় থেকে ছোট বিভিন্ন অংশে ভাগ করে দেখানো হইছে ( হ্যাঁ আপনিও যখন কোন প্রোগ্রামিং প্রব্লেম সমাধান করতে বসবেন তখন প্রব্লেম টাকে এমন ছোট ছোট অংশে ভাগ করে চিন্তা করবেন)। যেমন – গাছের পাতা, ডাল, গাছ, শিকড়কে আলেদা আলেদা ভাগ করে Thinking করা হইছে। এখন যদি আপনি আপনার দেওয়া গাছের বর্ণনার দিকে লক্ষ্য করেন তাহলে দেখবেন যে আপনি বলেছিলেন যে পাতা কে ধরে রাখছে ডাল, আবার ডাল কে ধরে রাখছে মূল গাছ, আর মূল গাছ টি ধরে রাখেছে গাছের শিকড় । যেমন-

চিত্র-৩
আমরা যদি চিত্র নং -৩ এ লক্ষ্য করি দেখব যে প্রসেসের শুরুর দিক টা মানে স্টাডিং দিক টা হচ্ছে শিকড়ের দিক থেকে তার মানে ডিজাইনের প্রসেস শুরুর মূল পয়েন্ট টা বা রূট পয়েন্ট টা হল শিকড়( ঠিক তেমনি প্রতি প্রোগ্রামের প্রব্লেম কে বিভিন্ন অংশে ভাগ করা পর দেখতে হবে প্রোগ্রামের স্টাডিং পয়েন্ট টা অর্থ্যাৎ রূট পয়েন্ট কোন টা সেই রূট পয়েন্ট থেকে প্রোগ্রাম করা শুরু করতে হবে)। তাহলে আমরা যদি আবার ৩ নং চিত্র দেখি তাহলে দেখবে চিত্রে শিকড় রয়েছে Down এ আর Top রয়েছে পাতা। প্রোগ্রামিং ক্ষেত্রে যেকোনো প্রোগ্রামের সমাধান কে চিন্তা করতে হয় স্টাডিং লেভেল থেকে অর্থ্যাৎ প্রোগ্রামের রূট লেভেল থেকে । তার মানে আপনি যদি প্রোগ্রাম দিয়ে ১ নং চিত্র টা ডিজাইন করতে চান তাহলে ৩ নং চিত্র অনুসারে প্রোগ্রামিং রুল’স মতে আপনাকে Down to Top অনুসারে ডিজাইনিং প্রসেস Follow করতে হবে। যেমন-
চিত্র-৪
এবার আপনি ৪ নং চিত্র অনুসারে যদি প্রোগ্রাম টা সমাধান করা স্টাড করেন অর্থ্যাৎ স্টেপ বাই স্টেপ প্রব্লেম টা সমাধান করা শুরু করা মানে Down to Top অনুসারে Solve করেন তাহলে আপনার প্রোগ্রাম ব্রেকডাউন প্রসেস ৫ নং চিত্রের মতো একটা Tree হবে যেমন-
চিত্র-৫
এবার ৫ নং চিত্রের মতো যদি আপনি আপনার প্রোগ্রাম টা ব্রেকডাউন করে কোন একটা IDE দিয়ে স্টাডিং পয়েন্ট থেকে স্টেপ বাই স্টেপ কোডিং করা শুরু করেন তাহলে প্রোগ্রাম টি Run করার পর Top to Down অনুসারে ৬ নং চিত্রের মতো একটা Tree ডিজাইন দেখতে পাবেন Output Console । যেমন-
চিত্র-৬
এবার একটু লক্ষ্য করলেই দেখবেন যে আপনার চিত্র ১ নং এর গাছের মতো সম্পূর্ণ গাছ টি ডিজাইন হয়ে গেছে ।
সারমর্মঃ প্রোগ্রামিং এ যেকোনো প্রোগ্রাম’ই দেওয়া থাকে Top to Down প্রসেসে কিন্তু প্রোগ্রাম Solve করার সময় প্রোগ্রাম কে Down to Top অনুসারে Thinking করে প্রোগ্রাম Breakdown করতে হয় এবং সেই breakdown অনুসারে Step by Step প্রোগ্রাম Solve করতে হয়।
লেখার ভুল ক্ষমা দৃষ্টিতে দেখবেন পরবর্তী টিউন গুলো পেতে সাথেই থাকুন.......................
/image%2F2599357%2F20171129%2Fob_ea748f_s3.jpg)