Skip to content

মডিউল ৫ঃ প্রবলেম সলভিং এবং কন্ডিশনাল স্টেটমেন্ট রিকেপ

মডিউল ৫-০ঃ সূচনা

আজকের মডিউলে কন্ডিশনাল স্টেটমেন্ট রিক্যাপ করা হবে। তবে একটু ভিন্ন এংগেল থেকে। তোমরা সিন্টেক্স তো জানোই। সিন্টেক্স জানাটা ইজি তবে সেটা কোন জায়গায় কিভাবে এপ্লাই করতে হবে এটা বুঝতে পারাটাই ইম্পর্ট্যান্ট। আর সেটা বুঝার জন্য সবচেয়ে বেটার ওয়ে হলো কন্ডিশনাল স্টেট্মেন্ট ইউস করে বেশী বেশী প্রবলেম প্র্যাক্টিস করা। আজকের মডিউলে মূলত সেটাই করা হয়েছে।

প্রবলেম সেটের লিংক:


মডিউল ৫-১ঃ I. Welcome for you with Conditions

Problem Statement:

দেওয়া আছে দুটি সংখ্যা A এবং B। যদি A, B এর চেয়ে বড় বা সমান হয়, তাহলে "Yes" প্রিন্ট করুন। অন্যথায় "No" প্রিন্ট করুন।

Code:

c
#include <stdio.h>

int main()
{
    int a,b;
    scanf("%d %d",&a,&b);
    if(a>=b)
    {
        printf("Yes\n");
    }
    else
    {
        printf("No\n");
    }
    return 0;
}

Line-by-Line Explanation:

c
#include <stdio.h>

প্রোগ্রামের শুরুতে স্ট্যান্ডার্ড ইনপুট এবং আউটপুট ফাংশন সম্পর্কিত লাইব্রেরি <stdio.h> ইমপোর্ট করা হয়েছে।

c
int main()
{
  int a,b;
  scanf("%d %d", &a, &b);

এটি প্রোগ্রামের প্রধান ফাংশন যা কোডের অনুষ্ঠান শুরু করে। এখানে দুটি পূর্ণসংখ্যা a এবং b ডিক্লেয়ার করা হয়েছে। scanf() ফাংশন দ্বারা ইউজার থেকে ইনপুট নেওয়া হয়েছে এবং এই ইনপুট দুটি পূর্ণসংখ্যা a এবং b এ রাখা হয়েছে।

c
  if (a >= b)
  {
    printf("Yes\n");
  }
  else
  {
    printf("No\n");
  }

যদি a এর মান b এর চেয়ে বড় বা সমান হয়, তবে "Yes" প্রিন্ট করা হয়েছে, অন্যথায় "No" প্রিন্ট করা হয়েছে।

c
  return 0;
}

0 মান রিটার্ন করেছে, যা প্রোগ্রামের সাক্সেসফুল এন্ডিং বোঝানো হয়।


মডিউল ৫-২ঃ J. Multiples

Problem Statement:

দুটি সংখ্যা A এবং B দেওয়া আছে। A যদি B এর গুণিতক হয়় অথবা B যদি A এর গুণিতক হয়়, তবে "Multiples" প্রিন্ট করুন। অন্যথায় "No Multiples" প্রিন্ট করুন।

Code:

c
#include <stdio.h>

int main()
{
  int a,b;
  scanf("%d %d",&a,&b);
  if(a%b==0)
  {
    printf("Multiples\n");
  }
  else if(b%a==0)
  {
    printf("Multiples\n");
  }
  else
  {
    printf("No Multiples\n");
  }
  return 0;
}

Line-by-Line Explanation:

c
#include <stdio.h>

প্রোগ্রামের শুরুতে stdio.h হেডার ফাইল ইমপোর্ট করা হয়েছে।

c
int main()
{
  int a, b;
  scanf("%d %d", &a, &b);

main ফাংশনে দুটি int টাইপের ভ্যারিয়েবল a এবং b ডিক্লেয়ার করা হয়েছে এবং scanf দিয়ে ইনপুট নেওয়া হয়েছে।

c
if (a % b == 0)
{
  printf("Multiples\n");
}

a কি b দ্বারা বিভাজ্য (ভাগশেষ ০) — হলে "Multiples" প্রিন্ট।

c
else if (b % a == 0)
{
  printf("Multiples\n");
}

উল্টোভাবে b কি a দ্বারা বিভাজ্য — হলে "Multiples" প্রিন্ট।

c
else
{
  printf("No Multiples\n");
}

উভয় ক্ষেত্রেই বিভাজ্য না হলে "No Multiples" প্রিন্ট।

c
return 0;
}

0 রিটার্ন মান প্রোগ্রামের সফল সমাপ্তি নির্দেশ করে।


মডিউল ৫-৩ P. First digit !

Problem Statement:

একটি সংখ্যা X দেওয়া আছে। X এর প্রথম ডিজিট যদি জোড় হয়, তবে "EVEN" প্রিন্ট করুন। অন্যথায় "ODD" প্রিন্ট করুন।

উদাহরণ: 4569 এখানে প্রথম ডিজিট 4, দ্বিতীয় 5, তৃতীয় 6 এবং চতুর্থ 9।

Code:

c
#include <stdio.h>

int main()
{
    int x;
    scanf("%d", &x);

    int digit = x / 1000; // প্রথম (হাজারের ঘরের) ডিজিট বের করা

    if (digit % 2 == 0)
    {
        printf("EVEN\n");
    }
    else
    {
        printf("ODD\n");
    }
    return 0;
}

Explanation:

  • digit = x / 1000 করে 4-ডিজিটের সংখ্যার প্রথম অঙ্ক বের করা হয়েছে (সমস্যার সেট অনুযায়ী ইনপুট 4-ডিজিট ধরা হয়)।
  • digit % 2 == 0 হলে জোড় (EVEN), নইলে বিজোড় (ODD)।

মডিউল ৫-৪ঃ ASCII টেবিল

ASCII কি?

ASCII (American Standard Code for Information Interchange) হল একটি ক্যারেক্টার এনকোডিং স্ট্যান্ডার্ড যা কম্পিউটারে টেক্সট রিপ্রেজেন্ট করার জন্য ব্যবহৃত হয়। এটি 1963 সালে প্রথম প্রকাশিত হয় এবং এখনও ডিজিটাল যোগাযোগের ভিত্তি হিসেবে কাজ করে।

ASCII টেবিল

ASCII টেবিলে মোট 128টি ক্যারেক্টার রয়েছে (0 থেকে 127 পর্যন্ত):

  • কন্ট্রোল ক্যারেক্টার (0–31): নন-প্রিন্টেবল ক্যারেক্টার যেগুলো ডিভাইস কন্ট্রোলে ব্যবহৃত হয় (যেমন: নতুন লাইন, ট্যাব)
  • প্রিন্টেবল ক্যারেক্টার (32–127): বর্ণ, সংখ্যা ও বিশেষ চিহ্ন
    • 32: স্পেস
    • 48–57: 0 থেকে 9
    • 65–90: A থেকে Z
    • 97–122: a থেকে z

উদাহরণ:

  • 'A' এর ASCII কোড = 65
  • 'a' এর ASCII কোড = 97
  • '0' এর ASCII কোড = 48

ASCII হল কম্পিউটিং জগতের একটি মৌলিক স্ট্যান্ডার্ড যা আধুনিক টেক্সট প্রসেসিং এবং ডেটা কমিউনিকেশনের ভিত্তি তৈরি করেছে।

ASCII Table

Source: Wikipedia


মডিউল ৫-৫ঃ N. Char

Problem Statement:

আপনাকে একটি অক্ষর X দেওয়া হয়েছে। এটি ছোট হাতের (a–z) অথবা বড় হাতের (A–Z) হতে পারে।

  • যদি ছোট হাতের হয়, বড় হাতের করে প্রিন্ট করুন
  • যদি বড় হাতের হয়, ছোট হাতের করে প্রিন্ট করুন

দ্রষ্টব্য: ছোট হাতের a এবং বড় হাতের A এর ASCII পার্থক্য 32।

Code:

c
#include <stdio.h>

int main()
{
    char a;
    scanf("%c", &a);

    if (a >= 'a' && a <= 'z')
    {
        int ans = a - 32; // to uppercase
        printf("%c", ans);
    }
    else
    {
        int ans = a + 32; // to lowercase
        printf("%c", ans);
    }
    return 0;
}

Line-by-Line Explanation:

c
#include <stdio.h>

stdio.h হেডার যোগ করা হয়েছে ইনপুট/আউটপুট ফাংশনের জন্য।

c
int main()

মেইন ফাংশন ডিফাইন করা হয়েছে।

c
char a;

একটি ক্যারেক্টার ভেরিয়েবল a ঘোষিত হয়েছে।

c
scanf("%c", &a);

একটি ক্যারেক্টার ইনপুট নেওয়া হয়েছে।

c
if (a >= 'a' && a <= 'z') { int ans = a - 32; printf("%c", ans); }

যদি ছোট হাতের হয়, ASCII মান থেকে 32 বিয়োগ করে বড় হাতের প্রিন্ট।

c
else { int ans = a + 32; printf("%c", ans); }

অন্যথায় (বড় হাতের), 32 যোগ করে ছোট হাতের প্রিন্ট।

c
return 0;

প্রোগ্রামের সফল সমাপ্তি।


মডিউল ৫-৭ঃ K. Max and Min

Problem Statement:

তিনটি সংখ্যা A, B এবং C দেওয়া আছে, এদের মধ্যে সর্বনিম্ন এবং সর্বোচ্চ সংখ্যা প্রিন্ট করুন।

Code:

c
#include <stdio.h>

int main()
{
    int a,b,c;
    scanf("%d %d %d",&a,&b,&c);
    // minimum
    if(a<=b && a<=c)
    {
        printf("%d ",a);
    }
    else if(b<=a && b<=c)
    {
        printf("%d ",b);
    }
    else
    {
        printf("%d ",c);
    }

    // maximum
    if(a>=b && a>=c)
    {
        printf("%d\n",a);
    }
    else if(b>=a && b>=c)
    {
        printf("%d\n",b);
    }
    else
    {
        printf("%d\n",c);
    }
    return 0;
}

Explanation:

  • প্রথমে a<=b && a<=c চেক করে মিনিমাম নির্ধারণ করে; না হলে b, অন্যথায় c মিনিমাম।
  • এরপর a>=b && a>=c চেক করে ম্যাক্সিমাম নির্ধারণ করে; না হলে b, অন্যথায় c ম্যাক্সিমাম।

Released under the MIT License.