তথ্য ও যোগাযোগ প্রযুক্তি • প্রোগ্রামিংয়ের মাধ্যমে সমস্যার সমাধান

তথ্য ও যোগাযোগ প্রযুক্তি প্রশ্ন

তানভীর একটি কম্পিউটার গেমে কাউন্টডাউন দেখানোর জন্য নিচের প্রোগ্রামটি লিখেছে।

count = 10
while count > 0:
    print(count)
    count = count - 3

তার বন্ধু রাকিব একই কাজ for লুপ দিয়ে করার প্রস্তাব দিয়েছে।

  1. ক)

    while লুপে শর্ত কখন পরীক্ষা করা হয়?

    (1)
  2. খ)

    while লুপ কখন বন্ধ হয়ে যায়? ব্যাখ্যা করো।

    (2)
  3. গ)

    উদ্দীপকের প্রোগ্রাম থেকে count = count - 3 লাইনটি মুছে দিলে প্রোগ্রামে কী ঘটবে? ব্যাখ্যা করো।

    (3)
  4. ঘ)

    রাকিবের প্রস্তাব অনুযায়ী উদ্দীপকের কাজটি for লুপ দিয়ে লেখো। একই আউটপুট পেতে কীভাবে range এর মান নির্ধারণ করতে হবে তা বিশ্লেষণ করো এবং এ ক্ষেত্রে কোন লুপ বেশি উপযোগী তার যুক্তি দাও।

    (4)

উত্তর ও ব্যাখ্যা

  1. ক)

    AI-তৈরি নমুনা উত্তর while লুপে শর্ত লুপের শুরুতেই, অর্থাৎ বডি সম্পাদনের আগে পরীক্ষা করা হয়।

  2. খ)

    AI-তৈরি নমুনা উত্তর while লুপের শুরুতে প্রদত্ত শর্ত পরীক্ষা করা হয়। শর্ত সত্য থাকা পর্যন্ত লুপের বডির স্টেটমেন্টগুলো বার বার সম্পাদিত হয়। প্রতিবার আবর্তনের পর কাউন্টার ভ্যারিয়েবলের মান বাড়ানো বা কমানো হয়। একসময় কাউন্টারের মান এমন হয় যে শর্তটি মিথ্যা হয়ে যায়। তখন প্রোগ্রামের নিয়ন্ত্রণ লুপ থেকে বের হয়ে লুপের পরবর্তী স্টেটমেন্টে চলে যায়।

  3. গ)

    AI-তৈরি নমুনা উত্তর লাইনটি মুছে দিলে count এর মান কখনো পরিবর্তিত হবে না, সব সময় ১০ থাকবে। ফলে count > 0 অর্থাৎ 10 > 0 শর্তটি প্রতিবারই সত্য থাকবে। শর্ত কখনো মিথ্যা না হওয়ায় লুপ থেকে বের হওয়ার কোনো সুযোগ থাকবে না। প্রোগ্রামটি অসীমবার চলবে এবং বার বার 10 প্রদর্শন করতে থাকবে। একে অসীম লুপ (infinite loop) বলে। তাই while লুপে কাউন্টারের হ্রাস বা বৃদ্ধির স্টেটমেন্ট অবশ্যই থাকতে হয়।

  4. ঘ)

    AI-তৈরি নমুনা উত্তর উদ্দীপকের প্রোগ্রামের আউটপুট হলো ১০, ৭, ৪, ১ (প্রতিটি আলাদা লাইনে)। কারণ count = 10, 7, 4, 1 পর্যন্ত শর্ত সত্য থাকে; এরপর count = -2 হলে শর্ত মিথ্যা হয় এবং লুপ বন্ধ হয়। for লুপ দিয়ে প্রোগ্রাম:

    for count in range(10, 0, -3):
        print(count)
    

    range এর মান নির্ধারণ: ১. শুরুর মান ১০, কারণ কাউন্টডাউন ১০ থেকে শুরু। ২. ধাপ -৩, কারণ প্রতিবার ৩ করে কমছে; হ্রাসের জন্য ঋণাত্মক ধাপ দিতে হয়। ৩. শেষের মান ০, কারণ range এ শেষের মান অন্তর্ভুক্ত হয় না; তাই ১০, ৭, ৪, ১ পাওয়া যাবে এবং ০ বা তার কম মান আসবে না। এতে একই আউটপুট পাওয়া যায়। তুলনা: এখানে লুপ কতবার চলবে (৪ বার) তা আগে থেকেই জানা, আর for লুপ কাউন্টারের শুরু, শেষ ও ধাপ এক লাইনেই নির্ধারণ করে। ফলে কাউন্টার কমানোর লাইন ভুলে অসীম লুপ হওয়ার ঝুঁকি থাকে না এবং কোড ছোট হয়। তাই এ ক্ষেত্রে for লুপ বেশি উপযোগী। তবে আবর্তন সংখ্যা অজানা থেকে কেবল শর্তের ওপর নির্ভর করলে while লুপই উপযোগী।

আরও প্রশ্ন অনুশীলন করতে অ্যাপে যাও