HOME C প্রোগ্রামিং ও ফ্লোচার্ট
ইনপুট ডেটাপ্রিন্টকৃত আউটপুট ডেটা
05:00 am থেকে 11:59 amMorning
12:00 pm থেকে 04:59 pmAfternoon
05:00 pm থেকে 08:59 pmEvening
09:00 pm থেকে 04:59 amNight
Chittagong • 2025
ক) ইন্টারপ্রিটার কী?
খ) C প্রোগ্রাম "/" ও "%" অপারেটর দুটির গাণিতিক প্রক্রিয়া অভিন্ন হলেও ফলাফল ভিন্ন— বুঝিয়ে লেখ।
গ) উদ্দীপকে উল্লিখিত আউটপুট পাওয়ার প্রোগ্রামের ফ্লোচার্ট তৈরি কর।
ঘ) else if statement ব্যবহার করে উদ্দীপকে উল্লিখিত আউটপুটটি পাওয়ার প্রোগ্রামের C ভাষার কোড লেখ।

সমাধান (Solution)

ক) ইন্টারপ্রিটার কী?
ইন্টারপ্রিটার হলো এক ধরনের অনুবাদক প্রোগ্রাম যা উচ্চস্তরের ভাষায় লিখিত সোর্স কোডকে এক লাইন করে পড়ে এবং সাথে সাথে সেটিকে যান্ত্রিক ভাষায় রূপান্তর করে কার্যকারিতা শুরু করে।

খ) C প্রোগ্রাম "/" ও "%" অপারেটর দুটির গাণিতিক প্রক্রিয়া অভিন্ন— ব্যাখ্যা কর।
C প্রোগ্রামে / (ডিভিশন) এবং % (মডুলাস) উভয়ই ভাগের কাজ করে, কিন্তু তাদের ফলাফল প্রদানের ধরণ ভিন্ন। "/" অপারেটর দুটি সংখ্যার ভাগফল (Quotient) প্রদান করে। অন্যদিকে, "%" অপারেটর ভাগের পর অবশিষ্ট বা ভাগশেষ (Remainder) প্রদান করে। যেমন: ৫ কে ২ দিয়ে ভাগ করলে 5/2 এর ফলাফল হবে 2, কিন্তু 5%2 এর ফলাফল হবে 1।

গ) উদ্দীপকে উল্লিখিত আউটপুট পাওয়ার প্রোগ্রামের ফ্লোচার্ট
উদ্দীপকের শর্তানুসারে সময় (Time) ইনপুট নিয়ে সঠিক মেসেজ প্রিন্ট করার ফ্লোচার্ট নিচে বর্ণনা করা হলো:

* ধাপ ১: শুরু (Start)।
* ধাপ ২: সময় (hour) ইনপুট নিই (এখানে ২৪ ঘণ্টার ফরম্যাট ব্যবহার করা সুবিধাজনক)।
* ধাপ ৩: যদি $5 \le hour < 12$ হয়, তবে "Morning" প্রদর্শন করি।
* ধাপ ৪: যদি $12 \le hour < 17$ হয়, তবে "Afternoon" প্রদর্শন করি।
* ধাপ ৫: যদি $17 \le hour < 21$ হয়, তবে "Evening" প্রদর্শন করি।
* ধাপ ৬: অন্যথায় (রাত ৯টা থেকে ভোর ৪:৫৯) "Night" প্রদর্শন করি।
* ধাপ ৭: শেষ (End)।

ঘ) else if statement ব্যবহার করে C ভাষার কোড
নিচে উদ্দীপকের সময় অনুযায়ী আউটপুট পাওয়ার জন্য C প্রোগ্রাম দেওয়া হলো (সহজভাবে হিসাবের জন্য ২৪ ঘণ্টার ফরম্যাট ব্যবহার করা হয়েছে):
#include <stdio.h>

int main() {
    int hour;
    printf("Enter time in 24-hour format (0-23): ");
    scanf("%d", &hour);

    if (hour >= 5 && hour < 12) {
        printf("Morning\n");
    } 
    else if (hour >= 12 && hour < 17) {
        printf("Afternoon\n");
    } 
    else if (hour >= 17 && hour < 21) {
        printf("Evening\n");
    } 
    else if ((hour >= 21 && hour <= 23) || (hour >= 0 && hour < 5)) {
        printf("Night\n");
    } 
    else {
        printf("Invalid Input!\n");
    }

    return 0;
}
ব্যাখ্যা:
১. প্রোগ্রামটিতে ইনপুট হিসেবে ২৪ ঘণ্টার ফরম্যাট নেওয়া হয়েছে (যেমন: ৫ টা বিকাল মানে ১৭)।
২. else if ল্যাডার ব্যবহার করে প্রতিটি নির্দিষ্ট সময়ের সীমার জন্য পৃথক শর্ত দেওয়া হয়েছে।
৩. লজিক্যাল অ্যান্ড (&&) এবং অর (||) অপারেটর ব্যবহার করে সময়কে নিখুঁতভাবে যাচাই করা হয়েছে।