Квадратно уравнение

Напишете функция, която намира и отпечатва решенията на квадратно уравнение.

По желание: Напишете функция, която намира решенията на квадратно уравнение, но ги връща като резултат.

Публикувано в 12а с етикети . Постоянна връзка.

6 Responses to Квадратно уравнение

  1. Kosmos каза:
    #include <cstdlib>
    #include <iostream>
    #include <math.h>
    using namespace std;
     
    void kvadratno(double a,double b,double c)
        {
             double d,x,y;
             d=pow(b,2)+4*a*c;
             cout<<"D:"<<d<<endl;
             if (d<0)
             cout<<"nqma re6enie ! "<<endl;
             else
             if (d==0)
             cout<<"x=0 !";
             else{
             x=(-b+sqrt(d))/(2*a);
             cout<<"x:"<<x<<endl;
             y=(-b-sqrt(d))/(2*a);
             cout<<"y:"<<y<<endl;
    }         
         }
    int main(int argc, char *argv[])
    {
        double a,b,c;
        cout<<"a:";
        cin>>a;
        cout<<"b:";
        cin>>b;
        cout<<"c:";
        cin>>c;
        kvadratno(a,b,c);
         system("PAUSE");
        return EXIT_SUCCESS;
    }
    
    
  2. Nate каза:
    #include <cstdlib>
    #include <iostream>
    #include <math.h>
    
    using namespace std;
    
    int lineino(int a, int b, double &x)
    {
           if ((a==0)&&(b!=0)) return -2;//ako a=0 b!=0 nqma reshenie
           if ((a!=0)&&(b==0)) return -1;//ako b=0 vsqko x e reshenie 
           if ((a!=0)&&(b!=0))
           {
            x=(-b/a);//i to e -b/a
            return 0;//ima reshenie
           }      
    }
    
    int kvadratno(int a, int b, int c, double &x1, double &x2)//a,b,c parametri na uravnenieto , x1,x2 resheniqta
    //1- 2 korena , 0- 1 koren , -1-vsqko x, -2-nqma reshenie
    {
           double d;
           d=pow(b,2)-4*a*c;
           if (a==0) return lineino(b,c,x1); //-2 NR -1 vsqko x 0 reshenie
           else if (d==0) { x1=-b/2*a; return 0; }//ima edin koren
           else if (d<0) return -3;
           else  
           {
                x1=((-b+sqrt(d))/2*a);
                x2=((-b-sqrt(d))/2*a);
                return 1;
           }
    }
    
    int main(int argc, char *argv[])
    {
        int a,b,c;
        double x1,x2;
        cin>>a>>b>>c;
        switch (kvadratno(a,b,c,x1,x2))
        {
        case 1 : cout<<"x1="<<x1<<" x2="<<x2;break;
        case 0 : cout<<"x1="<<x1;break;
        case -1 :cout<<"Vsqko x e reshenie";break;
        case -2 :cout<<"Nqma reshenie";break;
        case -3 :cout<<"Nqma realni koreni";break;
        }
        cout<<endl;
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    
    
  3. MAXA каза:
    #include <cstdlib>
    #include <iostream>
    #include <math.h>
    
    using namespace std;
    
    void KVU(int a,int b,int c,double &x1,double &x2)
    {
      float D;
      D=sqrt(b*b-4*a*c);
      if (D>0) {
        x1=(-b+D)/2*a;
        x2=(-b-D)/2*a;
        cout<<"x1= "<<x1<<endl;
        cout<<"x2= "<<x2<<endl;
      }
      if (D==0){
        x1=-b/2*a;
        cout<<"x1= "<<x1<<endl;
      }
      if (D<0)
        cout<<"Nqma re6enie \n";
    }
    
    int main(int argc, char *argv[])
    {
        int a,b,c;
        double x1,x2;
        cout<<"Vyvedete koeficientite na kvadratno uravnenie: \na: ";
        cin>>a;
        cout<<"b: ";
        cin>>b;
        cout<<"c: ";
        cin>>c;
        cout<<endl;
        KVU(a,b,c,x1,x2);
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    
    • Данаил каза:

      Макса, не си разгледал варианта a=0. Освен това x1 и x2 не е нужно да са декларирани като параметри, защото така или иначе в главната програма не може да се прецени кой от случаите е – дали има корени въобще и колко са – един или два. Така че няма и как да се използват стойностите които връщат.

Вашият коментар