for loop (ফর লুপ)


Q1.  Looping (লুপিং) কাকে বলে?

উত্তরঃ C তে কোনো ফাংশন বা স্টেটমেন্ট কে একাধিক বার রান করানোর প্রক্রিয়াকে Looping (লুপিং) বলে।

Q2.  লুপ কন্ট্রোল স্টেটমেন্ট (Loop Control Statement) কাকে বলে?

উত্তরঃ সি প্রোগ্রামে স্টেটমেন্টসমূহ কিংবা ফাংশনসমূহ সাধারণত স্বয়ংক্রিয়ভাবে ও পর্যায়ক্রমে সম্পাদিত (Execute বা কার্যকর) হয়। কিন্তু কখনো কখনো এক বা একাধিক স্টেটমেন্টস বার বার সম্পাদিত করার প্রয়োজন হয়।

যে সকল কন্ট্রোল স্টেটমেন্টের সাহায্যে এক বা একাধিক ফাংশন বা স্টেটমেন্টকে বার বার সম্পাদিত কর হয় তাদেরকে লুপ কন্ট্রোল স্টেটমেন্ট বলে।

Q3. সি ভাষায় উল্লেখযোগ্য কয়েকটি লুপ কন্ট্রোল স্টেটমেন্টের নাম লিখ।

উত্তরঃ সি ভাষায় উল্লেখযোগ্য কয়েকটি লুপ কন্ট্রোল স্টেটমেন্ট হচ্ছে-

for লুপ স্টেটমেন্ট

while লুপ স্টেটমেন্ট

do…while লুপ স্টেটমেন্ট

continue লুপ স্টেটমেন্ট

goto লুপ স্টেটমেন্ট

Q4. for লুপের গঠন (সিনট্যাক্স) দেখাও এবং উদাহরণসহ ব্যাখ্যা কর।

সিনট্যাক্সটিকে বোঝানোর জন্য বাংলায় এভাবে লেখা যায় (পরীক্ষায় এভাবে লেখা যাবে না)-

একটি উদাহরণের সাহয্যে উপরের সিনট্যাক্সটিকে ব্যাখ্যা করা যাক-

for (i=1; i<5; i++)
{ 
 printf("Physics Plus ICT \n");
}

ব্যাখ্যাঃ

(১) এখানে i একটি চলক যাকে counter চলক বলা হয়। কারণ এটি লুপের ধাপসমূহ নিয়ন্ত্রণ করে থাকে।

(২) প্রতিটি for লুপ এক বা একাধিক ফাংশন বা স্টেটমেন্ট নিয়ে কাজ করে। এখানে সেই ফাংশনটি হল printf()। তার মানে হল এই for লুপটি printf() ফাংশনটিকে একাধিক বার কার্যকর করবে।

(৩) printf() ফাংশনটি কতবার কার্যকর হবে তা নির্ভর করে i চলকের বিভিন্ন মানের উপর। এখানে i চলকের বিভিন্ন মান গুলো হলঃ 1, 2, 3, 4 মোট চারটি। উল্লেখিত প্রোগ্রামের for লুপের মোট চারটি ধাপ থাকবে এবং এই চারটি ধাপের প্রতিটিতে printf() ফাংশনটি কার্যকর হবে। অর্থাৎ printf() ফাংশনটি মোট চারবার কার্যকর হবে।

(৪) স্বাভাবিকভাবেই একটি প্রশ্ন এসে যায়, i চলকের মান এক এক করে বৃদ্ধি পাবে কেন? এর উত্তর হল i++ এর কারণে। for লুপের একটি গুরুত্বপূর্ণ অংশ হল increment বা decrement। i++ এর কারণে i চলকের মান এক এক করে বৃদ্ধি পাবে।

(৫) i এর মান 4 এ গিয়ে শেষ হবে কেন? কারণ for লুপের ভিতরে বিদ্যমান কন্ডিশন i<5; এর কারণে। তার মানে for (i=1; i<5; i++) এর অর্থ কী দাড়াল? অর্থ দাড়াল যে, i এর মান 1 থেকে শুরু হবে, i এর মান এক এক করে বৃদ্ধি পাবে এবং i এর মান 4 এ শেষ হবে। i এর মানে বিভিন্ন মানের সাথে for লুপের কী সম্পর্ক? এই প্রশ্নের উত্তর জানার জন্য for লুপটি পুনরায় দেখে নিয়ে নিচের প্যারাটি পড়ে নেয়া যাক।

for (i=1; i<5; i++)
{ 
 printf("Physics Plus ICT \n");
}

উপরের for লুপের iteration steps (ধাপসমূহ) নিচে উল্লেখ করা হল-

ধাপ-১: ধাপ-১ এর শুরুতে i এর মান 1 হবে অর্থাৎ i=1 এবার কম্পাইলার i<5; কে এভাবে ইন্টারপ্রিট করবে:

i কী 5 এর চেয়ে ছোট?

বা 1 কী 5 এর চেয়ে ছোট?

উত্তরঃ সত্য।

উত্তর সত্য বলে কম্পাইলার for সংশ্লিষ্ট statement অর্থাৎ printf(“Physics Plus ICT”); কে কার্যকর করবে। ফলে আউটপুটে Physics Plus ICT লেখাটি একবার প্রদর্শিত হবে। এরপর i++ এর কারণে i এর মান 1 থেকে বৃদ্ধি পেয়ে 2 হবে। এবং ধাপ-১ এর সমাপ্তি ঘটবে।

ধাপ-২: ধাপ-২ এর শুরুতে i এর মান 2 হবে অর্থাৎ i=2 এবার কম্পাইলার i<5; কে এভাবে ইন্টারপ্রিট করবে:

i কী 5 এর চেয়ে ছোট?

বা 2 কী 5 এর চেয়ে ছোট?

উত্তরঃ সত্য।

উত্তর সত্য বলে কম্পাইলার for সংশ্লিষ্ট statement অর্থাৎ printf(“Physics Plus ICT”); কে কার্যকর করবে। ফলে আউটপুটে Physics Plus ICT লেখাটি একবার প্রদর্শিত হবে। এরপর i++ এর কারণে i এর মান 2 থেকে বৃদ্ধি পেয়ে 3 হবে। এবং ধাপ-২ এর সমাপ্তি ঘটবে।

ধাপ-৩: ধাপ-৩ এর শুরুতে i এর মান 3 হবে অর্থাৎ i=3 এবার কম্পাইলার i<5; কে এভাবে ইন্টারপ্রিট করবে:

i কী 5 এর চেয়ে ছোট?

বা 3 কী 5 এর চেয়ে ছোট?

উত্তরঃ সত্য।

উত্তর সত্য বলে কম্পাইলার for সংশ্লিষ্ট statement অর্থাৎ printf(“Physics Plus ICT”); কে কার্যকর করবে। ফলে আউটপুটে Physics Plus ICT লেখাটি একবার প্রদর্শিত হবে। এরপর i++ এর কারণে i এর মান 3 থেকে বৃদ্ধি পেয়ে 4 হবে। এবং ধাপ-৩ এর সমাপ্তি ঘটবে।

ধাপ-৪: ধাপ-৪ এর শুরুতে i এর মান 4 হবে অর্থাৎ i=4 এবার কম্পাইলার i<5; কে এভাবে ইন্টারপ্রিট করবে:

i কী 5 এর চেয়ে ছোট?

বা 4 কী 5 এর চেয়ে ছোট?

উত্তরঃ সত্য।

উত্তর সত্য বলে কম্পাইলার for সংশ্লিষ্ট statement অর্থাৎ printf(“Physics Plus ICT”); কে কার্যকর করবে। ফলে আউটপুটে Physics Plus ICT লেখাটি একবার প্রদর্শিত হবে। এরপর i++ এর কারণে i এর মান 4 থেকে বৃদ্ধি পেয়ে 5 হবে। এবং ধাপ-৪ এর সমাপ্তি ঘটবে।

ধাপ-৫: ধাপ-৫ এর শুরুতে i এর মান 5 হবে অর্থাৎ i=5 এবার কম্পাইলার i<5; কে এভাবে ইন্টারপ্রিট করবে:

i কী 5 এর চেয়ে ছোট?

বা 5 কী 5 এর চেয়ে ছোট?

উত্তরঃ মিথ্যা।

উত্তর মিথ্যা বলে কম্পাইলার for লুপের পরিসমাপ্তি ঘটাবে। লুপ থেকে বের হয়ে কম্পাইলার for লুপের পরের অংশে চলে যাবে। 

পাঠকের কাছে আমার প্রশ্ন হল: আউটপুটে কতবার Physics Plus ICT লেখাটি প্রদর্শিত হবে? অবশ্যই চারবার।

এবার নিশ্চয়ই বুঝতে বাকি নেই, i এর বিভিন্ন মানের সাথে for লুপের কী সম্পর্ক। প্রকৃতপক্ষে i এর বিভিন্ন মান লুপের ধাপসমূহকে কন্ট্রোল করছে।

যদি প্রশ্ন করা হয়: Physics Plus ICT কতবার প্রিন্ট করা হবে তা যদি ইজারের উপর ছেড়ে দেয়া হয় তাহলে কী সম্ভব? উত্তর হবে অবশ্যই সম্ভব। তাহলে নিচের প্রশ্নটি দেখা নেয়ে যাক-

Q5. নিচের for লুপটি Physics Plus ICT লেখাটি কতবার প্রদর্শন করবে?

for (i=1; i<=n; i++)
{ 
 printf("Physics Plus ICT \n");
}

উত্তরঃ n সংখ্যকবার। কারণ i চলকের সর্বনিম্ন এবং সর্বোচ্চ মান যথাক্রমে 1 এবং n। শুধুতাই নয় i এর মান এক এক করে বৃদ্ধি পাবে। ফলে for লুপের ধাপসংখ্যা হবে n সংখ্যক। এই কারণে Physics Plus ICT লেখাটি n সংখ্যকবার প্রদর্শিত হবে।

Q6. for লুপ ব্যবহার করে Physics Plus ICT লেখাটি n সংখ্যকবার বিভিন্ন লাইনে প্রদর্শন করার C program লিখ? n এর মান কিবোর্ড থেকে গ্রহণ কর।

#include<stdio.h>
#include<conio.h>
int main()
{
 int i,n;
 printf("Enter any integer number: \n");
 scanf("%d", &n); 
 for(i=1; i<=n; i++)
  printf("Physics Plus ICT \n");
}

ব্যাখ্যাঃ

(১) int i,n; এর মাধ্যমে i, n নামের integer টাইপের দুটি চলক ঘোষণা করা হয়েছে।

(২) printf(“Enter any integer number: \n”); এই স্টেটমেন্টের মাধ্যমে আউটপুটে Enter any integer number: লেখা দেখা যাবে। Enter any integer number: লেখাটি ইউজারের জন্য একটি নির্দেশনা। ইউজার কি বোর্ডের মাধ্যমে একটি সংখ্যা ইনপুট দিবে।  

(৩) scanf(“%d”, &n); এর মাধ্যমে ইউজার কর্তৃক প্রদত্ত সংখ্যাটি n এর মেমরি এড্রেসে সংরক্ষিত হবে। ধরা যাক, ইউজার কিবোর্ড থেকে 100 ইনপুট দিল। ফলে n=100 হবে।

(৪) for(i=1; i<=n; i++) এর মাধ্যমে আউটপুটে Physics Plus ICT লেখাটি 100 বার প্রদর্শিত হবে। for লুপের কার্যক্রম নিচে বর্ণনা করা হলঃ

উপরের for লুপের iteration steps (ধাপসমূহ) নিচে উল্লেখ করা হল-

ধাপ-১: ধাপ-১ এর শুরুতে i এর মান 1 হবে অর্থাৎ i=1 এবার কম্পাইলার i<=n; কে এভাবে ইন্টারপ্রিট করবে:

i কী n এর চেয়ে ছোট অথবা সমান?

বা 1 কী 100 এর চেয়ে ছোট অথবা সমান?

উত্তরঃ সত্য।

উত্তর সত্য বলে কম্পাইলার for সংশ্লিষ্ট statement অর্থাৎ printf(“Physics Plus ICT”); কে কার্যকর করবে। ফলে আউটপুটে Physics Plus ICT লেখাটি একবার প্রদর্শিত হবে। এরপর i++ এর কারণে i এর মান 1 থেকে বৃদ্ধি পেয়ে 2 হবে। এবং ধাপ-১ এর সমাপ্তি ঘটবে।

ধাপ-২: ধাপ-২ এর শুরুতে i এর মান 2 হবে অর্থাৎ i=2 এবার কম্পাইলার i<=n; কে এভাবে ইন্টারপ্রিট করবে:

i কী n এর চেয়ে ছোট অথবা সমান?

বা 2 কী 100 এর চেয়ে ছোট অথবা সমান?

উত্তরঃ সত্য।

উত্তর সত্য বলে কম্পাইলার for সংশ্লিষ্ট statement অর্থাৎ printf(“Physics Plus ICT”); কে কার্যকর করবে। ফলে আউটপুটে Physics Plus ICT লেখাটি একবার প্রদর্শিত হবে। এরপর i++ এর কারণে i এর মান 2 থেকে বৃদ্ধি পেয়ে 3 হবে। এবং ধাপ-২ এর সমাপ্তি ঘটবে।

… (ধাপ চলমান)

… (ধাপ চলমান)

ধাপ-100: ধাপ-100 এর শুরুতে i এর মান 100 হবে অর্থাৎ i=100 এবার কম্পাইলার i<=n; কে এভাবে ইন্টারপ্রিট করবে:

i কী 100 এর চেয়ে ছোট অথবা সমান?

বা 100 কী 100 এর চেয়ে ছোট অথবা সমান?

উত্তরঃ সত্য।

উত্তর সত্য বলে কম্পাইলার for সংশ্লিষ্ট statement অর্থাৎ printf(“Physics Plus ICT”); কে কার্যকর করবে। ফলে আউটপুটে Physics Plus ICT লেখাটি একবার প্রদর্শিত হবে। এরপর i++ এর কারণে i এর মান 100 থেকে বৃদ্ধি পেয়ে 101 হবে। এবং ধাপ-100 এর সমাপ্তি ঘটবে।

ধাপ-101: ধাপ-101 এর শুরুতে i এর মান 101 হবে অর্থাৎ i=101 এবার কম্পাইলার i<=n; কে এভাবে ইন্টারপ্রিট করবে:

i কী 100 এর চেয়ে ছোট অথবা সমান?

বা 101 কী 100 এর চেয়ে ছোট অথবা সমান?

উত্তরঃ মিথ্যা।

উত্তর মিথ্যা বলে কম্পাইলার for লুপের পরিসমাপ্তি ঘটাবে। লুপ থেকে বের হয়ে কম্পাইলার for লুপের পরের অংশে চলে যাবে। ফলাফল স্বরূপ আউটপুটে Physics Plus ICT লেখাটি একশতবার প্রদর্শিত হবে।

Leave a Reply

Your email address will not be published.