Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C प्रोग्राम: द्विघात समीकरण के मूल ज्ञात करना

द्विघात समीकरण

एक द्विघात समीकरण का रूप होता है: ax² + bx + c = 0

इसके मूल (roots) ज्ञात करने के लिए हम विविक्तकर (Discriminant) का उपयोग करते हैं:

D = b² - 4ac

मूलों के प्रकार

विविक्तकर (D)मूलों की प्रकृतिसूत्र
D > 0दो वास्तविक और अलग-अलग मूलx₁ = (-b + √D)/2a, x₂ = (-b - √D)/2a
D = 0दो वास्तविक और समान मूलx = -b/2a
D < 0दो सम्मिश्र मूलx₁ = -b/2a + i√|D|/2a, x₂ = -b/2a - i√|D|/2a

C प्रोग्राम

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

void calc_roots(int a, int b, int c) {
    if (a == 0) {
        printf("अमान्य समीकरण (a शून्य नहीं हो सकता)\n");
        return;
    }

    int d = b * b - 4 * a * c;
    double sqrt_val = sqrt(abs(d));

    if (d > 0) {
        printf("मूल वास्तविक और अलग-अलग हैं:\n");
        printf("x1 = %.4f\n", (double)(-b + sqrt_val) / (2 * a));
        printf("x2 = %.4f\n", (double)(-b - sqrt_val) / (2 * a));
    } else if (d == 0) {
        printf("मूल वास्तविक और समान हैं:\n");
        printf("x = %.4f\n", -(double)b / (2 * a));
    } else {
        printf("मूल सम्मिश्र हैं:\n");
        printf("x1 = %.4f + i%.4f\n", -(double)b / (2 * a), sqrt_val / (2 * a));
        printf("x2 = %.4f - i%.4f\n", -(double)b / (2 * a), sqrt_val / (2 * a));
    }
}

int main() {
    int a = 2, b = -5, c = 8;
    calc_roots(a, b, c);
    return 0;
}

आउटपुट

मूल सम्मिश्र हैं:
x1 = 1.2500 + i3.1225
x2 = 1.2500 - i3.1225

सुधार के सुझाव

  • double का उपयोग करें int के बजाय गुणांकों के लिए
  • sqrt() के लिए math.h शामिल करें
  • बड़े मानों के लिए ओवरफ्लो जांच जोड़ें
  • abs(d) के बजाय fabs() का उपयोग करें double के लिए

उन्नत संस्करण

void calc_roots_advanced(double a, double b, double c) {
    if (a == 0.0) { /* रैखिक समीकरण के रूप में संभालें */ }
    double d = b*b - 4*a*c;
    double denom = 2*a;
    if (d >= 0) {
        double sqrt_d = sqrt(d);
        printf("x1 = %.4f, x2 = %.4f\n", (-b + sqrt_d)/denom, (-b - sqrt_d)/denom);
    } else {
        double real = -b/denom;
        double imag = sqrt(-d)/denom;
        printf("x1 = %.4f + i%.4f, x2 = %.4f - i%.4f\n", real, imag, real, imag);
    }
}
  1. C प्रोग्राम: द्विघात समीकरण के मूल ज्ञात करना C प्रोग्राम: द्विघात समीकरण के मूल ज्ञात करना

    समस्या सॉफ्टवेयर डेवलपमेंट मेथड लागू करके C में द्विघात समीकरण के मूल ज्ञात करना। विश्लेषण इनपुट: a, b, c मान (समीकरण: ax² + bx + c = 0) आउटपुट: r1, r2 मूल प्रक्रिया रूट्स के सूत्र: r₁ = (-b + √(b² - 4ac)) / 2a r₂ = (-b - √(b² - 4ac)) / 2a एल्गोरिदम शुरुआत a, b, c पढ़ें d = b² - 4ac की गणना करें

  1. C++ में रेखा का मध्य बिंदु खोजने का प्रोग्राम C++ में रेखा का मध्य बिंदु खोजने का प्रोग्राम

    इस समस्या में, हमें दो बिंदु A और B दिए गए हैं, एक रेखा के प्रारंभिक और अंतिम बिंदु। हमारा कार्य C++ में रेखा का मध्य बिंदु खोजने के लिए एक प्रोग्राम बनाना है। समस्या विवरण यहां, हमारे पास प्रारंभिक और अंतिम बिंदु A(x1, y1) और B(x2, y2) वाली एक रेखा है। और हमें रेखा का मध्य बिंदु ज्ञात करना है। उद

  1. C++ में त्रिभुज के केंद्रक (Centroid) ज्ञात करने का प्रोग्राम C++ में त्रिभुज के केंद्रक (Centroid) ज्ञात करने का प्रोग्राम

    इस समस्या में, हमें एक 2D ऐरे दिया गया है जो त्रिभुज के तीन शीर्षों के निर्देशांक को दर्शाता है। हमारा कार्य C++ में त्रिभुज के केंद्रक (Centroid) ज्ञात करने का प्रोग्राम बनाना है।केंद्रक (Centroid) त्रिभुज का वह बिंदु है जहां त्रिभुज की तीनों मध्यिकाएं (medians) प्रतिच्छेद करती हैं।मध्यिका (Median)