Pascal? SGK viết sai hay máy sai?

Spider_man

New member
Xu
0
Mọi người giở trang 34 sách tin học 11 ra nhé, em muốn hỏi là tại sao em gõ cái đoạn giải phương trình bậc 2 đó vào, ấn Ctrl + F9 để thực hiện chương trình thì nó cứ hiện ra:

Error 200: Division by zero (lỗi chia cho số 0)

Em đang dùng TP 7.0

Mọi người hãy giúp em giải đáp thắc mắc trên. Em xin cảm ơn
 
Em có thể gõ nguyên văn bài đó vào diễn đàn không? Hiện anh không có SGK tin học 11, nếu em không gõ vào đây được thì em gửi file Pascal ấy (vào file kèm theo) cho anh kiểm tra thử.
 
có thể do em dùng thư viện crt trong lúc bản pass của em bị thiếu thư viện này. Em thử bỏ câu khai bảo "user crt" và lệnh "clrscr" thử xem
 
Em có thể gõ nguyên văn bài đó vào diễn đàn không? Hiện anh không có SGK tin học 11, nếu em không gõ vào đây được thì em gửi file Pascal ấy (vào file kèm theo) cho anh kiểm tra thử.

Đây là nguyên văn bài đó:

program Giai_PTB2;
uses crt;
var a, b, c, D: real;
x1, x2: real;
begin
clrscr;
write ('a, b, c: ');
readln (a, b, c);
D:=b*b-4*a*c;
x1:=(-b-sqrt(D))/(2*a);
x2:=-b/a-x1;
write ('x1=', x1:6:2, 'x2=', x2:6:2);
readln
end.


có thể do em dùng thư viện crt trong lúc bản pass của em bị thiếu thư viện này. Em thử bỏ câu khai bảo "user crt" và lệnh "clrscr" thử xem

Vâng, em sẽ thử và nói kết quả sau
 
Đây là nguyên văn bài đó:

program Giai_PTB2;
uses crt;
var a, b, c, D: real;
x1, x2: real;
begin
clrscr;
write ('a, b, c: ');
readln (a, b, c);
D:=b*b-4*a*c;
x1:=(-b-sqrt(D))/(2*a);
x2:=-b/a-x1;
write ('x1=', x1:6:2, 'x2=', x2:6:2);
readln
end.
Để giải phương trình bậc 2 ta phải biện luận các hệ số a, b, c. Ở đây bài này nên biện luận như sau:
Nếu a = 0 thì
Nếu b = 0 thì
Nếu c = 0 thì
Ghi ra 'phuong trinh co vo nghiem'
Ngược lại thì ghi ra 'phuong trinh vo nghiem'
Ngược lại thì ghi ra 'phuong trinh co nghiem kep x1 = x2 = ',-c/b
Ngược lại thì
Begin
d:= b*b - 4*a*c;
Ghi ra 'phuong trinh co 2 nghiem phan biet la x1 =',(-b-sqrt(D))/(2*a),'x2 =',(-b+sqrt(D))/(2*a)
End;
End.
Viết như vậy chắc em thể hiện bằng ngôn ngữ Pascal được chứ?
Còn ở bài trên tuy chưa biết hệ số a là bao nhiêu nhưng đã cho x1:=(-b-sqrt(D))/(2*a) thì bị lỗi chia cho 0 là phải rồi.
 
Để giải phương trình bậc 2 ta phải biện luận các hệ số a, b, c. Ở đây bài này nên biện luận như sau:
Nếu a = 0 thì
Nếu b = 0 thì
Nếu c = 0 thì
Ghi ra 'phuong trinh co vo nghiem'
Ngược lại thì ghi ra 'phuong trinh vo nghiem'
Ngược lại thì ghi ra 'phuong trinh co nghiem kep x1 = x2 = ',-c/b
Ngược lại thì
Begin
d:= b*b - 4*a*c;
Ghi ra 'phuong trinh co 2 nghiem phan biet la x1 =',(-b-sqrt(D))/(2*a),'x2 =',(-b+sqrt(D))/(2*a)
End;
End.
Viết như vậy chắc em thể hiện bằng ngôn ngữ Pascal được chứ?
Còn ở bài trên tuy chưa biết hệ số a là bao nhiêu nhưng đã cho x1:=(-b-sqrt(D))/(2*a) thì bị lỗi chia cho 0 là phải rồi.

Biết lệnh nếu là if nhưng em chưa học về cái này, nên chưa thể dịch sang Pascal ý tưởng của anh được

có thể do em dùng thư viện crt trong lúc bản pass của em bị thiếu thư viện này. Em thử bỏ câu khai bảo "user crt" và lệnh "clrscr" thử xem

Anh dailuong giỏi thật đấy, em vừa bỏ 2 câu đó đi thì chương trình chạy ngon, cảm ơn anh nhiều :):):)
 
mình cũng học 11 cũng làm được bài này thấy nó chạy bình thường mà nêu bạn thấy nó hok chạy được thì thử bỏ phần khai báo thư viện đii chỉ khai báo biến thôi,
 
Hiện tại mình thấy trên mạng có một soft gì đó khắc phục được lỗi này; bạn thử search xem? Hi hi. Ví dụ:
PHP:
https://www.svgtvt.net/forum/showthread.php?1603-Khắc-phục-lỗi-Error-200-turbo-7.0
 
Sửa lần cuối bởi điều hành viên:

VnKienthuc lúc này

Không có thành viên trực tuyến.

Định hướng

Diễn đàn VnKienthuc.com là nơi thảo luận và chia sẻ về mọi kiến thức hữu ích trong học tập và cuộc sống, khởi nghiệp, kinh doanh,...
Top