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

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

আবহাওয়া অফিসের একজন কর্মকর্তা সাত দিনের সর্বোচ্চ তাপমাত্রা (ডিগ্রি সেলসিয়াস) একটি অ্যারেতে রেখে নিচের প্রোগ্রামটি রান করল।

#include <stdio.h>
int main()
{
    int t[] = {28, 31, 33, 30, 29, 27, 32};
    int i, sum, key;
    sum = 0;
    key = 30;
    for (i = 0; i < 7; i += 1) {
        sum += t[i];
    }
    printf("%d %d
", sum, sum / 7);
    for (i = 0; i < 7; i += 1) {
        if (t[i] == key) {
            printf("Found");
            break;
        }
    }
    if (i == 7) {
        printf("Not found");
    }
    return 0;
}
  1. ক)

    অ্যারে কী?

    (1)
  2. খ)

    t অ্যারেটিতে সাতটি উপাদান থাকলেও t[7] ব্যবহার করা ঠিক নয় কেন? ব্যাখ্যা কর।

    (2)
  3. গ)

    উদ্দীপকের প্রোগ্রামের প্রথম printf() স্টেটমেন্টের আউটপুট নির্ণয় কর।

    (3)
  4. ঘ)

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

    (4)

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

  1. ক)

    AI-তৈরি নমুনা উত্তর অ্যারে হলো সি প্রোগ্রামিং ভাষার একটি বিশেষ ডেটা স্ট্রাকচার, যেখানে একই ধরনের একাধিক ডেটা একটি নামের অধীনে ক্রমানুসারে রাখা যায়।

  2. খ)

    AI-তৈরি নমুনা উত্তর সি ভাষায় অ্যারের ইনডেক্স 0 থেকে শুরু হয়। তাই অ্যারেতে n সংখ্যক উপাদান থাকলে প্রথম উপাদান 0-তম ঘরে এবং শেষ উপাদান (n-1)-তম ঘরে থাকে। উদ্দীপকে সাতটি উপাদান থাকায় ইনডেক্স হবে 0 থেকে 6 পর্যন্ত। t[7] অ্যারের সীমার বাইরের ঘর নির্দেশ করে, যেখানে কোনো বৈধ উপাদান নেই। তাই t[7] ব্যবহার করা ঠিক নয়।

  3. গ)

    AI-তৈরি নমুনা উত্তর প্রথম for লুপে i এর মান 0 থেকে 6 পর্যন্ত চলে এবং প্রতিবার sum += t[i] অর্থাৎ sum = sum + t[i] এক্সিকিউট হয়।
    sum = 0 + 28 + 31 + 33 + 30 + 29 + 27 + 32 = 210।
    আবার sum / 7 = 210 / 7 = 30।
    অতএব প্রথম printf() এর আউটপুট হবে: 210 30

  4. ঘ)

    AI-তৈরি নমুনা উত্তর দ্বিতীয় লুপটি লিনিয়ার সার্চ পদ্ধতিতে কাজ করে।
    key = 30 হলে: i = 0 এ t[0] = 28, 28 == 30 মিথ্যা। i = 1 এ t[1] = 31, মিথ্যা। i = 2 এ t[2] = 33, মিথ্যা। i = 3 এ t[3] = 30, 30 == 30 সত্য। তাই Found ছাপা হবে এবং break স্টেটমেন্টের কারণে লুপ থেকে বের হয়ে যাবে। এ সময় i এর মান 3, অর্থাৎ ৪টি তুলনার পর সংখ্যাটি পাওয়া গেছে। লুপের বাইরে i == 7 শর্তটি মিথ্যা (i = 3), তাই Not found ছাপা হবে না।
    key = 35 হলে: অ্যারেতে 35 নেই, তাই কোনো তুলনাতেই t[i] == key সত্য হবে না। break একবারও এক্সিকিউট হবে না, লুপ চলতে চলতে i এর মান বাড়বে 7 পর্যন্ত। i = 7 হলে i < 7 শর্ত মিথ্যা হয়ে লুপ শেষ হবে। লুপের বাইরে i == 7 শর্তটি সত্য হওয়ায় আউটপুট হবে: Not found।
    অতএব break এক্সিকিউট হয়েছে কি না তা i == n পরীক্ষা করে জানা যায়। সংখ্যা পাওয়া গেলে i এর মান n এর চেয়ে কম থাকে, আর না পাওয়া গেলে i এর মান n এর সমান হয়।

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