30/09/2018, 16:33

Chương trình giả lập máy tính casio fx bằng C++

Tình hình là em có cái đề BT như sau, các anh chị giúp em phần từ 6,7,8,9 với ạ
Xây dựng ứng dụng mô phỏng máy tính bỏ túi Casio với các chức năng chính như sau:

  1. Tính n! (n nguyên dương).
  2. Giải phương trình:
tuan viết 18:41 ngày 30/09/2018

bài 6 :

 #include <stdio.h>
    #include <math.h>
    void main()
    {
    float a, b, c, delta;
     
    printf("\nGiai phuong trinh bac hai AXý + BX + C = 0");
    printf("\nCho biet ba he so A B C : ");
    scanf("%f%f%f", &a, &b, &c);
     
    delta = b * b - 4 * a * c;
    if (delta<0)
    printf("Phuong trinh vo nghiem");
    else if (delta == 0)
    printf("Phuong trinh co nghiem kep x1 = x2 = %f", -b/(2*a));
    else
    {
    printf("Phuong trinh co hai nghiem phan biet\nx1 = %f", (-b + sqrt(delta))/(2*a));
    printf("\nx2 = %f", (-b - sqrt(delta))/(2*a));
    }
    
 }

Mình code = C bạn edit lại = C++ đi

Lương Nhật Duy viết 18:36 ngày 30/09/2018

Tks, bạn, nhưng câu 6 là , HỆ phương trình 2 ẩn chứ không phải cái pt bậc 2

Lương Nhật Duy viết 18:44 ngày 30/09/2018

uhm dạng vậy đó còn câu kế là dạng 3 ẩn

tuan viết 18:46 ngày 30/09/2018

Tks, bạn, nhưng câu 6 là , HỆ phương trình 2 ẩn chứ không phải cái pt bậc 2

Edit lại đề bài : Giải phương trình bậc nhất 2 ẩn chứ không phải Giải hệ phương trình bậc 2 ( 2 cái khác nhau nhé)

Lương Nhật Duy viết 18:47 ngày 30/09/2018

Lâu quá không đụng vào nó nên quên tks bro

nhatlonggunz viết 18:48 ngày 30/09/2018

Hơi dài, nhưng anh có thể tham khảo, em mới lớp 9 nên chỉ có bấy nhiêu trường hợp này thôi (a, b hay c = 0, delta < 0, …), em code = C, nhưng toàn code cơ bản nên chắc C++ vẫn đc (Visual của em code C++ xài printf vẫn chạy)

void SpecialCases(float a, float b, float c)
{
    float g1, g2;
    if(a + b + c == 0) {
        g1 = 1;
        g2 = c/a;
        printf("x1 = %.2f\n", g1);
        printf("x2 = %.2f\n", g2);
    }
    if(a - b + c == 0) {
        g1 = -1;
        g2 = -c/a;
        printf("\nx1 = %.2f\n", g1);
        printf("\nx2 = %.2f\n", g2);
    }
}

void aEqual0(float a, float b) // when a = 0
{
    float t;
    if(a == 0) {
        if(b == 0)
            printf("x in R\n");
        else
            printf("x in empty\n");
    } else {
        t = -b/a;
        printf("x = %.1f\n", t);
    }
}

void bEqual0(float a, float b, float c) // When b = 0
{
    float x1, x2;
    if(c/b <= 0) {
        x1 = sqrt(-c/a);
        x2 = -sqrt(-c/a);
        printf("x1 = %.2f\n", x1);
        printf("\nx2 = %.2f\n", x2);
    } else
        printf("x in empty\n");
}

void cEqual0(float a, float b)// when c = 0
{
    float y1, y2;
    y1 = 0;
    y2 = -b/a;
    printf("x1 = %.2f\n", y1);
    printf("\nx2 = %.2f\n", y2);
}

void FullEquation(float a, float b, float c)
{
    float delta, z1, z2;
    delta = pow(b, 2) - (4 * a * c);
    if(delta < 0)
        printf("x in empty\n");
    if(delta == 0) {
        z1 = -b/(2*a);
        printf("x1 = x2 = %.2f\n", z1);
    }
    if(delta > 0) {
        printf("equation has 2 roots\n");
        z1 = (-b - sqrt(delta))/(2 * a);
        z2 = (-b + sqrt(delta))/(2 * a);
        printf("x1 = %.2f\n", z1);
        printf("x2 = %.2f\n", z2);
    }
}

void SecondEquationSolve(float a, float b, float c)
{
    if(a + b + c == 0|| a - b + c == 0)
        {
        SpecialCases(a, b, c);

    }
    else if(a == 0) {
        aEqual0(b, c);

    }
    else if(b == 0) {
        bEqual0(a, b, c);

    }
    else if(c == 0) {
        cEqual0(a, b);

    }else
        FullEquation(a, b, c);
}


void SecondEquation()
{
    float a, b, c;
    printf("Input a, b and c\n");
    // Input a
    printf("a = ");
    scanf("%f", &a);
    // Input b
    printf("b = ");
    scanf("%f", &b);
    // Input c
    printf("c = ");
    scanf("%f", &c);
    // Solve
    SecondEquationSolve(a, b, c);
}

void FirstEquation()
{
    float a, b;
    //Input
    printf("Input a, b\n");
    //Input a
    printf("a = ");
    scanf("%f", &a);
    //Input b
    printf("b = ");
    scanf("%f", &b);
    aEqual0(a, b);
}
Minh Hoàng viết 18:42 ngày 30/09/2018

Đối với bài giải phương trình bậc 3 thì bạn cần viết một hàm tìm nghiệm trong 1 khoảng cho trước từ đó bạn chia các trường hợp dựa vào đạo hàm và chia khoảng ra. Sau đó, áp dụng hàm để giải thôi.
Hàm tìm nghiệm trong khoảng bạn có thể google

Izumo Satoh 出雲 佐藤 viết 18:43 ngày 30/09/2018

em viết thành công rồi này

Izumo Satoh 出雲 佐藤 viết 18:39 ngày 30/09/2018

Nếu bạn muốn code phương trình bậc ba thì để lại gmail lại (code C#WDF) tại code mình dài không dán vào đây được

Bài liên quan
0