প্রোগ্রামিংয়ের মৌলিক ধারণা/স্ট্রাকচার্ড প্রোগ্রামিং
সংক্ষিপ্ত বিবরণ
[সম্পাদনা]স্ট্রাকচার্ড প্রোগ্রামিং হলো একটি প্রোগ্রামিং প্যারাডাইম, যার লক্ষ্য হলো নিম্নলিখিত স্ট্রাকচার্ড কন্ট্রোল ফ্লো কনস্ট্রাক্টগুলো ব্যাপকভাবে ব্যবহারের মাধ্যমে একটি কম্পিউটার প্রোগ্রামের স্পষ্টতা, গুণমান এবং ডেভেলপমেন্টের সময় উন্নত করা:
- নির্বাচন (ইফ দেন এলস)
- পুনরাবৃত্তি (হোয়াইল এবং ফর)
- ব্লক স্ট্রাকচার
- সাবরুটিন
এর বিপরীতে, "গো টু" (go to) স্টেটমেন্টের মতো সাধারণ টেস্ট এবং জাম্প ব্যবহার করলে "স্প্যাগেটি কোড" তৈরি হতে পারে; এমন কোড যা অনুসরণ করা এবং রক্ষণাবেক্ষণ করা সম্ভাব্যভাবে কঠিন।[১]
আলোচনা
[সম্পাদনা]প্রোগ্রামিংয়ের সবচেয়ে গুরুত্বপূর্ণ ধারণাগুলির মধ্যে একটি হলো একটি প্রোগ্রামকে নিয়ন্ত্রণ করার ক্ষমতা, যাতে কোডের বিভিন্ন লাইন কার্যকর করা যায়। যে প্রক্রিয়াগুলি আমাদের এক্সিকিউশনের প্রবাহকে নিয়ন্ত্রণ করতে দেয়, তাদের কন্ট্রোল স্ট্রাকচার বলা হয়। ফ্লোচার্টিং হলো একটি প্রোগ্রাম কীভাবে এক্সিকিউট হবে, তার প্রবাহ (বা পথ) নথিভুক্ত করার (চার্ট করার) একটি পদ্ধতি। কন্ট্রোল স্ট্রাকচারের তিনটি প্রধান ক্যাটাগরি রয়েছে:
সিকোয়েন্স – সিকোয়েন্স হলো এমন কোড যা সবচেয়ে পরিচিত এবং পড়তে সবচেয়ে সহজ। কোডটি 'a' থেকে 'z' ক্রমে পড়া হয়। একটি বই পড়ার কথা ভাবুন। আপনি অনুক্রমিক ক্রমে অধ্যায় থেকে অধ্যায় পড়েন।
<script>
var a = 1;
var b = 2;
var c = 3;
a = b;
c = a;
<script>
সিলেকশন – দুই বা ততোধিক শর্তের মধ্যে থেকে নির্বাচন করা। একটি প্রশ্ন জিজ্ঞাসা করার মাধ্যমে এই পছন্দ নির্ধারিত হয়। উত্তরের ওপর ভিত্তি করে কোন পথটি কার্যকর হবে, তা স্থির করা হয়।
<script>
var a = 1;
var b = 2;
if (a {
var text = “I know a < b, it’s a bit obvious”;
document.getElementById(“demo”).innerHTML =text;
}
</script>
ইটারেশন – এটি পুনরাবৃত্তি নামেও পরিচিত। এটি কিছু কোডকে একাধিকবার কার্যকর বা পুনরাবৃত্তি করার সুযোগ দেয়। কোডটি হয়তো একেবারেই কার্যকর নাও হতে পারে, একটি নির্দিষ্ট সংখ্যক বার কার্যকর হতে পারে, অথবা কোনো শর্ত পূরণ না হওয়া পর্যন্ত অনির্দিষ্টকালের জন্য কার্যকর হতে পারে। ইটারেশনকে লুপিং নামেও অভিহিত করা হয়, কারণ কোড প্রবাহটি কাজ পুনরাবৃত্তি করার জন্য আবার ফিরে আসে। উদাহরণস্বরূপ, একটি হোয়াইল লুপ একটি নির্দিষ্ট শর্তের উপর ভিত্তি করে পুনরাবৃত্তি করার জন্য ব্যবহৃত হয়।
<script>
var a = 0;
var b = 10;
result = “a < b”;
text = “ “;
while(a < b)
{
text += result + “<br>”;
a++;
}
document.getElementById(“demo”).innerHTML = text;
</script>
ব্রাঞ্চিং – এটি একটি অনিয়ন্ত্রিত কাঠামো যা এক্সিকিউশনের প্রবাহকে প্রোগ্রামের ভিন্ন অংশে লাফিয়ে যেতে দেয়। মডুলার স্ট্রাকচার্ড প্রোগ্রামিংয়ে এই ক্যাটাগরি খুব কমই ব্যবহৃত হয়। উদাহরণস্বরূপ, একটি ইফ/এলস স্টেটমেন্ট শর্তের উপর নির্ভর করে কাজ করে।
<script>
var x="";
var time=new Date().getHours();
if (time<20)
{x="শুভ দিন";
}
else
{x="শুভ সন্ধ্যা";
}
document.write(x);
</script>
সকল উচ্চ-স্তরের প্রোগ্রামিং ভাষায় কন্ট্রোল স্ট্রাকচার থাকে। সব ভাষাতেই প্রথম তিনটি ক্যাটাগরির কন্ট্রোল স্ট্রাকচার (সিকোয়েন্স, সিলেকশন এবং ইটারেশন) বিদ্যমান। বেশিরভাগ ভাষায় ইফ দেন এলস কাঠামো (যা সিলেকশন ক্যাটাগরির অন্তর্গত) এবং হোয়াইল কাঠামো (যা ইটারেশন ক্যাটাগরির অন্তর্গত) থাকে। এই দুটি মৌলিক কাঠামোর পর সাধারণত ভাষার নিজস্ব ভিন্নতা দেখা যায়।
স্ট্রাকচার্ড প্রোগ্রামিংয়ের ধারণাটি ১৯৬০-এর দশকের শেষের দিকে এডসগার ডাইকস্ট্রার একটি প্রবন্ধের মাধ্যমে শুরু হয়েছিল। তিনি প্রোগ্রামিং লজিক পরিকল্পনার একটি "গো টু-লেস" পদ্ধতি প্রস্তাব করেছিলেন, যা কন্ট্রোল স্ট্রাকচারের ব্রাঞ্চিং ক্যাটাগরির প্রয়োজনীয়তা দূর করে। এই বিষয়টি প্রায় ২০ বছর ধরে বিতর্কিত ছিল। তবে শেষ পর্যন্ত – "বিংশ শতাব্দীর শেষ নাগাদ প্রায় সকল কম্পিউটার বিজ্ঞানীই নিশ্চিত হয়েছিলেন যে স্ট্রাকচার্ড প্রোগ্রামিংয়ের ধারণাগুলি শেখা এবং প্রয়োগ করা উপকারী।"[২]
মূল শব্দাবলী
[সম্পাদনা]- ব্রাঞ্চিং
- একটি অনিয়ন্ত্রিত কাঠামো যা এক্সিকিউশনের প্রবাহকে প্রোগ্রামের ভিন্ন অংশে লাফিয়ে যেতে দেয়।
- কন্ট্রোল স্ট্রাকচার
- প্রোগ্রামের মধ্যে এক্সিকিউশনের প্রবাহকে নিয়ন্ত্রণ করার প্রক্রিয়া।
- ইটারেশন
- একটি কন্ট্রোল স্ট্রাকচার যা কোডের কিছু লাইনকে বহুবার কার্যকর করার সুযোগ দেয়।
- সিলেকশন
- একটি কন্ট্রোল স্ট্রাকচার যেখানে প্রোগ্রাম দুই বা ততোধিক বিকল্পের মধ্যে থেকে বেছে নেয়।
- সিকোয়েন্স
- একটি কন্ট্রোল স্ট্রাকচার যেখানে প্রোগ্রাম তালিকাভুক্ত ক্রম অনুসারে আইটেমগুলি কার্যকর করে।
- স্প্যাগেটি কোড
- একটি শব্দগুচ্ছ যা অসংগঠিত এবং রক্ষণাবেক্ষণে কঠিন সোর্স কোডের প্রতি অসন্তোষ প্রকাশ করতে ব্যবহৃত হয়।[৩]
- স্ট্রাকচার্ড প্রোগ্রামিং
- প্রোগ্রাম পরিকল্পনার একটি পদ্ধতি যা কন্ট্রোল স্ট্রাকচারের ব্রাঞ্চিং ক্যাটাগরি এড়িয়ে চলে।