তথ্য ও যোগাযোগ প্রযুক্তি • প্রোগ্রামিং ভাষা

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

লিমন দুটি সংখ্যার গড় নির্ণয়ের একটি প্রোগ্রাম লেখার সময় প্রথমে সমস্যাটি বিশ্লেষণ করে অ্যালগরিদম তৈরি করল- 'দুটি সংখ্যা নাও, যোগ করো, ২ দিয়ে ভাগ করো, ফলাফল দেখাও'। অ্যালগরিদম ঠিক আছে। এরপর সে C ভাষায় কোড লিখল, যেখানে গড় নির্ণয়ের লাইনটি ছিল: avg = a + b / 2; । সে টেস্ট কেস হিসেবে a = 4 ও b = 6 ইনপুট দিল। প্রত্যাশিত আউটপুট 5 হলেও প্রোগ্রাম দেখাল 7।

  1. ক)

    বাগ (bug) কাকে বলে?

    (1)
  2. খ)

    প্রোগ্রাম রিলিজের আগে টেস্ট কেস দিয়ে পরীক্ষা করা হয় কেন?

    (2)
  3. গ)

    উদ্দীপকের প্রোগ্রামটি তৈরি করতে লিমন যে ধাপগুলো অনুসরণ করেছে এবং এরপর যে ধাপগুলো করতে হবে, তা ক্রমানুসারে লেখো।

    (3)
  4. ঘ)

    লিমনের প্রোগ্রামে ভুল আউটপুটের কারণ বিশ্লেষণ করো এবং ভুলটি সংশোধন করে দেখাও।

    (4)

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

  1. ক)

    AI-তৈরি নমুনা উত্তর প্রোগ্রামের কোডে থাকা ভুলকে বাগ (bug) বলে।

  2. খ)

    AI-তৈরি নমুনা উত্তর প্রোগ্রাম লেখার পর বিভিন্ন রকম ইনপুটের জন্য প্রোগ্রামটি প্রত্যাশিত আউটপুট দিচ্ছে কি না তা যাচাই করার জন্য টেস্ট কেস ব্যবহার করা হয়। কোনো টেস্ট কেসে প্রত্যাশিত আউটপুট না এলে বোঝা যায় প্রোগ্রামে ভুল আছে। সব টেস্ট কেসে প্রোগ্রাম ঠিক কাজ করলেই সেটি রিলিজ করা যায়। তাই ভুলমুক্ত প্রোগ্রাম নিশ্চিত করতে টেস্ট কেস ব্যবহার করা হয়।

  3. গ)

    AI-তৈরি নমুনা উত্তর প্রোগ্রাম তৈরির মূল ধাপগুলো ক্রমানুসারে-
    ১) সমস্যাটি ঠিকভাবে বর্ণনা করা (গড় নির্ণয়)।
    ২) সমস্যা সমাধানের জন্য অ্যালগরিদম ও ফ্লোচার্ট তৈরি করা।
    ৩) কোড লেখা।
    ৪) প্রোগ্রাম পরীক্ষা করা এবং ভুল থাকলে ডিবাগ করে সংশোধন করা।
    ৫) প্রোগ্রাম রিলিজ করা।

    উদ্দীপকে লিমন সমস্যা বিশ্লেষণ, অ্যালগরিদম তৈরি, কোড লেখা এবং টেস্ট কেস দিয়ে পরীক্ষার ধাপ পর্যন্ত এসেছে। এরপর তাকে ভুল ডিবাগ করে সংশোধন করতে হবে এবং সব টেস্ট কেস সফল হলে প্রোগ্রামটি রিলিজ করতে হবে।

  4. ঘ)

    AI-তৈরি নমুনা উত্তর প্রোগ্রাম ভুল আউটপুট দেওয়ার দুটি কারণ থাকতে পারে- অ্যালগরিদম ভুল হওয়া অথবা অ্যালগরিদম ঠিক থাকলেও কোড লেখায় ভুল হওয়া।

    উদ্দীপকে অ্যালগরিদম ঠিক আছে (যোগ করে ২ দিয়ে ভাগ)। তাই ভুলটি কোডে, অর্থাৎ এটি একটি বাগ।

    কোডের avg = a + b / 2; লাইনে অপারেটরের অগ্রাধিকার অনুযায়ী ভাগ আগে হয়। তাই b / 2 = 6 / 2 = 3 এবং avg = 4 + 3 = 7 পাওয়া যায়। এ কারণে আউটপুট 7 হয়েছে, প্রত্যাশিত 5 নয়।

    সংশোধন: যোগ আগে করার জন্য প্রথম বন্ধনী ব্যবহার করতে হবে-
    avg = (a + b) / 2;
    এখন (4 + 6) / 2 = 10 / 2 = 5 পাওয়া যাবে, যা প্রত্যাশিত আউটপুটের সাথে মেলে।

    এভাবে বাগ খুঁজে বের করে সংশোধন করার ধাপকে ডিবাগিং বলে। সংশোধনের পর আবার সব টেস্ট কেস দিয়ে পরীক্ষা করে তারপর প্রোগ্রাম রিলিজ করতে হবে।

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