Lập Trình C Cơ Bản: Viết 2 Hàm Giải Phương Trình Bậc 1 Và Bậc 2 Trang chủ » Viết Phương Trình Bậc 2 Trong C » Lập Trình C Cơ Bản: Viết 2 Hàm Giải Phương Trình Bậc 1 Và Bậc 2 Có thể bạn quan tâm Vi Et Phương Trình Bậc 3 Viet Phương Trình Bậc 3 Viet Phương Trình Bậc 4 Viết Phương Trình Biểu Diễn đường Is Lm Viết Phương Trình C2h2 Ra C2h4 Lập trình c cơ bản: viết 2 hàm giải phương trình bậc 1 và bậc 2 programming c phong_le_hung (Phong Le Hung) April 1, 2016, 1:11am #1 e đang làm cái phần bài tập bên hàm (function) cái cái bài tập này. viết 2 hàm giải phương trình bậc 1 và bậc 2 chương trình yêu cầu người dùng chọn lựa. Chọn 1 thì giải pt bậc 1, chọn 2 thì giải pt bậc 2. e làm tới phần xử lý còn xuất ra e hơi bí bác nào giúp em phần đó với code của e: #include <stdio.h> #include <conio.h> float ptbac1(float a, float b) { printf("nhap vao he so a : "); scanf("%f", &a); printf("nhap vao he so b : "); scanf("%f", &b); if(a == 0) { if(b == 0) printf("phuong trinh vo nghiem"); else printf("phuong trinh co mot nghiem duy nhat x = %f", -b/2*a); return 1; } return 0; } float ptbac2(float a, float b, float c) { printf("nhap vao he so a : "); scanf("%f", &a); printf("nhap vao he so b : "); scanf("%f", &b); printf("nhap vao he so c : "); scanf("%f", &c); if(a != 0) { float deta = b*b - 4*a*c; if(deta > 0) { float x1 = (-b + sqrt(deta)) / 2*a; float x2 = (-b - sqrt(deta)) / 2*a; printf("vay phuong trinh co 2 nghiem phan biet la \n"); printf("x1 = %f \n", &x1); printf("x2 = %f", & x2); } else if(deta == 0) printf("phuong trinh vo nghiem"); else printf("phuong trinh co nghiem kep x = %f", -b/2*a); return 1; } return 0; } Ta_Nh_t (phecode) April 1, 2016, 12:19am #2 Chưa hiểu ý bạn lắm.Theo mình thấy 2 hàm giải phương trình nếu đã xuất kế quả trong hàm thì không cần phải trả về kiểu float cứ để void. Phần chọn lựa thì dùng switch case hoặc if đều được 1 Like phong_le_hung (Phong Le Hung) April 1, 2016, 2:48am #3 ý e là phần xuất làm thế nào để lựa chọn 1 trong 2 ấy bác, chẳng hạn nhấn 1 là chọn pt bậc 1 còn nhấn 2 là chọn pt bậc 2 dạng như vậy ý masterq1997 (Tok1omonster) April 1, 2016, 2:51am #4 PT bậc nhất dạng : ax+b=0 đúng không?? vậy cái if đầu tiên if(a==0) nếu b!=0 thì làm sao mà x=-b/(2*a) được VD: 1/0 thì sao mà tính được 1 Like TheSky ( Ngô Doãn Tuấn) April 1, 2016, 3:04am #5 phong_le_hung: nhấn 1 là chọn pt bậc 1 còn nhấn 2 là chọn pt bậc 2 int LuaChon; do{ // Thông báo chọn 1 là chọn pt bậc 1 , nhấn 2 là chọn pt bậc 2 if(LuaChon==1) Call ptbac1(); else if(LuaChon==2) Call ptbac2(); else Thông báo nhập lựa chọn chưa đúng; } while(LuaChon<1||LuaChon>2); Không biết có phải ý bạn là như vậy không ? Mình hơi thắc mắc là tại sao lại là bạn lại để hàm ở dạng trả về float 1 Like phong_le_hung (Phong Le Hung) April 1, 2016, 4:04am #6 vì pt bậc 1 hay pt bậc 2 đều có các số thực nên mình để float để tính luôn các số thực Jobs_Apple_Steve (Jobs Apple Steve) April 1, 2016, 4:20am #7 thế bạn phải làm menu với swith chứ bạn Jobs_Apple_Steve (Jobs Apple Steve) April 1, 2016, 5:11am #8 #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { float a=0,b=0,c=0; float x=0,y=0; float d=0; int luachon=1; printf("ban muon giai phuong trinh nao vay ban\n\n"); printf("1. phuong trinh bac 2\n\n"); printf("2.phuong trinh bac 1\n\n"); scanf("%d",&luachon); switch(luachon) { case 1: printf("nhap so a :"); scanf("%f",&a); printf("nhap so b :"); scanf("%f",&b); printf("nhap so c :"); scanf("%f",&c); if(a==0&&b!=0) { x=(-c)/(b); printf("%f",x); } else if(a!=0) { d=b*b-4*a*c; if(d==0) { x=(-b)/(2*a); printf("%f",x); } else if(d>0) { x=(-b+sqrt(d))/(2*a); y=(-b-sqrt(d))/(2*a); printf("%f",x); printf("%f",y); } else { printf("phuong trinh vo nghiem\n\n"); } } break; case 2: printf("toi chua lam duoc chuong trinh nay mong ban thong cam a"); } return 0; } 2 Likes Jobs_Apple_Steve (Jobs Apple Steve) April 1, 2016, 5:12am #9 đã viết đã tét cho bạn mà mình khuyên bạn nếu bạn dùng hàm để trả về phương trình bậc 1 thì được còn nếu muốn trả về phương trình bậc 2 có lẽ bạn nên dùng con trỏ vì một hàm chỉ trả vè duy nhất một giá thôi bạn à đấy là thoe ý kiến của mình nha bạn 2 Likes Jobs_Apple_Steve (Jobs Apple Steve) April 1, 2016, 5:23am #10 @TheSky cho ý kiến cái nào like dạo à Jobs_Apple_Steve (Jobs Apple Steve) April 1, 2016, 5:38am #11 #include <stdio.h> #include <stdlib.h> #include <math.h> float bacnhat(float a,float b ); int main() { float a=0,b=0,c=0; float x=0,y=0; float d=0; float u=0,t=0; float r=0; int luachon=1; printf("ban muon giai phuong trinh nao vay ban\n\n"); printf("1. phuong trinh bac 2\n\n"); printf("2.phuong trinh bac 1\n\n"); scanf("%d",&luachon); switch(luachon) { case 1: printf("nhap so a :"); scanf("%f",&a); printf("nhap so b :"); scanf("%f",&b); printf("nhap so c :"); scanf("%f",&c); if(a==0&&b!=0) { x=(-c)/(b); printf("%f",x); } else if(a!=0) { d=b*b-4*a*c; if(d==0) { x=(-b)/(2*a); printf("%f",x); } else if(d>0) { x=(-b+sqrt(d))/(2*a); y=(-b-sqrt(d))/(2*a); printf("%f",x); printf("%f",y); } else { printf("phuong trinh vo nghiem\n\n"); } } break; case 2: printf("moi ban nhap so u nha:\n\n"); scanf("%f",&u); printf("moi ban nhap so t nha:\n\n"); scanf("%f",&t); r=bacnhat(u,t); printf("%f",r); break; } return 0; } float bacnhat(float a,float b ) { float x=0; if(a==0) { printf("phuong trinh nay vo nghiem roi nha ban"); } else if(a!=0) { x=(-b)/a; } return x; } đấy là code hoàn chỉnh của mình theo yêu cầu của bạn mình chỉ viết đươc thế này thôi mong bạn góp y s nha mà tiện thể bạn đang học ở đâu vậy mình cũng đang học c ở fpt aptech nha 1 Like phong_le_hung (Phong Le Hung) April 1, 2016, 11:19am #12 mình chỉ học online thôi ^^ và kiếm ít bài tập để bổ sung ý mà 2 Likes Jobs_Apple_Steve (Jobs Apple Steve) April 1, 2016, 11:20am #13 banj xem the co duoc khong ban minh moi hoc thoi a Jobs_Apple_Steve (Jobs Apple Steve) April 1, 2016, 11:22am #14 mong banj chỉ giáo thêm nha đoạn code của mình @phong_le_hung @TheSky like dạo à chỉ giáo đi ông 1 Like TheSky ( Ngô Doãn Tuấn) April 1, 2016, 11:28am #15 Jobs_Apple_Steve: switch(luachon) Nếu người dùng nhập vào 3 thì sao nhỉ ? Jobs_Apple_Steve: if(a==0) { printf(“phuong trinh nay vo nghiem roi nha ban”); } Vì hàm trả về kiểu float nếu phương trình vô nghiệm thì làm sao để biết. Trả về 0. Nhỡ may nghiệm = 0 thì sao ta ??? Jobs_Apple_Steve (Jobs Apple Steve) April 1, 2016, 11:29am #16 ax +b=0 nếu a mà bằng 0 thì chẳng vô nghiệm rồi TheSky ( Ngô Doãn Tuấn) April 1, 2016, 11:31am #17 b = 0 thì sao vẫn đúng mà nhỉ :3 phong_le_hung (Phong Le Hung) April 1, 2016, 11:33am #18 if(a==0) { if(b == 0) printf(“phuong trinh vo nghiem”); else printf("%d", -b/2*a); } TheSky ( Ngô Doãn Tuấn) April 1, 2016, 11:45am #19 Mình sửa lại đoạn code của bạn chút : if(a==0) { if(b == 0) printf("phuong trinh vo nghiem"); } else printf("%d", -b/2*a); Mình nghĩ thế này chứ nhỉ ? Thế này vẫn chưa đủ chặt chẽ phong_le_hung (Phong Le Hung) April 1, 2016, 11:45am #20 có gì thiếu bạn chỉ giáo thêm ^^ 1 Like next page → DayNhauHoc's Discord Học C++ Free? Click Blog Dạy Nhau Học Tự Học Lập Trình 83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao? Từ khóa » Viết Phương Trình Bậc 2 Trong C Giải Phương Trình Bậc 2 Trong C - Bài Tập C Có Lời Giải - Viettuts Giải Phương Trình Bậc Hai Trong C Cách Giải Phương Trình Bậc 2 Trong C/C++ Giải Phương Trình Bậc 2 Trong C C++ - Giải Phương Trình Bậc Hai Ax2 + Bx + C = 0 - Freetuts Lập Trình C: Giải Phương Trình Bậc 2 | V1Study Lập Trình C: Giải Phương Trình Bậc 2 Viết Chương Trình Giải Phương Trình Bậc 2 Trong C Giải Phương Trình Bậc Hai Một ẩn Trong C Viết Chương Trình Giải Phương Trình Bậc 2 Trong C C - Bài Tập 1.9: Giải Biện Luận Phương Trình Bậc 2 - YouTube Giải Và Biến Luận Phương Trình Bậc 2 C++ - Học Tốt