Find Roots of Quadratic Equation using Switch

List Topics
June 19, 2025
No Comments
2 min read

Find Roots of Quadratic Equation using Switch.

যা শিখবো:

  • Quadratic Equation কী এবং এর General Form.
  • কিভাবে a, b, c ইনপুট নিয়ে Discriminant বের করতে হয়।
  • Discriminant (D = b² - 4ac) ব্যবহার করে রুট নির্ধারণ।
  • switch এর মাধ্যমে রুটের ধরণ চেক করা।
  • sqrt() ফাংশনের ব্যবহার (math.h হেডার ফাইল)।

ধাপে ধাপে ব্যাখ্যা:

Step 1: Coefficients ইনপুট নেওয়া।

a, b, c ইনপুট নেওয়া হবে scanf() ব্যবহার করে।

Step 2: Discriminant বের করা।

C
D = b*b - 4*a*c;

Step 3: Discriminant এর ভিত্তিতে স্ট্যাটাস নির্ধারণ (ternary দিয়ে)।

C
status = (D > 0) ? 1 : ((D == 0) ? 0 : -1);

Step 4: Switch দিয়ে রুট নির্ধারণ।

C
switch(status)
{
    case 1 → দুইটি বাস্তব ও ভিন্ন রুট  
    case 0 → দুইটি বাস্তব ও সমান রুট  
    case -1 → দুইটি কাল্পনিক (Imaginary) রুট
}

উদাহরণ:

C
#include <stdio.h>
#include <math.h>

int main() {
    float a, b, c, discriminant, root1, root2, realPart, imagPart;
    int status;

    printf("a, b, c এর মান দিন (ax^2 + bx + c): ");
    scanf("%f %f %f", &a, &b, &c);

    discriminant = b * b - 4 * a * c;

    status = (discriminant > 0) ? 1 : ((discriminant == 0) ? 0 : -1);

    switch(status) {
        case 1:
            root1 = (-b + sqrt(discriminant)) / (2 * a);
            root2 = (-b - sqrt(discriminant)) / (2 * a);
            printf("দুইটি বাস্তব ও ভিন্ন রুট: %.2f এবং %.2f", root1, root2);
            break;
        case 0:
            root1 = root2 = -b / (2 * a);
            printf("দুইটি বাস্তব ও সমান রুট: %.2f এবং %.2f", root1, root2);
            break;
        case -1:
            realPart = -b / (2 * a);
            imagPart = sqrt(-discriminant) / (2 * a);
            printf("দুইটি কাল্পনিক রুট: %.2f + %.2fi এবং %.2f - %.2fi",
                   realPart, imagPart, realPart, imagPart);
            break;
        default:
            printf("ত্রুটি ঘটেছে!");
    }

    return 0;
}

আউটপুট উদাহরণ:

উদাহরণ ১:

C
ইনপুট:
a, b, c এর মান দিন (ax^2 + bx + c): 1 5 6

আউটপুট:
দুইটি বাস্তব ও ভিন্ন রুট: -2.00 এবং -3.00

উদাহরণ ২:

C
ইনপুট:
a, b, c এর মান দিন (ax^2 + bx + c): 1 2 1

আউটপুট:
দুইটি বাস্তব ও সমান রুট: -1.00 এবং -1.00

উদাহরণ ৩:

C
ইনপুট:
a, b, c এর মান দিন (ax^2 + bx + c): 1 1 5

আউটপুট:
দুইটি কাল্পনিক রুট: -0.50 + 2.18i এবং -0.50 - 2.18i

ব্যাখ্যা:

  • scanf() → ইউজার ইনপুট নেয়।
  • discriminant = b² - 4ac → রুট নির্ধারণে সাহায্য করে।
  • status → ternary দিয়ে D-এর মান অনুযায়ী অবস্থা নির্ধারণ।
  • switch(status) → তিনটি কেস অনুযায়ী রুট নির্ধারণ।
  • sqrt() → বর্গমূল বের করতে math.h হেডার প্রয়োজন।
  • %.2f → দশমিকের পরে ২ ঘর পর্যন্ত মান দেখায়।

©2025 Linux Bangla | Developed & Maintaind by Linux Bangla.