Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 11 kết quả

Đề tài: Giải hệ phương trình bậc nhất 2 ẩn?

  1. #1
    Ngày gia nhập
    10 2011
    Bài viết
    25

    Mặc định Giải hệ phương trình bậc nhất 2 ẩn?

    Xin chào mọi người. Mình là thành viên mới của diễn đàn cộng đồng C Việt, mong được mọi người giúp đỡ.
    Mình mới làm quen với ngôn ngữ C và mình có thử viết 1 chương trình để giải hệ phương trình 2 ẩn như sau:

    Code:
    #include <stdio.h>
    #include <conio.h>
    
    void main()
    {
    float a[4],b[2];
    float D,Dx,Dy,Dz,Dt,x,y;
    int rA,rB;
    printf("\nGiai he phuong trinh bac nhat 2 an");
    printf("\n");
    printf ("\n Nhap he so a1: ");
    scanf("%f", &a[0]);
    printf ("\n Nhap he so b1: ");
    scanf("%f", &a[1]);
    printf ("\n Nhap he so c1: ");
    scanf("%f", &b[0]);
    printf ("\n Nhap he so a2: ");
    scanf("%f", &a[2]);
    printf ("\n Nhap he so b2: ");
    scanf("%f", &a[3]);
    printf ("\n Nhap he so c2: ");
    scanf("%f", &b[1]);
    D=((a[0]*a[3])-(a[1]*a[2]));
    Dx=((b[0]*a[3])-(b[1]*a[1]));
    Dy=((a[0]*b[1])-(a[2]*b[0]));
    Dz=((a[0]*b[1])-(a[2]*b[0]));
    Dt=((a[1]*b[1])-(a[3]*b[1]));
    if (D==0) rA=1;
    else rA=2;
    if((Dz==0)&&(Dt==0)) rB=1;
    else rB=2;
    if((rA==1)&&(rB==1)) printf("\nHe phuong trinh co vo so nghiem")
    &&printf("\n");
    else if ((rA==1)&&(rB==2)) printf("\nHe phuong trinh vo nghiem")
    &&printf("\n");
    else ((x=Dx/D)&&(y=Dy/D))
    &&printf("\nNghiem cua he phuong trinh la: ")
    &&printf("\n")
    &&printf("\nx = %f\ny = %f\n ", x, y)
    &&printf("\n");
    printf("\nPress any key to exit...");
    getch();	
    }
    Khi mình nhập a1,b1,c1,a2,b2,c2 theo thứ tự:1;2;3;1;2;3 thì kết quả được đưa ra là: "he phuong trinh co vo so nghiem". Nhung khi mình nhập a1,b1,c1,a2,b2,c2 là:1;2;3;2;4;6 thì kết quả lại là: "he phuong trinh vo nghiem" (2 hệ phương trình đó là 1 mà?). Vậy mình sai ở đâu? Xin mọi người chỉ giúp mình với. Thank's mọi người rất nhìu.
    -P/s: Mình viết trên Dev C++.
    Đã được chỉnh sửa lần cuối bởi scopion93 : 17-10-2011 lúc 09:01 AM.

  2. #2
    Ngày gia nhập
    10 2011
    Bài viết
    0

    Chào bạn!
    Code của bạn hơi rắc rối do cách đặt tên và giải thuật kiểm tra của bạn! Kết quả sai là do đoạn code kiểm tra của bạn sai. Mình không hiểu 2 dòng code tính:
    Dz=((a[0]*b[1])-(a[2]*b[0]));
    Dt=((a[1]*b[1])-(a[3]*b[1]));
    Theo công thức giải hệ phương trình bằng định thức thì không cần tính 2 giá trị này: vì vậy đoạn code:
    "Dz=((a[0]*b[1])-(a[2]*b[0]));
    Dt=((a[1]*b[1])-(a[3]*b[1]));
    if (D==0) rA=1;
    else rA=2;
    if((Dz==0)&&(Dt==0)) rB=1;
    else rB=2;
    if((rA==1)&&(rB==1)) printf("\nHe phuong trinh co vo so nghiem")
    &&printf("\n");
    else if ((rA==1)&&(rB==2)) printf("\nHe phuong trinh vo nghiem")"
    của bạn mình sửa thành:

    if (D==0) rA=1;
    else rA=2;
    if((Dx==0)&&(Dy==0)) rB=1;
    else rB=2;
    if((rA==1)&&(rB==1)) printf("\nHe phuong trinh co vo so nghiem")
    &&printf("\n");
    else if ((rA==1)&&(rB==2)) printf("\nHe phuong trinh vo nghiem")
    &&printf("\n");

    Bỏ đoạn code tính Dz và Dt, thay đoạn cde kiểm tra Dz,Dt bằng kiểm tra Dx,Dy là ok!

  3. #3
    Ngày gia nhập
    10 2011
    Bài viết
    25

    Uh nhỉ. Hỳ. Bạn nói mình mới nghĩ ra là Dx,Dy <=> Dt,Dz.
    Mình sẽ thử xem sao. Thank's bạn nhìu.
    Đã được chỉnh sửa lần cuối bởi scopion93 : 17-10-2011 lúc 11:33 AM.

  4. #4
    Ngày gia nhập
    11 2011
    Bài viết
    14

    Mọi người cho em hỏi cái code trên. rA. rB nghĩa là gì. nó có tác dụng như thế nào ??

  5. #5
    Ngày gia nhập
    01 2011
    Bài viết
    0

    Trích dẫn Nguyên bản được gửi bởi M.W Xem bài viết
    Mọi người cho em hỏi cái code trên. rA. rB nghĩa là gì. nó có tác dụng như thế nào ??
    Mình không học cái này nhưng mình nghĩ nó chỉ là (return) trả ra kết quả khi thỏa mãn điều kiện thui mà.

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

    Mặc định Giải hệ phương trình bậc nhất 2 ẩn?

    Mình nghĩ đoạn code nên làm thế này dễ nhìn hơn:
    float a1,a2,b1,b2,c1,c2,D,Dx,Dy,x,y;
    int i;
    printf("\nXin hay nhap gia tri a1= ") ; scanf("%f",&a1);
    printf("\nXin hay nhap gia tri b1= ") ; scanf("%f",&b1);
    printf("\nXin hay nhap gia tri c1= ") ; scanf("%f",&c1);
    printf("\nXin hay nhap gia tri a2= ") ; scanf("%f",&a2);
    printf("\nXin hay nhap gia tri b2= ") ; scanf("%f",&b2);
    printf("\nXin hay nhap gia tri c2= ") ; scanf("%f",&c2);
    if((a1*a1)+(b1*b1)!=0 && (a2*a2)+(b2*b2)!=0)
    {
    D=a1*b2-a2*b1;
    Dx=c1*b2-c2*b1;
    Dy=a1*c2-a2*c1;
    if(D!=0) printf("\nphuong trinh co nghiem duy nhat trong do: x= %3.2f va y= %3.2f",Dx/D,Dy/D);
    if(D==0)
    {
    if(Dx!=0 && Dy!=0) printf("\nPhuong trinh vo nghiem");
    else if(Dx==0 && Dy==0) printf("\nPhuong trinh vo so nghiem");
    }
    }

    còn rA,rB chi là để đặt tên các trường học của D, Dx, Dy thui

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

    )t)t)t)t)t)t)t)t)t)t)t)t

  8. #8
    Ngày gia nhập
    01 2016
    Bài viết
    0

    bạn ơi, nếu đề bài ra 1 hệ phương trình bao gồm a1x + b1y=c1 và a2x + b2y = c2 thì phải làm như nào vậy?
    Ngọt Ngào

  9. #9
    Ngày gia nhập
    11 2013
    Bài viết
    61

    rA và rB ở đây có lẽ bạn đó định viết tắt của rank(A) và rank(B) đây là kí hiệu hạng ma trận. <trong trường hợp bài này chẳng cần quan tâm>
    ngoài ra bài trên #6 mình ko biết cái th mà a1=b1=0 đâu ròi.
    đây là 1 vài ý kiến của mình để các bạn bổ xung thêm

  10. #10
    Ngày gia nhập
    01 2016
    Bài viết
    0

    bạn giúp mình cái đề bài kia với
    hệ phương trình bao gồm a1x + b1y=c1 và a2x + b2y = c2 thì phải làm như nào vậy?
    Ngọt Ngào

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

  1. Bí Quyết Giảm béo an toàn nhất, Giảm cân hiệu quả nhất thế giới
    Gửi bởi myvietbrand trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 1
    Bài viết cuối: 30-09-2012, 01:31 AM
  2. Trả lời: 0
    Bài viết cuối: 04-08-2012, 03:08 PM
  3. Trả lời: 0
    Bài viết cuối: 04-08-2012, 03:03 PM
  4. Trả lời: 0
    Bài viết cuối: 04-08-2012, 02:54 PM
  5. Trả lời: 0
    Bài viết cuối: 04-08-2012, 02:40 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