তথ্য ও যোগাযোগ প্রযুক্তি • প্রোগ্রামিং ভাষা
তথ্য ও যোগাযোগ প্রযুক্তি প্রশ্ন
রিনা একটি মাটির ব্যাংকে প্রতিদিন কিছু কয়েন জমায়। প্রথম দিন সে ৫ টাকা জমায়, দ্বিতীয় দিন ১০ টাকা, তৃতীয় দিন ১৫ টাকা, এভাবে প্রতিদিন আগের দিনের চেয়ে ৫ টাকা বেশি জমায়। হিসাব রাখার জন্য সে নিচের প্রোগ্রামটি লিখেছে।
#include <stdio.h>
int main()
{
int n, sum;
sum = 0;
n = 5;
while (n <= 50) {
sum = sum + n;
n = n + 5;
}
printf("Total: %d", sum);
return 0;
}
- ক)(1)
লুপ স্টেটমেন্ট কী?
- খ)(2)
উদ্দীপকের প্রোগ্রামে sum = 0; স্টেটমেন্টটি লেখা হয়েছে কেন? ব্যাখ্যা কর।
- গ)(3)
উদ্দীপকের প্রোগ্রামটির আউটপুট নির্ণয় কর। লুপটি কতবার চলবে তাও উল্লেখ কর।
- ঘ)(4)
উদ্দীপকের প্রোগ্রামটি for লুপ ও do-while লুপ ব্যবহার করে লেখ। n এর প্রারম্ভিক মান 60 হলে while ও do-while লুপের আউটপুটে কী পার্থক্য হবে, তা বিশ্লেষণ কর।
উত্তর ও ব্যাখ্যা
- ক)
AI-তৈরি নমুনা উত্তর একই কাজ বারবার করার জন্য প্রোগ্রামিং ভাষায় যে স্টেটমেন্ট ব্যবহার করা হয়, তাকে লুপ স্টেটমেন্ট বলে। সি ভাষায় while, do-while ও for এই তিন ধরনের লুপ আছে।
- খ)
AI-তৈরি নমুনা উত্তর কোনো ভ্যারিয়েবল ডিক্লেয়ার করার সময় তাতে কোনো নির্দিষ্ট মান দেওয়া থাকে না, সেখানে যেকোনো অনির্দিষ্ট গারবেজ মান থাকতে পারে। উদ্দীপকে sum = sum + n স্টেটমেন্টে sum এর আগের মান n এর সাথে যোগ হয়। sum এর শুরুতে 0 না থাকলে গারবেজ মানের সাথে যোগ হয়ে ভুল ফল আসত। sum = 0 দেওয়ায় প্রথমবার 0 + 5 = 5 হয় এবং সঠিকভাবে যোগফল জমতে থাকে। তাই sum এর প্রারম্ভিক মান 0 দেওয়া আবশ্যক।
- গ)
AI-তৈরি নমুনা উত্তর n এর মান শুরুতে 5 এবং প্রতিবার 5 করে বাড়ছে। শর্ত n <= 50। অতএব n এর মান হবে 5, 10, 15, 20, 25, 30, 35, 40, 45, 50। n = 55 হলে শর্ত মিথ্যা হবে এবং লুপ থেকে বের হবে। সুতরাং লুপটি ১০ বার চলবে।
sum = 5 + 10 + 15 + 20 + 25 + 30 + 35 + 40 + 45 + 50 = 5 × (1 + 2 + ... + 10) = 5 × 55 = 275।
অতএব আউটপুট হবে: Total: 275 - ঘ)
AI-তৈরি নমুনা উত্তর for লুপ ব্যবহার করে:
#include <stdio.h> int main() { int n, sum; sum = 0; for (n = 5; n <= 50; n = n + 5) { sum = sum + n; } printf("Total: %d", sum); return 0; }do-while লুপ ব্যবহার করে:
#include <stdio.h> int main() { int n, sum; sum = 0; n = 5; do { sum = sum + n; n = n + 5; } while (n <= 50); printf("Total: %d", sum); return 0; }দুটি প্রোগ্রামেই আউটপুট Total: 275।
পার্থক্য বিশ্লেষণ (n = 60): while লুপ শুরুতেই শর্ত পরীক্ষা করে। n <= 50 অর্থাৎ 60 <= 50 মিথ্যা হওয়ায় লুপের ভেতরের কাজ একবারও হবে না। sum = 0 থেকে যাবে এবং আউটপুট হবে Total: 0। অপরদিকে do-while লুপে শর্ত লুপের কাজ হওয়ার পর পরীক্ষা করা হয়। তাই শর্ত মিথ্যা হলেও ব্লকটি একবার এক্সিকিউট হবে। sum = 0 + 60 = 60 হবে, n হবে 65, তখন শর্ত মিথ্যা হয়ে লুপ শেষ হবে। আউটপুট হবে Total: 60।
অতএব while একটি এন্ট্রি কন্ট্রোলড লুপ, আর do-while একটি এক্সিট কন্ট্রোলড লুপ, যা কমপক্ষে একবার চলবেই। শর্ত শুরুতেই মিথ্যা হলে দুটির আউটপুট আলাদা হয়, নইলে একই হয়।
আরও প্রশ্ন অনুশীলন করতে অ্যাপে যাও