1. THÔNG BÁO TUYỂN ADMIN DIỄN ĐÀN 2013
    Tìm kiếm nhà trọ - Ở ghép
    THÔNG BÁO BÁN ÁO SPKT.NET CHO THÀNH VIÊN DIỄN ĐÀN


    HÃY TÌM KIẾM Ở ĐÂY TRƯỚC KHI ĐẶT CÂU HỎI
    {xen:phrase loading}

Giải phương trình bậc 3

Thảo luận trong 'C/C++' bắt đầu bởi Dê con, 27 Tháng mười hai 2009.

  1. Dê con New Member

    Số bài viết: 1,272
    Đã được thích: 1
    Điểm thành tích: 0
    // ptb333.cpp : Defines the entry point for the console application.
    //

    #include "stdafx.h"
    #include <math.h>
    #include <stdlib.h>
    #include <string.h>
    #include <conio.h>
    #define pi 3.1416

    void main(void)
    {
    double a,b,b1,c1,d1,c,d,X,X1,X2,X3,q,p,x,x1,x2,x3,delta,G,k,m,n;
    printf("nhap A\n");scanf("%lf",&a);_flushall();
    printf("nhap B\n");scanf("%lf",&b);_flushall();
    printf("nhap C\n");scanf("%lf",&c);_flushall();
    printf("nhap D\n");scanf("%lf",&d);_flushall();
    if(a==0.0){
    if(b==0.0)
    if(c==0.0){
    if(d==0.0)
    printf("phuong trinh bac 2 vo so nghiem");
    else
    printf("phuong trinh vo nghiem");
    }
    else{
    x1=-d/c;
    printf("phuong trinh co mot nghiem x=%2f",x1);
    }
    else{
    delta=c*c-4*b*d;
    if (delta<0)
    printf("pt b2 vo nghiem");
    else{
    x1=(-c+sqrt(delta))/(2*b);
    x2=(-c-sqrt(delta))/(2*b);
    printf("pt co 2 nghiem x1=%0.2f,\n x2=%0.2f",x1,x2);
    }
    }
    }
    else
    { b1=b/a;
    c1=c/a;
    d1=d/a;
    a=1;
    p=c1-(b1*b1)/3;
    q=d1+(2*b1*b1*b1)/27-(b1*c1)/3;
    delta=(q*q)+(4*p*p*p)/27;
    if (delta >0)
    {
    X=pow((-q+sqrt(delta))/2,(1.0/3))+ pow((-q-sqrt(delta))/2,(1.0/3));
    x=X-(b1/3);
    printf("phuong trinh co mot nghiem thuc %lf",x);
    }
    else if(delta<0) {

    n=(3*p*sqrt(double(3)))/(p*sqrt(double(-4*p)));
    G=acos((double) n*(pi/180));
    X1=sqrt((-4*p)/3)*cos(G/3);
    x1=X1-b1/3;
    X2=sqrt((-4*p)/3)*cos((G+2*pi)/3);
    x2=X2-b1/3;
    X3=sqrt((-4*p)/3)*cos((G+4*pi)/3);
    x3=X3-b1/3;
    printf("phuong trinh co ba nghim phan biet %lf\n %lf\n %lf\n ",x1,x2,x3);
    }
    else {
    n=(3*p*sqrt(double(3)))/(p*sqrt(double(-4*p)));
    G= acos((double)n*(pi/180));
    k=(G/3);m=(G+2*pi)/3;
    X1=(sqrt((-4*p)/3))*cos(k);
    x1=X1-b1/3;
    X2=(sqrt((-4*p)/3))*cos(m);
    x2=X2-b1/3;
    printf ("phuong trinh co mot nghiem don %lf \n",x1);
    printf ("phuong trinh co mot nghiem kep %lf \n",x2);
    }
    printf("\n");

    _getch();
    return;
    }

    }
  2. spkt_099100 Member

    Số bài viết: 949
    Đã được thích: 0
    Điểm thành tích: 16
  3. spkt_099100 Member

    Số bài viết: 949
    Đã được thích: 0
    Điểm thành tích: 16

Chia sẻ trang này