তথ্য ও যোগাযোগ প্রযুক্তি • প্রোগ্রামিংয়ের মাধ্যমে সমস্যার সমাধান
তথ্য ও যোগাযোগ প্রযুক্তি প্রশ্ন
দশম শ্রেণির শিক্ষার্থী রিনা পাইথনে নিচের প্রোগ্রামটি লিখেছে।
total = 0
for n in range(1, 8):
if n % 2 == 0:
total = total + n
print(total)
সে এখন একই ধরনের কাজ ১ থেকে ১০০ পর্যন্ত সংখ্যার জন্য করতে চায়।
- ক)(1)
কাউন্টার ভ্যারিয়েবল কাকে বলে?
- খ)(2)
range(1, 8) ব্যবহার করলে ৮ লুপে অন্তর্ভুক্ত হয় না কেন? ব্যাখ্যা করো।
- গ)(3)
উদ্দীপকের প্রোগ্রামটি রান করলে আউটপুট কত হবে? ধাপে ধাপে দেখাও।
- ঘ)(4)
রিনা ১ থেকে ১০০ পর্যন্ত বিজোড় সংখ্যাগুলোর যোগফল নির্ণয় করতে চায়। উদ্দীপকের প্রোগ্রামে কী কী পরিবর্তন করতে হবে তা উল্লেখ করে পরিবর্তিত প্রোগ্রামটি লেখো এবং তার ফলাফল বিশ্লেষণ করো।
উত্তর ও ব্যাখ্যা
- ক)
AI-তৈরি নমুনা উত্তর for লুপে যে ভ্যারিয়েবল ব্যবহার করে লুপের আবর্তন সংখ্যা গণনা করা হয়, তাকে কাউন্টার ভ্যারিয়েবল বলে।
- খ)
AI-তৈরি নমুনা উত্তর পাইথনে range(শুরু, শেষ) এর শুরুর মান লুপে অন্তর্ভুক্ত হয়, কিন্তু শেষের মান অন্তর্ভুক্ত হয় না। অর্থাৎ range(1, 8) কাউন্টার ভ্যারিয়েবলকে ১ থেকে শুরু করে ৭ পর্যন্ত মান দেয়। কাউন্টার ৮-এ পৌঁছালে লুপ আর চলে না। তাই ৮ লুপের আবর্তনে অংশ নেয় না। ৮ পর্যন্ত নিতে চাইলে range(1, 9) লিখতে হতো।
- গ)
AI-তৈরি নমুনা উত্তর শুরুতে total = 0। লুপে n এর মান ১ থেকে ৭ পর্যন্ত যায়। if শর্ত n % 2 == 0 অর্থাৎ n জোড় হলেই total এর সাথে n যোগ হবে। n = 1: শর্ত মিথ্যা, total = 0। n = 2: শর্ত সত্য, total = 0 + 2 = 2। n = 3: মিথ্যা, total = 2। n = 4: সত্য, total = 2 + 4 = 6। n = 5: মিথ্যা, total = 6। n = 6: সত্য, total = 6 + 6 = 12। n = 7: মিথ্যা, total = 12। লুপ শেষে print(total) এর মাধ্যমে আউটপুট হবে 12। অর্থাৎ প্রোগ্রামটি ১ থেকে ৭ এর মধ্যকার জোড় সংখ্যাগুলোর (২, ৪, ৬) যোগফল নির্ণয় করে।
- ঘ)
AI-তৈরি নমুনা উত্তর উদ্দীপকের প্রোগ্রামে দুটি পরিবর্তন করতে হবে। ১. ১০০ সহ সংখ্যাটি অন্তর্ভুক্ত করার জন্য range(1, 8) এর বদলে range(1, 101) লিখতে হবে, কারণ শেষের মান লুপে ধরা হয় না। ২. জোড়ের পরিবর্তে বিজোড় সংখ্যা বাছাই করতে শর্তটি n % 2 != 0 করতে হবে, কারণ বিজোড় সংখ্যাকে ২ দিয়ে ভাগ করলে ভাগশেষ শূন্য হয় না। পরিবর্তিত প্রোগ্রাম:
total = 0 for n in range(1, 101): if n % 2 != 0: total = total + n print(total)ফলাফল বিশ্লেষণ: লুপটি ১ থেকে ১০০ পর্যন্ত মোট ১০০ বার চলবে, কিন্তু শর্ত সত্য হওয়ার কারণে total এর সাথে কেবল ১, ৩, ৫, ..., ৯৯ যোগ হবে। এগুলো ৫০টি বিজোড় সংখ্যা। যোগফল = ১ + ৩ + ৫ + ... + ৯৯ = ৫০ × ৫০ = ২৫০০ (প্রথম n সংখ্যক বিজোড় সংখ্যার যোগফল n²)। সুতরাং প্রোগ্রামের আউটপুট হবে 2500।
আরও প্রশ্ন অনুশীলন করতে অ্যাপে যাও