Tin Mới

loading...

Giải phương trình bậc hai ngắn gọn nhất


Chào các bạn, hôm nay mình sẽ hướng dẫn cách để viết chương trình giải phương trình bậc hai. Đây là một chương trình cơ bản, ở môn toán cấp 2 cũng đã giúp ta có được thuật toán để giải bài này.

Thuật toán : Phương trình bậc 2 có dạng :
Như ta đã biết cách giải thuần túy nhất của phương trình bậc 2 này là sử dụ Delta (Đen ta).
Đầu tiên ta xác định các biến cần gọi để mà khai báo, đó là :
- a,b,c lần lượt là các hệ số
- x1, x2 lần lượt là các nghiệm của phương trình
- d là delta
Tất cả chúng tôi điều để ở kiểu real (kiểu số thực)
Trong bài này, chúng ta nhập lần lượt các hệ số cũng được, nhưng ở đây tôi nhập 1 lúc 3 hệ số và đòi hỏi phải sử dụng đến REPEAT .... UNTIL để đặt điều kiện là a luôn khác 0 (vì nếu a = không thì nó trở về phương trình bình thường rồi).

REPEAT
     write('Nhap cac he so a, b, c: ');
     readln(a,b,c);
UNTIL a<>0;

Sau đó thì ta tiếp tục gán giá trị delta theo công thức (Bê bình trừ bốn a xê)


d:=sqr(b)-4*a*c;
Phần còn lại ta chỉ việc kiểm tra điều kiện như học toán vậy,
- Nếu delta < 0 thì phương trình vỡ nợ
- Nếu delta > 0 thì có 2 nghiệm trai gái
- Nếu delta = 0 thì sinh đôi
Trước tiên ta sẽ kiểm tra delta < 0 ???
Sau đó ta mới kiểm tra trường hợp ngược lại, trong trường hợp ngược lại nó đã bao gồm cả > và  =. Để thuận tiện ta sử dụng chương trình con được kẹp bởi BEGIN .... END; nhớ là ; nha.


IF d<0 THEN write('Phuong trinh vo nghiem!')
ELSE
BEGIN
     x1:=(-b-sqrt(d))/(2*a);
     x2:=(-b+sqrt(d))/(2*a);
     IF d=0 THEN writeln('Phuong trinh co nghiem kep x = ',x1:5:1)
     ELSE writeln('Phuong trinh co 2 nghiem phan biet: ',x1:5:1,x2:5:1);
END;
Vậy là xong, ta có một chương trình hoàn thiện như sau


PROGRAM ptb2;
USES crt;
VAR a,b,c,x1,x2,d:REAL;
BEGIN
    clrscr;

    REPEAT
     write('Nhap cac he so a, b, c: ');
     readln(a,b,c);
    UNTIL a<>0;

    d:=sqr(b)-4*a*c; 
    
    IF d<0 THEN write('Phuong trinh vo nghiem!')
ELSE
BEGIN
     x1:=(-b-sqrt(d))/(2*a);
     x2:=(-b+sqrt(d))/(2*a);
     IF d=0 THEN writeln('Phuong trinh co nghiem kep x = ',x1:5:1)
     ELSE writeln('Phuong trinh co 2 nghiem phan biet: ',x1:5:1,x2:5:1);
END;
readln;
END.
Like Fanpage Thích Học Pascal để cập nhật các bài viết mới nhất mỗi ngày OK Để sau