HOME ফ্লোচার্ট ও সি প্রোগ্রামিং
StartInput YearY% 400== 0Y% 100 != 0ANDY% 4 == 0Print Leap YearPrint Not Leap YearEndYesNoYesNo
Comilla • 2025
ক) ইন্টারপ্রেটার কী?
খ) সি-প্রোগ্রামে ধ্রুবক ঘোষণার দুটি নিয়ম লিখ।
গ) চিত্রে ব্যবহৃত প্রতীকগুলোর কাজ বর্ণনা কর।
ঘ) উল্লিখিত Flowchart অনুসরণ করে C প্রোগ্রাম লিখ।

সমাধান (Solution)

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

খ) সি-প্রোগ্রামে ধ্রুবক (Constant) ঘোষণার দুটি নিয়ম লিখ।
সি-প্রোগ্রামে ধ্রুবক ঘোষণার প্রধান দুটি নিয়ম হলো:
১. const কিওয়ার্ড ব্যবহার করে: ভেরিয়েবল টাইপের আগে const কিওয়ার্ড যোগ করে ধ্রুবক ঘোষণা করা যায়। যেমন: const float PI = 3.1416;
২. #define প্রি-প্রসেসর ব্যবহার করে: মেইন ফাংশনের বাইরে হ্যাশ (#) চিহ্নের মাধ্যমে ধ্রুবক নির্ধারণ করা যায়। যেমন: #define MAX 100

গ) চিত্রে ব্যবহৃত প্রতীকগুলোর কাজ বর্ণনা কর।
উদ্দীপকের ফ্লোচার্টটিতে ব্যবহৃত লজিক্যাল প্রতীকগুলোর বর্ণনা নিচে দেওয়া হলো:

চিহ্নকাজ
এটি একটি প্রক্রিয়ার শুরু (Start) বা শেষ (End) নির্দেশ করে।
এটি কোনো নির্দিষ্ট কাজ বা অপারেশন নির্দেশ করে (যেমন: যোগ, বিয়োগ, গুন, ভাগ নির্ণয়)।
এটি তথ্যের ইনপুট (Input) নেওয়া বা ফলাফল আউটপুট (Output) হিসেবে দেখানো নির্দেশ করে।
এটি একটি সিদ্ধান্ত বা শর্তমূলক শাখা নির্দেশ করে (যেমন: হ্যাঁ অথবা না)।


১. ডিম্বাকৃতি (Oval): এটি 'শুরু' (Start) এবং 'শেষ' (End) নির্দেশ করতে ব্যবহৃত হয়েছে।
২. সামান্তরিক (Parallelogram): এটি ডেটা ইনপুট (Input Year) এবং আউটপুট (Print Leap Year/Not Leap Year) দেখানোর জন্য ব্যবহৃত হয়েছে।
৩. রম্বস বা হীরাকৃতি (Diamond): এটি 'সিদ্ধান্ত' (Decision) প্রতীক। এখানে বছরের লিপ ইয়ার হওয়ার শর্ত ($Y \pmod{400} == 0$ এবং অন্যান্য লজিক) যাচাই করার জন্য এটি ব্যবহৃত হয়েছে।
৪. ছোট বৃত্ত (Connector): এটি ফ্লোচার্টের বিভিন্ন শাখার সংযোগ বিন্দু হিসেবে কাজ করে।
৫. তীর চিহ্ন (Flow Lines): এগুলো প্রোগ্রামের প্রবাহের দিক বা ধাপগুলোর ধারাবাহিকতা নির্দেশ করে।

ঘ) উল্লিখিত Flowchart অনুসরণ করে C প্রোগ্রাম
নিচে লিপ ইয়ার (Leap Year) নির্ণয়ের জন্য উদ্দীপকের লজিক অনুযায়ী প্রোগ্রামটি দেওয়া হলো:

#include <stdio.h>

int main() {
    int Y;

    printf("Enter a year: ");
    scanf("%d", &Y);

    // ফ্লোচার্টের লজিক অনুযায়ী শর্ত
    if (Y % 400 == 0) {
        printf("%d is a Leap Year.\n", Y);
    } 
    else if (Y % 4 == 0 && Y % 100 != 0) {
        printf("%d is a Leap Year.\n", Y);
    } 
    else {
        printf("%d is not a Leap Year.\n", Y);
    }

    return 0;
}
বিশ্লেষণ:
প্রোগ্রামটি ফ্লোচার্টের ধাপগুলো হুবহু অনুসরণ করে। প্রথমে ব্যবহারকারীর কাছ থেকে বছর ($Y$) ইনপুট নেওয়া হয়। এরপর দুটি প্রধান শর্ত পরীক্ষা করা হয়: প্রথমত, বছরটি ৪০০ দ্বারা বিভাজ্য কি না; দ্বিতীয়ত, বছরটি ৪ দ্বারা বিভাজ্য কিন্তু ১০০ দ্বারা বিভাজ্য নয় কি না। এই শর্তগুলোর যেকোনো একটি সত্য হলে সেটি লিপ ইয়ার, অন্যথায় তা লিপ ইয়ার নয়।