Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: Bài tập C | Giải pt bậc 2 sử dụng hàm

  1. #1
    Ngày gia nhập
    09 2008
    Bài viết
    0

    Mặc định Bài tập C | Giải pt bậc 2 sử dụng hàm

    cho em hỏi lỗi đoạn code của em với :
    em viết đoạn code giải pt bậc 2 theo cách thủ công thì chạy ngon nhưng bây giơ em bất đầu học về hàm,em chuyên code cũ sang viết bằng hàm thì lại hỏng ! xin các bậc đàn anh chỉ giúp

    Giải bằng hàm :
    Code:
    #include <stdio.h>
    #include <math.h>
    // Khai bao bien ham
    main()
    {
        float a, b, c, delta;
        float NhapSo (float a,float b,float c);
        float Xet_a (float a,float b,float c);
        float pt_1 (float a,float b,float c);
        float pt_2 (float a,float b,float c,float delta);
        float inKq ();
    
        return 0;
    }
    //nhap gai tri a, b, c
    float NhapSo (float a,float b, float c)
    {
    
        printf("\n Nhap gia tri cua a : ");scanf("%f",&a);
        printf("\n Nhap gia tri cua b : ");scanf("%f",&b);
        printf("\n Nhap gia tri cua c : ");scanf("%f",&c);
        return (a,b,c);
    }
    //Xet gia tri cua a
    float Xet_a (float a,float b,float c)
    {
        float delta;
        if (a==0)
        {
            printf("\n Phuong trinh tro ve dang phuong trinh bac 1");
    
        }
        else
        {
            delta = b*b-4*a*c;
        }
        return (a,b,c);
    
    }
    float pt_1(float a,float b,float c)
    {
    
        if (b==0)
        {
            if (c==0)
            {
                printf("\n Phuong trinh co vo so nghiem ");
            }
            else
            {
                printf("\n Phuong trinh vo nghiem ");
            }
        }
        else
        {
            printf("\n Nghiem cua phuong trinh x=-c/b = %f",(-c)/b);
        }
    
    }
    float pt_2 (float a,float b,float c,float delta)
    {
            printf("\n Delta=%f",delta);
            //Neu delta < 0 thi pt vo nghiem
            if (delta<0)
            {
                printf("\n Phuong trinh vo nghiem");
            }
            else
            //Neu delta = 0 thi pt co 2 nghiem kep x1=x2=-c/2*a
                if (delta==0)
                {
                    printf("\n Phuong trinh co 2 nghiem kep");
                    printf("\n x1=x2=-c/2*a = %f",-c/(2*a));
                }
                else
            //Neu delta > 0 thi pt co 2 nghiem phan biet
                    if (delta>0)
                    {
                        printf("\n Phuong trinh co 2 nghiem phan biet");
                        printf("\n x1=(-b+sqrt(d))/2*a = %f",(-b+sqrt(delta))/(2*a));
                        printf("\n x2=(b+sqrt(d))/2*a = %f",(-b-sqrt(delta))/(2*a));
                    }
    }
    Giải thủ công (chạy ngon )
    Code:
    /*Giai phunog trinh bac 2*/
    #include <stdio.h>
    #include <math.h>
    main()
    {
        float a, b, c;
        float x, d;
        //Chon gia tri a,b,c
        printf("\n Nhap gia tri cua a : ");
        scanf("%d",&a);
        printf("\n Nhap gia tri cua b : ");
        scanf("%d",&b);
        printf("\n Nhap gia tri cua c : ");
        scanf("%d",&c);
        //Neu a=0,phuong trinh thanh pt bac 1,x=-c/b
        if (a==0)
        {
            printf("\n Phuong trinh tro ve phuong trinh bac 1");
            if (b==0) //a=0,b=0
            {
                if (c==0)//a=0,b=0,c=0 <=> pt co vo so nghiem0
                {
                    printf("\n Phuong trinh co vo so nghiem");
                }
                else
                {
                    printf("\n Phuong trinh vo nghiem");
                }
            }
            else //a=0,b!=0
            {
                if (c==0) //a=0.b!=0,c=0 <=> nghiem cua phuong trinh luon = 0
                {
                    printf("\n Phuong trinh co nghiem x=0");
                }
                else //a=0,b!=0,c!=0 <=> nghiem x=-c/b
                {
                    printf("\n Nghiem cua phuong trinh la x=-c/b=%f",(-c)/b);
                }
            }
    
        }
        else
        //Neu a != 0,tinh delta
        {
            d=b*b-4*a*c;
            printf("\n Delta=%f",d);
            //Neu delta < 0 thi pt vo nghiem
            if (d<0)
            {
                printf("\n Phuong trinh vo nghiem");
            }
            else
            //Neu delta = 0 thi pt co 2 nghiem kep x1=x2=-c/2*a
                if (d==0)
                {
                    printf("\n Phuong trinh co 2 nghiem kep");
                    printf("\n x1=x2=-c/2*a = %f",-c/(2*a));
                }
                else
            //Neu delta > 0 thi pt co 2 nghiem phan biet
                    if (d>0)
                    {
                        printf("\n Phuong trinh co 2 nghiem phan biet");
                        printf("\n x1=(-b+sqrt(d))/2*a = %f",(-b+sqrt(d))/(2*a));
                        printf("\n x2=(b+sqrt(d))/2*a = %f",(-b-sqrt(d))/(2*a));
                    }
        }
            return 0;
    }

  2. #2
    Ngày gia nhập
    09 2007
    Bài viết
    724

    Chương trình bạn viết sai rất nhiều lỗi cơ bản bạn xem mình sửa lại và so sánh với bài của mình viết để biết sai chỗ nào nhé. --- Thân ---

    C Code:
    1.  
    2. #include <stdio.h>
    3. #include <math.h>
    4. // Khai bao bien ham
    5.  
    6. //nhap gai tri a, b, c
    7. float NhapSo (float &a,float &b, float &c)
    8. {
    9.  
    10.     printf("\n Nhap gia tri cua a : ");scanf("%f",&a);
    11.     printf("\n Nhap gia tri cua b : ");scanf("%f",&b);
    12.     printf("\n Nhap gia tri cua c : ");scanf("%f",&c);
    13.     return (a,b,c);
    14. }
    15. //Xet gia tri cua a
    16. float Xet_a (float a,float b,float c)
    17. {
    18.    
    19.     return b*b-4*a*c;
    20.    
    21. }
    22. void pt_1(float a,float b,float c)
    23. {
    24.  
    25.     if (b==0)
    26.     {
    27.         if (c==0)
    28.         {
    29.             printf("\n Phuong trinh co vo so nghiem ");
    30.         }
    31.         else
    32.         {
    33.             printf("\n Phuong trinh vo nghiem ");
    34.         }
    35.     }
    36.     else
    37.     {
    38.         printf("\n Nghiem cua phuong trinh x=-c/b = %f",(-c)/b);
    39.     }
    40.  
    41. }
    42. void pt_2 (float a,float b,float c,float delta)
    43. {
    44.         printf("\n Delta=%f",delta);
    45.         //Neu delta < 0 thi pt vo nghiem
    46.         if (delta<0)
    47.         {
    48.             printf("\n Phuong trinh vo nghiem");
    49.         }
    50.         else
    51.         //Neu delta = 0 thi pt co 2 nghiem kep x1=x2=-c/2*a
    52.             if (delta==0)
    53.             {
    54.                 printf("\n Phuong trinh co 2 nghiem kep");
    55.                 printf("\n x1=x2=-c/2*a = %f",-c/(2*a));
    56.             }
    57.             else
    58.         //Neu delta > 0 thi pt co 2 nghiem phan biet
    59.                 if (delta>0)
    60.                 {
    61.                     printf("\n Phuong trinh co 2 nghiem phan biet");
    62.                     printf("\n x1=(-b+sqrt(d))/2*a = %f",(-b+sqrt(delta))/(2*a));
    63.                     printf("\n x2=(b+sqrt(d))/2*a = %f",(-b-sqrt(delta))/(2*a));
    64.                 }
    65. }
    66.  
    67. int main()
    68. {
    69.     float a, b, c, delta;
    70.     NhapSo (a,b,c);
    71.     delta = Xet_a (a, b, c);
    72.     if(a == 0)
    73.         pt_1 (a,b,c);
    74.     else
    75.         pt_2 (a,b,c,delta);
    76. //    inKq (); hàm này viết ở đâu nhỉ :D
    77.  
    78.     return 0;
    79. }


    chúc bạn thành công

  3. #3
    Ngày gia nhập
    09 2008
    Bài viết
    0

    mình mới học Hàm mà !
    thank bạn ! mình cũng đang tìm chỗ in

  4. #4
    No Avatar
    Mr.Kjng Khách

    Ý các anh cho em hỏi tại sao các biến này là tham chiếu.
    float NhapSo (float &a,float &b, float &c)
    Thế đề của em như thế này thì làm thế nào.
    lập hàm giải phương trình bậc 2
    int bachai(foat a,foat b,foat c,foat *x1,foat *x2)
    -hàm nhận giá trị 0 nếu PT vô nghiệm
    -hàm nhận giá trị 1 nếu PTcó nghiệm kép
    -hàm nhận giá trị 2 nếu PT có 2 nghiệm phân biệt
    -hàm nhận giá trị 3 nếu PT vô số nghiệm

    Em mới học nên chưa định hình được cái tham chiếu.Nó hơi trừu tượng.Mong các anh giúp

  5. #5
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Trích dẫn Nguyên bản được gửi bởi Mr.Kjng Xem bài viết
    Ý các anh cho em hỏi tại sao các biến này là tham chiếu.

    Thế đề của em như thế này thì làm thế nào.
    lập hàm giải phương trình bậc 2
    int bachai(foat a,foat b,foat c,foat *x1,foat *x2)
    -hàm nhận giá trị 0 nếu PT vô nghiệm
    -hàm nhận giá trị 1 nếu PTcó nghiệm kép
    -hàm nhận giá trị 2 nếu PT có 2 nghiệm phân biệt
    -hàm nhận giá trị 3 nếu PT vô số nghiệm

    Em mới học nên chưa định hình được cái tham chiếu.Nó hơi trừu tượng.Mong các anh giúp
    Bình thường, các giá trị tham số truyền vào: float a, float b cho vào hàm nhưng khi ra chương trình chính, giá trị không thay đổi

    C++ Code:
    1. main()
    2. {
    3.    a = 4;
    4.    func(a);
    5.    => a vẫn có giá trị là 4
    6. }
    7. func(type c)
    8. {
    9.    c = 1;  << truyền a vào thì trong phạm vi hàm này, a có giá trị là 1
    10. }

    Tức là cái func(a) chả có ảnh hưởng gì tới a hết.

    Bây giờ muốn cho thằng a vào hàm mà sau đó chỉnh sửa, giá trị của a cũng được thay đổi.

    C++ Code:
    1. main()
    2. {
    3.    a = 4;
    4.    func(a);
    5.    => a đã bị chỉnh sửa và mang giá trị: a = 1;
    6. }
    7. func(type& c)  <--- tham chiếu
    8. {
    9.    c = 1;  << a đến đây có giá trị là 1
    10. }

    Cái này mà không hiểu được thì thôi, nghỉ khỏe luôn..
    None!

  6. #6
    No Avatar
    Mr.Kjng Khách

    Mặc định Bài tập C | Giải pt bậc 2 sử dụng hàm

    Em đang học C mà.Sao anh cho code C++...

  7. #7
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Trích dẫn Nguyên bản được gửi bởi Mr.Kjng Xem bài viết
    Em đang học C mà.Sao anh cho code C++...
    chỗ nào gọi là C với C++
    None!

  8. #8
    No Avatar
    Mr.Kjng Khách

    -Ý thế cái tên code của Anh chẳng ghi là C++ à.Chẳng nhẽ em nhìn nhầm chăng.
    -Anh có thể gợi ý cái bài của em với
    int bachai(foat a,foat b,foat c,foat *x1,foat *x2)
    -hàm nhận giá trị 0 nếu PT vô nghiệm
    -hàm nhận giá trị 1 nếu PTcó nghiệm kép
    -hàm nhận giá trị 2 nếu PT có 2 nghiệm phân biệt
    -hàm nhận giá trị 3 nếu PT vô số nghiệm

Các đề tài tương tự

  1. Cung cấp giấy ik plus, Paper One, Plus A+, Double A, Giấy Thái Lan, Giấy Bãi Bằng, bìa màu, băng dính, mica các loại
    Gửi bởi dungptvietthanh trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 07-06-2013, 04:05 PM
  2. Chung cư Đại Thanh giảm sốc 10tr/vnđ cho các căn hộ. giảm và liên tục giảm…!!
    Gửi bởi lanthanh91 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 09-10-2012, 10:27 AM
  3. Trả lời: 0
    Bài viết cuối: 06-08-2012, 07:01 PM
  4. Trả lời: 0
    Bài viết cuối: 04-08-2012, 03:08 PM
  5. Trả lời: 0
    Bài viết cuối: 24-05-2012, 04:04 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn