প্রোগ্রামিংয়ে ALGORITHM, PSEUDOCODE ও FLOWCHART কি?



প্রোগ্রামিংয়ে ALGORITHM, PSEUDOCODE ও FLOWCHART কি?


আমরা আমাদের দৈনন্দিন জীবনে যেসকল সমস্যায় পড়ি সেগুলো আপনা-আপনি সমাধান হয়ে যায়না। আমাদেরকে প্রতিটি সমস্যা সমাধান করতে বেশ কিছু ধাপ বা পদক্ষেপ অনুসরণ করতে হয়। একটা উদাহরণ দেওয়া যাক -

আপনার খুব সিঙ্গারা খাওয়ার ইচ্ছে হলো যদিও আপনার পকেট ফাঁকা। এমন সময় দেখলেন পাশের হোটেলে বসে আপনার সেই টাকা মেরে দেওয়া বন্ধু গপাগপ সিঙ্গারা গিলছে। আপনি চুপচাপ ওর পাশে বসে সিঙ্গারা অর্ডার করে দিলেন। খাওয়া শেষে আপনার বন্ধুর দিকে দেখিয়ে হোটেলের মামাকে বিল নিতে বললেন। তারপর আরকি, সেই দৌঁড়!!

এখন আপনি আপনার সিঙ্গারার ইচ্ছা পূরণের জন্য বেশ কয়েকটা কাজ করেছেন। বন্ধুর পাশে বসা, সিঙ্গারা অর্ডার করা থেকে দৌঁড় দেওয়া পর্যন্ত এক একটি হলো আপনার বিনা পয়সায় সিঙ্গারা খাওয়ার এক একটি ধাপ।

প্রোগ্রামিংয়েও কোন সমস্যা সমাধানের জন্য আমাদেরকে ধাপে ধাপে প্রোগ্রাম লিখতে হয়। এই ধাপগুলোর সাথেই মূলত Algorithm, Pseucode ও Flowchart সম্পর্কিত।

Algorithm কি?

সিঙ্গারা খাওয়ার জন্য পূর্বে যে ধাপগুলো করেছেন সেগুলো যখন আপনার ভাষায় গুছিয়ে সাজিয়ে ক্রমানুসারে লিখবেন তখন যেই জিনিস তৈরি হবে সেটাকে প্রোগ্রামিংয়ের ভাষায় বলা হয় Algorithm (এলগোরিদম)। সিঙ্গারা খাওয়ায় সফল হওয়ার জন্য তৈরি Algorithm হবে কিছুটা এমন -

  1. শুরু
  2. হোটেলে প্রবেশ
  3. বন্ধুর পাশে বসা
  4. সিঙ্গারা অর্ডার করা
  5. সিঙ্গারা মনের সুখে খাওয়া
  6. হোটেলের মামার কাছে বন্ধুকে ফাঁসিয়ে দেয়া
  7. দৌঁড় দেওয়া
  8. সমাপ্তি

এই Algorithm লেখার বাঁধা-ধরা কোন নিয়ম নেই, তবে এর ভাষা এমন হবে যেন প্রোগ্রামার না হলেও সমস্যা সমাধানের উপায়গুলো বুঝা যায়। Algorithm এ কোন কোড থাকে না, থাকে শুধু আপনার আমার মতো সাধারণ মানুষের বোধগম্য ভাষা। তবে Algorithm এ গাণিতিক বিভিন্ন সূত্র বা নিয়মও উল্লেখ করা যায়।

Pseudocode কি?

"Pseudo" শব্দের অর্থ ভুয়া বা নকল। অর্থাৎ, Pseudocode (সুডোকোড) হলো নকল কোড। প্রোগ্রামিংয়ের মূল প্রোগ্রামে কোড লেখার আগে সাধারণ মানুষের বোধগম্য ভাষায় যে কোড লেখা হয় সেটিকেই বলা হয় Pseudocode.

Pseducode দেখে একটি প্রোগ্রামিং ভাষা মনে হলেও এটিকে আসল কোডের মতো কম্পাইলার (Compiler) দিয়ে কম্পাইল করা যায়না। Pseudocode এর ভাষা এমন হয় যেন নতুন নতুন শিখতে আসা 'কচি' প্রোগ্রামারও এটি বুঝতে পারে।

সিঙ্গারার উদাহরণ অনকের হজম নাও হতে পারে। তাই আরেকটি বাস্তব সম্মত উদাহরণ দিচ্ছি -

সমস্যা-২ঃ দুটি সংখ্যার যোগফল নির্ণয় করতে হবে

এই সমস্যার সমাধানের জন্য Pseudocode হবে এরকম -

Begin
  Input a
  Input b
  sum = a+b
  Print sum
End

এখানে Begin আর End দ্বারা যথাক্রমে প্রোগ্রামের শুরু আর শেষ বুঝানো হয়েছে। আর Begin ও End এর মাঝে যতকিছু আছে সব হলো Process. আর a ও b হচ্ছে যোগ করার জন্য দেওয়া দুটি সংখ্যা।

Algorithm বনাম Pseudocode

Algorithm আর Pseudocode হলো যমজ বোন লিলি আর মিলির মতো। তাদেরকে অনেকে এক মনে করলেও আসলে তারা দুইজন ভিন্ন। লিলিকে Algorithm আর মিলিকে Pseudocode এর সাথে তুলনা করা যাক (যদিও ব্যাপারটা জানতে পারলে লিলি ও মিলি রাগ করতে পারে)।

লিলি বাংলাদেশে বড় হয়েছে, তাই তার ভাষাও বাংলা। তার কথাবার্তা বাঙালি সবাই বুঝতে পারে। অপরদিকে, মিলি বড় হয়েছে মিশরের কোন এক অঞ্চলে। সেখানে সে সাংকেতিক ভাষা শিখেছে। আবার সে এখন বাংলাদেশে এসে হালকা বাংলাও শিখে ফেলেছে। তাই মিলি যখন কথা বলে তখন তার কথায় বাংলা ও সাংকেতিক ভাষা দুটোই থাকে।

এই কারণে, মিলির সব কথা সকল বাঙালি বুঝতে পারে না। যেসকল বাঙালি ঐ সাংকেতিক ভাষার সাথে পরিচিত ও জানে তারাই মিলির কথা স্পষ্ট বুঝতে পারে।

লিলি যেমন কথা বলার জন্য বাংলা ভাষার ব্যবহার করে তেমনি Algorithm এও একটি সমস্যা সমাধানের উপায়গুলো সাধারণ মানুষের ভাষায় লেখা থাকে। যদিও বাংলার পাশাপাশি যেকোন ভাষাতেই Algorithm লেখা সম্ভব, ইংরেজিকেই আদর্শ বলে ধরা হয়। তাই Algorithm সাধারণত ইংরেজিতেই লেখা হয়।

অপরদিকে, মিলি যেমন খাঁটি বাংলাও বলে না সাংকেতিক ভাষাও বলেনা তেমনি Pseudocode ও প্রকৃত কোড নয়। মূল প্রোগ্রামে যা যা কোড ব্যবহার করা হয় সেটির আংশিক ধারণা Pseudocode এ উল্লেখ করা হয়।

Pseudocode কে Algorithm এর Update বলা যায়। কারণ, প্রোগ্রাম লেখার পূর্বে ও Algorithm লেখার পরে Pseudocode লেখা হয়। আবার একটি Algorithm কে Pseudocode এর মাধ্যমেও প্রকাশ করা যায়।

উপরে দেওয়া "সমস্যা-২" এর জন্য Algorithm হবে নিম্নরুপঃ
  1. Start
  2. Declare variables a,b & sum
  3. Get values of a & b
  4. Add the variables and assign it to the varaiable sum
  5. Display Stop
  6. Stop
এখন সমস্যা-২ এর জন্য Pseudocode ও Algorithm দেখে বুঝা যাচ্ছে, Pseudocode অনেকটা কম্পিউটারে দেওয়া নির্দেশ দেওয়ার মতো। কিন্তু Algorithm প্রোগ্রামের কোডগুলোকে বর্ণনা করে।

Flowchart কি?

Pseudocode ও Algorithm এর মাঝে একটু বিভ্রান্তি লাগলেও Flowchart (ফ্লোচার্ট) এর সাথে বিভ্রান্ত হওয়ার কিছু নেই। কারণ, Pseudocode ও Algorithm দুটোই লিখিত রূপ। কিন্তু Flowchart হলো মূলত একটি চিত্র। 

Algorithm এর ধাপগুলো যখন জ্যামিতিক আকার ও চিহ্ন দ্বারা তৈরি চিত্রের সাহায্যে প্রকাশ করা হবে সেটিই হবে Flowchart. বাংলায় Flowchart কে প্রবাহচিত্রও বলা হয়ে থাকে।

ধাপগুলো পরিবর্তন হলেও সকল সমস্যার Flowchart এর একটি শুরু ও শেষ থাকে। এই শুরু ও শেষকে ইংরেজিতে যথাক্রমে Start ও End দ্বারা বুঝানো হয়ে থাকে।

Flowchart কে নীলনকশার সাথে তুলনা করা যায়। একটি প্রোগ্রাম লেখার নীলনকশা হলো ঐ প্রোগ্রামের জন্য তৈরি Flowchart.

"সমস্যা-২" এর জন্য Flowchart হলো নিম্নরুপ -

Programming Flowchart


Program

"সমস্যা-২" এর জন্য একটি প্রোগ্রাম নিচে দেওয়া হলো। এখানে আমি ব্যবহার করেছি C++ প্রোগ্রামিং ল্যাঙ্গুয়েজ -

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream> 

using namespace std; 

int main (){ 

     // দুটি সংখ্যার জন্য ভেরিয়েবল 
      int a; 
      int b; 
      int sum; 

    // দুটি সংখ্যার মান 
       a = 5; 
       b = 7; 

    // যোগের সূত্র 
       sum = a + b; 
    
    // ফলাফল প্রদর্শন 
       cout << sum; 
       result 0; 
}

একটি মন্তব্য পোস্ট করুন


0 মন্তব্যসমূহ