নিয়ন্ত্রণ প্রবাহ স্টেটমেন্টস এমন ধরণের স্টেটমেন্ট যা প্রোগ্রামের কার্যক্রম নিয়ন্ত্রণ করে এবং নির্ধারণ করে যে কোন অংশটি কখন চালানো হবে। প্যাসক্যাল প্রোগ্রামিং ভাষায় নিয়ন্ত্রণ প্রবাহের স্টেটমেন্টগুলো কোডের বিভিন্ন অংশের মধ্যে শাখা এবং লুপ তৈরি করতে সহায়তা করে। মূল নিয়ন্ত্রণ প্রবাহ স্টেটমেন্টগুলো হলো: if, case, for, while, repeat-until এবং goto।
১. If-Else Statement
if স্টেটমেন্টটি একটি শর্তের ভিত্তিতে কোডের নির্দিষ্ট অংশ চালানোর জন্য ব্যবহার করা হয়। যদি শর্তটি সত্য হয়, তাহলে নির্দিষ্ট কোড ব্লকটি চলবে; যদি মিথ্যা হয়, তবে অন্য একটি কোড ব্লক চলতে পারে।
Syntax:
if condition then
begin
// Code to execute if the condition is true
end
else
begin
// Code to execute if the condition is false
end;উদাহরণ:
program IfElseExample;
var
age: Integer;
begin
age := 20;
if age >= 18 then
writeln('You are an adult.')
else
writeln('You are a minor.');
end.২. Case Statement
case স্টেটমেন্টটি একাধিক শর্ত পরীক্ষা করার জন্য ব্যবহৃত হয়। এটি একটি নির্দিষ্ট মানের সাথে মিলে যাওয়ার ভিত্তিতে কোডের বিভিন্ন ব্লক চালাতে সাহায্য করে।
Syntax:
case expression of
value1: begin
// Code block 1
end;
value2: begin
// Code block 2
end;
else
begin
// Default code block
end;
end;উদাহরণ:
program CaseExample;
var
day: Integer;
begin
day := 3;
case day of
1: writeln('Monday');
2: writeln('Tuesday');
3: writeln('Wednesday');
4: writeln('Thursday');
5: writeln('Friday');
6: writeln('Saturday');
7: writeln('Sunday');
else
writeln('Invalid day number');
end;
end.৩. For Loop
for লুপটি একটি নির্দিষ্ট সংখ্যক পুনরাবৃত্তির জন্য ব্যবহার হয়। এটি সাধারণত তখন ব্যবহৃত হয় যখন আপনি জানেন কতবার লুপটি চলবে।
Syntax:
for variable := start_value to end_value do
begin
// Code to execute for each iteration
end;উদাহরণ:
program ForLoopExample;
var
i: Integer;
begin
for i := 1 to 5 do
writeln('Iteration ', i);
end.৪. While Loop
while লুপটি একটি শর্তের ভিত্তিতে চলতে থাকে যতক্ষণ না শর্তটি মিথ্যা হয়। এটি সাধারণত শর্তটি সত্য হওয়ার পর্যন্ত চলতে থাকে।
Syntax:
while condition do
begin
// Code to execute while the condition is true
end;উদাহরণ:
program WhileLoopExample;
var
i: Integer;
begin
i := 1;
while i <= 5 do
begin
writeln('Iteration ', i);
i := i + 1;
end;
end.৫. Repeat-Until Loop
repeat-until লুপটি while লুপের মতো, তবে এর মধ্যে শর্তটি কোড ব্লকের শেষে থাকে। অর্থাৎ, কোড ব্লকটি অন্তত একবার চলবে, তারপর শর্তটি চেক হবে।
Syntax:
repeat
// Code to execute
until condition;উদাহরণ:
program RepeatUntilExample;
var
i: Integer;
begin
i := 1;
repeat
writeln('Iteration ', i);
i := i + 1;
until i > 5;
end.৬. Goto Statement
goto স্টেটমেন্টটি প্রোগ্রামের মধ্যে যেকোনো স্থানে যাওয়ার জন্য ব্যবহার করা হয়। এটি কোডের শাখা তৈরি করে, তবে এর ব্যবহার কমানো উচিত কারণ এটি কোডের পাঠযোগ্যতা এবং রক্ষণাবেক্ষণকে প্রভাবিত করতে পারে।
Syntax:
goto label;
...
label:
// Code to execute when goto is calledউদাহরণ:
program GotoExample;
begin
writeln('Before Goto');
goto Skip; // Jumps to the Skip label
writeln('This will be skipped');
Skip:
writeln('After Goto');
end.সারাংশ
প্যাসক্যাল প্রোগ্রামিং ভাষায় নিয়ন্ত্রণ প্রবাহ স্টেটমেন্টগুলি কোডের কার্যক্রম নিয়ন্ত্রণ করতে গুরুত্বপূর্ণ ভূমিকা পালন করে। if, case, for, while, repeat-until, এবং goto হল প্রধান নিয়ন্ত্রণ প্রবাহ স্টেটমেন্ট। এই স্টেটমেন্টগুলির মাধ্যমে কোডের শর্তাধীন কার্যক্রম এবং পুনরাবৃত্তি পরিচালনা করা হয়, যা প্রোগ্রামিংয়ে কার্যকারিতা এবং নমনীয়তা যোগ করে।
প্যাসক্যাল প্রোগ্রামিং ভাষায় if, else, এবং nested if স্টেটমেন্টগুলি নিয়ন্ত্রণ কাঠামো হিসেবে ব্যবহৃত হয় যা নির্দিষ্ট শর্তের ভিত্তিতে কোডের বিভিন্ন অংশ কার্যকর করতে সাহায্য করে। এই স্টেটমেন্টগুলি কোডে শর্তাধীন লজিকের সাথে কাজ করে এবং সিদ্ধান্ত নেওয়ার প্রক্রিয়াকে সহজ করে তোলে।
১. if স্টেটমেন্ট
if স্টেটমেন্ট একটি নির্দিষ্ট শর্তের ভিত্তিতে কোডের অংশটি কার্যকর করবে যদি শর্তটি সত্য হয়।
সিনট্যাক্স:
if condition then
begin
// কোড যা শর্তটি সত্য হলে কার্যকর হবে
end;উদাহরণ:
program IfExample;
begin
if 5 > 3 then
writeln('5 is greater than 3');
end.এই প্রোগ্রামে, শর্তটি 5 > 3 সত্য, তাই আউটপুট হবে:
5 is greater than 3২. else স্টেটমেন্ট
else স্টেটমেন্টটি if এর সাথে ব্যবহৃত হয়। এটি তখন কার্যকর হয় যখন if স্টেটমেন্টের শর্তটি মিথ্যা হয়।
সিনট্যাক্স:
if condition then
begin
// কোড যা শর্তটি সত্য হলে কার্যকর হবে
end
else
begin
// কোড যা শর্তটি মিথ্যা হলে কার্যকর হবে
end;উদাহরণ:
program ElseExample;
begin
if 3 > 5 then
writeln('3 is greater than 5')
else
writeln('3 is not greater than 5');
end.এই প্রোগ্রামে, শর্তটি 3 > 5 মিথ্যা, তাই আউটপুট হবে:
3 is not greater than 5৩. Nested if স্টেটমেন্ট
Nested if হল একটি if স্টেটমেন্টের মধ্যে অন্য একটি if স্টেটমেন্ট ব্যবহৃত হওয়া। এটি তখন ব্যবহার করা হয় যখন আপনাকে একাধিক শর্ত যাচাই করতে হয় এবং সেক্ষেত্রে শর্তের মধ্যে শর্ত থাকতে পারে।
সিনট্যাক্স:
if condition1 then
begin
if condition2 then
begin
// কোড যা condition1 এবং condition2 উভয় শর্তেই সত্য হলে কার্যকর হবে
end;
end;উদাহরণ:
program NestedIfExample;
begin
if 5 > 3 then
begin
if 8 > 4 then
writeln('Both conditions are true');
end;
end.এই প্রোগ্রামে, প্রথম শর্ত 5 > 3 সত্য এবং দ্বিতীয় শর্ত 8 > 4ও সত্য। তাই আউটপুট হবে:
Both conditions are trueelse সহ Nested if:
এছাড়াও else সহ nested if ব্যবহার করা সম্ভব। এটি তখন ব্যবহৃত হয় যখন একটি শর্তের জন্য বিভিন্ন বিকল্পের মধ্যে নির্বাচন করতে হয়।
উদাহরণ:
program NestedIfElseExample;
begin
if 10 > 5 then
begin
if 3 > 7 then
writeln('Condition 1 and Condition 2 are both true')
else
writeln('Condition 1 is true, but Condition 2 is false');
end
else
writeln('Condition 1 is false');
end.এই প্রোগ্রামে, প্রথম শর্ত 10 > 5 সত্য, কিন্তু দ্বিতীয় শর্ত 3 > 7 মিথ্যা, তাই আউটপুট হবে:
Condition 1 is true, but Condition 2 is falseসারাংশ
ifস্টেটমেন্ট: একটি শর্ত সত্য হলে কোড চালানো হয়।elseস্টেটমেন্ট:ifশর্তটি মিথ্যা হলে কোড চালানো হয়।Nested if: একটিifস্টেটমেন্টের মধ্যে অন্য একটিifস্টেটমেন্ট ব্যবহার করা হয়, যা বিভিন্ন শর্তের ভিত্তিতে কোড কার্যকর করে।
এই স্টেটমেন্টগুলি প্যাসক্যাল প্রোগ্রামিং ভাষায় শর্ত অনুযায়ী লজিক তৈরি করতে ব্যবহৃত হয়।
প্যাসক্যাল ভাষায় case স্টেটমেন্ট একটি নিয়ন্ত্রণ কাঠামো যা একাধিক শর্ত যাচাই করতে ব্যবহার হয়। এটি if-else স্টেটমেন্টের বিকল্প হিসেবে কাজ করে, যেখানে একাধিক সম্ভাব্য মানের মধ্যে থেকে একটি নির্ধারণ করা হয়। case স্টেটমেন্টের সাহায্যে কোডটি আরও পরিষ্কার এবং সহজে পড়তে সক্ষম হয়।
case স্টেটমেন্টের গঠন
case expression of
value1:
begin
// code to execute if expression = value1
end;
value2:
begin
// code to execute if expression = value2
end;
value3:
begin
// code to execute if expression = value3
end;
else
begin
// code to execute if expression doesn't match any of the above values
end;
end;এখানে:
- expression: এটি এমন একটি মান হতে হবে যা একটি নির্দিষ্ট টাইপের হতে হবে (যেমন integer, char, etc.)।
- value1, value2, value3: এগুলি হল সেই সম্ভাব্য মান যা expression এর সঙ্গে তুলনা করা হয়।
- else: এটি ঐ মানগুলির জন্য একটি ডিফল্ট অংশ, যখন expression কোন value এর সাথে মেলে না।
উদাহরণ: case স্টেটমেন্টের ব্যবহার
১. একটি সাধারণ উদাহরণ
ধরা যাক, আমাদের একটি ভেরিয়েবল রয়েছে যা দিনের সংখ্যা নির্দেশ করে (1 থেকে 7), এবং আমরা সেই অনুযায়ী সপ্তাহের দিনের নাম দেখতে চাই। এর জন্য case স্টেটমেন্ট ব্যবহার করা যেতে পারে:
program Weekday;
var
day: integer;
begin
writeln('Enter a number (1-7) to get the corresponding weekday:');
readln(day);
case day of
1: writeln('Sunday');
2: writeln('Monday');
3: writeln('Tuesday');
4: writeln('Wednesday');
5: writeln('Thursday');
6: writeln('Friday');
7: writeln('Saturday');
else
writeln('Invalid day number');
end;
end.এখানে, day ভেরিয়েবলটি ব্যবহারকারী থেকে ইনপুট নেয় এবং তারপর case স্টেটমেন্টটি সেই ইনপুট অনুযায়ী সপ্তাহের নাম প্রিন্ট করে। যদি ইনপুট ১ থেকে ৭ এর মধ্যে না হয়, তাহলে "Invalid day number" মেসেজ প্রদর্শিত হবে।
২. একাধিক মানের জন্য case স্টেটমেন্ট
প্যাসক্যালের case স্টেটমেন্টে একাধিক মানের জন্য একই কোডও দেওয়া যেতে পারে। ধরুন, আমরা যদি দুইটি অথবা একাধিক দিনের জন্য একই কোড এক্সিকিউট করতে চাই:
program WeekdayWithMultipleValues;
var
day: integer;
begin
writeln('Enter a number (1-7) to get the corresponding weekday:');
readln(day);
case day of
1, 7: writeln('Weekend (Sunday or Saturday)');
2, 3, 4, 5, 6: writeln('Weekday');
else
writeln('Invalid day number');
end;
end.এখানে:
1, 7: এই দুটি মানের জন্য একই কোড ব্লক কার্যকর হবে (এগুলি সাপ্তাহিক ছুটির দিন হিসেবে চিহ্নিত করা হয়েছে)।2, 3, 4, 5, 6: এই মানগুলির জন্য আরেকটি কোড ব্লক থাকবে, যা সপ্তাহের সাধারণ দিন হিসেবে চিহ্নিত হবে।
case স্টেটমেন্টের সুবিধা
১. স্পষ্টতা: if-else এর তুলনায় case স্টেটমেন্ট কোডটিকে আরও পরিষ্কার এবং পড়তে সহজ করে তোলে, বিশেষত যখন একাধিক শর্ত থাকে।
২. কার্যকারিতা: এটি একাধিক শর্তের তুলনায় আরও দ্রুত কার্যকরী হতে পারে, কারণ case স্টেটমেন্ট একাধিক মানের তুলনা করার জন্য একটি কার্যকর পদ্ধতি ব্যবহার করে।
৩. ডিফল্ট মান: else ব্লকের মাধ্যমে আপনি একটি ডিফল্ট অ্যাকশন নির্ধারণ করতে পারেন, যা যদি কোনো মানের সাথে মেলে না, তখন কার্যকর হবে।
সারাংশ
প্যাসক্যালের case স্টেটমেন্টটি একাধিক সম্ভাব্য মানের মধ্যে থেকে একটি নির্বাচন করতে ব্যবহৃত হয়। এটি কোডটিকে সহজ, পরিষ্কার এবং দ্রুত কার্যকরী করতে সহায়তা করে, বিশেষত যখন একাধিক শর্তের পরীক্ষা করা হয়। if-else এর তুলনায় case স্টেটমেন্ট বেশি দক্ষ এবং পড়তে সহজ।
প্যাসক্যাল প্রোগ্রামিং ভাষায় লুপগুলি ব্যবহার করে নির্দিষ্ট কাজ পুনরায় করা যায় যতক্ষণ না কোন শর্ত পূর্ণ হয়। প্যাসক্যাল ভাষায় তিনটি প্রধান ধরনের লুপ আছে: For, While, এবং Repeat...Until। প্রত্যেকটি লুপের ভিন্ন ধরনের কার্যক্রম এবং ব্যবহারের ক্ষেত্রে পার্থক্য রয়েছে।
১. For লুপ
For লুপ একটি নির্দিষ্ট সংখ্যক সময় ধরে কোড চালানোর জন্য ব্যবহৃত হয়। এটি সাধারণত সংখ্যা বা কোন সিরিজের উপর পুনরাবৃত্তি করার জন্য ব্যবহার করা হয়। For লুপে একটি ইনডেক্স ভেরিয়েবল দেওয়া হয় এবং সেটি একটি নির্দিষ্ট পরিসীমার মধ্যে পরিবর্তিত হয়।
সিনট্যাক্স:
for variable := start_value to end_value do
begin
// কোড ব্লক
end;এখানে:
variable: লুপের মধ্যে ব্যবহৃত পরিবর্তনশীল (index variable)।start_value: লুপের প্রথম মান।end_value: লুপের শেষ মান।toনির্দেশকটি সাধারণত ব্যবহার করা হয়, তবে আপনিdowntoব্যবহার করে মান কমিয়ে (ডিক্রিমেন্ট) লুপও করতে পারেন।
উদাহরণ:
program ForLoopExample;
var
i: Integer;
begin
for i := 1 to 5 do
writeln('এই সংখ্যা: ', i);
end.এখানে, ১ থেকে ৫ পর্যন্ত সংখ্যাগুলি আউটপুট হবে।
২. While লুপ
While লুপ একটি শর্তের উপর ভিত্তি করে কোড চালায়। যদি শর্তটি সঠিক থাকে, তবে লুপটি চলতে থাকে। এটি শর্তটি সত্য হওয়ার আগ পর্যন্ত কোডের ব্লকটি চালাতে থাকে। While লুপ একটি প্রিপোস্ট কন্ডিশনাল লুপ, অর্থাৎ, লুপটি শুরুর আগে শর্তটি পরীক্ষা করা হয়।
সিনট্যাক্স:
while condition do
begin
// কোড ব্লক
end;এখানে:
condition: শর্ত যা লুপ চালানোর জন্য মূল্যায়ন করা হয়।
উদাহরণ:
program WhileLoopExample;
var
i: Integer;
begin
i := 1;
while i <= 5 do
begin
writeln('এই সংখ্যা: ', i);
i := i + 1; // ইনক্রিমেন্ট
end;
end.এখানে, i মান ৫ এর চেয়ে ছোট বা সমান হওয়া পর্যন্ত লুপ চলবে এবং প্রতি বার ইনক্রিমেন্ট হবে।
৩. Repeat...Until লুপ
Repeat...Until লুপ একটি পোস্ট কন্ডিশনাল লুপ, যার মানে হলো লুপের শরীরটি অন্তত একবার চলবে এবং তারপর শর্তটি পরীক্ষা করা হবে। অর্থাৎ, প্রথমে কোড এক্সিকিউট হয় এবং পরে শর্তটি যাচাই করা হয়।
সিনট্যাক্স:
repeat
// কোড ব্লক
until condition;এখানে:
condition: শর্ত যা যদি সত্য হয়, তবে লুপটি বন্ধ হয়ে যাবে।
উদাহরণ:
program RepeatUntilLoopExample;
var
i: Integer;
begin
i := 1;
repeat
writeln('এই সংখ্যা: ', i);
i := i + 1;
until i > 5;
end.এখানে, লুপটি ১ থেকে ৫ পর্যন্ত চলবে এবং শর্ত i > 5 হলে লুপটি শেষ হবে।
সারাংশ
- For লুপ: একটি নির্দিষ্ট সংখ্যক সময়ে কোড চালানোর জন্য ব্যবহার করা হয়। এটি সাধারণত সিরিজ বা সংখ্যার উপর পুনরাবৃত্তি করার জন্য আদর্শ।
- While লুপ: শর্ত সঠিক না হওয়া পর্যন্ত কোড চালানোর জন্য ব্যবহার করা হয়। এটি আগে শর্ত পরীক্ষা করে এবং শর্তটি সত্য হলে লুপ চালায়।
- Repeat...Until লুপ: শর্ত পরীক্ষা করার আগে কোডটি একবার চালায় এবং তারপর শর্তটি যাচাই করে। এটি সাধারণত তখন ব্যবহৃত হয় যখন আপনাকে কোডটি কমপক্ষে একবার চালাতে হবে।
এই তিনটি লুপের মধ্যে পার্থক্য ও উপযুক্ত ব্যবহার স্থান বোঝা গুরুত্বপূর্ণ, যা প্যাসক্যাল প্রোগ্রামিংয়ে কার্যকরভাবে কাজ করতে সহায়তা করে।
break এবং continue স্টেটমেন্টগুলি প্রোগ্রামিং লুপের মধ্যে ব্যবহৃত হয়, যেখানে লুপের ফ্লো নিয়ন্ত্রণ করতে সাহায্য করে। এগুলি সাধারণত for, while, এবং repeat লুপে ব্যবহৃত হয়। আসুন দেখি প্যাসক্যাল ভাষায় এগুলির ব্যবহার কিভাবে।
Break স্টেটমেন্ট
break স্টেটমেন্টটি লুপের execution ত্যাগ করে এবং প্রোগ্রামটি পরবর্তী নির্দেশে চলে যায়। এটি সাধারণত লুপের ভিতরে একটি নির্দিষ্ট শর্তে পৌঁছালে লুপ থামানোর জন্য ব্যবহৃত হয়।
Break স্টেটমেন্টের উদাহরণ:
ধরা যাক, আমরা একটি সংখ্যা খুঁজে বের করার জন্য একটি লুপ ব্যবহার করছি। যদি সংখ্যাটি পাওয়া যায়, তবে আমরা লুপটি থামিয়ে দেবো।
program BreakExample;
var
i: Integer;
begin
for i := 1 to 10 do
begin
if i = 5 then
break; { break স্টেটমেন্টটি লুপ থামাবে যখন i ৫ হবে }
writeln(i);
end;
end.এই প্রোগ্রামে, লুপটি 1 থেকে 10 পর্যন্ত চলবে, কিন্তু যখন i এর মান 5 হবে, তখন break স্টেটমেন্টটি কার্যকর হবে এবং লুপটি থেমে যাবে। আউটপুট হবে:
1
2
3
4Continue স্টেটমেন্ট
continue স্টেটমেন্টটি বর্তমানে চলমান লুপের একটি নির্দিষ্ট iteration (পদক্ষেপ) স্কিপ করে এবং পরবর্তী iteration এ চলে যায়। এটি লুপের শরীরের বাকী অংশ এক্সিকিউট না করে পরবর্তী চক্রে চলে যায়।
Continue স্টেটমেন্টের উদাহরণ:
ধরা যাক, আমরা এমন একটি লুপ ব্যবহার করছি, যেখানে আমরা 1 থেকে 10 পর্যন্ত সংখ্যাগুলি প্রিন্ট করতে চাই, তবে যদি সংখ্যা 5 হয়, তাহলে সেটি স্কিপ করতে হবে।
program ContinueExample;
var
i: Integer;
begin
for i := 1 to 10 do
begin
if i = 5 then
continue; { continue স্টেটমেন্টটি ৫ নম্বর সংখ্যাটি স্কিপ করবে }
writeln(i);
end;
end.এই প্রোগ্রামে, যখন i এর মান 5 হবে, তখন continue স্টেটমেন্টটি লুপের বাকী অংশ স্কিপ করবে এবং 5 কে প্রিন্ট করবে না। আউটপুট হবে:
1
2
3
4
6
7
8
9
10Break এবং Continue এর মধ্যে পার্থক্য
- Break: এটি পুরো লুপটিকে ত্যাগ করে এবং প্রোগ্রামটি লুপের বাইরে চলে যায়।
- Continue: এটি শুধুমাত্র বর্তমান iteration (পদক্ষেপ) স্কিপ করে এবং পরবর্তী iteration এ চলে যায়।
সারাংশ
break এবং continue স্টেটমেন্টগুলি প্যাসক্যাল প্রোগ্রামে লুপের ফ্লো নিয়ন্ত্রণের জন্য ব্যবহার করা হয়। break ব্যবহার করলে পুরো লুপটি বন্ধ হয়ে যাবে, আর continue ব্যবহার করলে শুধু বর্তমান iteration স্কিপ হয়ে যাবে। এগুলি কোডের কার্যকারিতা বৃদ্ধি এবং উন্নত নিয়ন্ত্রণ প্রদান করতে সাহায্য করে।
Read more