Đề bài : Viết chương trình giải phương trình ax+b=0

Thông thường để giải phương trình ax+b=0, làm như sau :
Ta có : ax+b=0 =>ax = -b
  1. a != 0 => PT có nghiệm duy nhất x= -b/a
  2. a = 0 => PT sẽ có dạng 0.x=b
  1. Nếu b !=0 => PT vô nghiệm, xét hai trường hợp :
  2. Nếu b = 0 => PT có vô số nghiệm
Bài giải :
Mã:
Program GIAI_PHUONG_TRINH_BAC_NHAT;
Uses crt;
Var a,b,x: real;
BEGIN
Clrscr;
Writeln('GIAI PHUONG TRINH BAC NHAT: AX + B=0');
Writeln('------------------------------------------------------------');
Writeln(‘Nhap a = ‘); readln(a);
Writeln(‘Nhap b= ‘); readln(b);
If a=0 then
If(b=0) then Writeln(' Phuong trinh co vo so nghiem')
Else writeln(' Phuong tring vo nghiem')
Else Writeln('Phuong trinh co nghiem x=',-b/a: 4: 2);
Readln;
END.
Hướng dẫn chi tiết :
Với bài tập này, ta sẽ cần tạo ra 3 biến gồm :
  • a : hệ số a (do người dùng nhập)
  • b : hệ số b (do người dùng nhập)
  • x : nghiệm của phương trình, sẽ có sau khi thực hiện xong chương trình.
Biến này sẽ có kiểu là real, tức là kiểu số thực.
Mã:
Program GIAI_PHUONG_TRINH_BAC_NHAT;
Uses crt;
Var a,b,x: real; {Khai báo các biến }
“Có lạc rồi sẽ có rượu” ( clrscr ) sẽ giúp xóa cache trước khi bắt đầu chương trình của chúng ta.
Như đã nói cách giải ở bên trên, ta sẽ lần lượt xét các điều kiện như sau :
- Nếu a khác 0 thì phương trình có nghiệm x=-b/a(âm b phần a)
- Nếu a = 0 và b = 0 thì phương trình có vô số nghiệm
- Nếu a = 0 và b khác 0 thì phương trình vô nghiệm
Đoạn code dưới đây mình đảo ngược lại so với đoạn mẫu ở phần bài giải 1 chút, bạn dùng cái nào cũng OK nha :
Mã:
BEGIN
Clrsrc;
Writeln(‘Giai Phuong trinh bac nhat ax+b=0’);
Writeln(‘Nhap a =’); readln(a);
Writeln(‘Nhap b=’); readln(b);
If (a<>0) then writeln (‘Phuong trinh co Nghiem x =’, -b/a: 4: 2)
Else if (a=0 and b!=0) then writeln(‘Phuong trinh co vo so nghiem’)
Else writeln(‘Phuong trinh da cho vo nghiem’);
Readln;
END.
Với bài này thì ta có rất nhiều cách để viết với lệnh If Else, tùy thói quen và sở thích của mỗi người mà có cách viết khác . Chúc các bạn học tốt