• Chào mừng Bạn tham gia Diễn Đàn Kiến Thức tổng hợp No.1 VNKienThuc.com - Định hướng VN Kiến Thức
    -
    HÃY TẠO CHỦ ĐỀ KIẾN THỨC HỮU ÍCH VÀ CÙNG NHAU THẢO LUẬN

Giúp em 2 bài Pascal?

Spider_man

New member
Xu
0
Mọi người ơi, giúp em 2 bài pascal này với. 2 bài này sử dụng câu lệnh if nhưng em chưa biết làm thế nào, sau khi đã thử đi thử lại rất nhiều cách mà máy vẫn báo lỗi:

Bài 1: Nhập x từ bàn phím, tính \[y = \sqrt {z - 1} + \frac{1}{{{z^2} + 1}}\\] với:
\[z = \{ _{\frac{{\sqrt x \sin x}}{{2 + x}}(x > 0)}^{2{x^2} + 3(x < 0)}\\]

Bài 2: Nhập 2 số nguyên m, n, k. Đưa ra kết quả nếu 3 số dương thì tính bình phương của chúng, nếu 3 số âm thì tính lập phương 3 số đó.
 
program bai1;
used scr;
var x,y,z: real;
begin
clrscr;
writeln('Vui long nhap mot so');
readln(x);
if x<0 then
begin
z := 2*x*x+3;
y:=sprt(z-1)+(1)/(z*z+1);
writeln('y=',y:8:4);
end;
else
begin
z:=(sprt(x)*sin(x))/(2+x);
y:=sprt(z-1)+(1)/(z*z+1);
writeln('y=',y:8:4);
end;
readln
end.

Nói thiệt với bạn, hồi nhỏ mình rất ham chơi, lên không biết tính lập phương là gì cả, bạn có thể dựa trên cái khung phía trên để làm tiếp bài tiếp theo! Bài tiếp theo thì dễ hơn bài này!;)
 
program bai1;
used scr;
var x,y,z: real;
begin
clrscr;
writeln('Vui long nhap mot so');
readln(x);
if x<0 then
begin
z := 2*x*x+3;
y:=sprt(z-1)+(1)/(z*z+1);
writeln('y=',y:8:4);
end;
else
begin
z:=(sprt(x)*sin(x))/(2+x);
y:=sprt(z-1)+(1)/(z*z+1);
writeln('y=',y:8:4);
end;
readln
end.

Nói thiệt với bạn, hồi nhỏ mình rất ham chơi, lên không biết tính lập phương là gì cả, bạn có thể dựa trên cái khung phía trên để làm tiếp bài tiếp theo! Bài tiếp theo thì dễ hơn bài này!;)
Hình như bị lỗi dấu ";" này thôi.
 
Bài 2.
uses crt;
var m,n,k:integer;
BEGIN
clrscr;
write('Nhap m:');readln(m);
write('Nhap n:');readln(n);
write('Nhap k:');readln(k);
if (m>0) and (n>0) and (k>0) then
write('m^2=',m*m,', n^2= ',n*n,',k^2=',k*k)
else if (m<0) and (n<0) and (k<0) then
write('m^3=',m*m*m,', n^3= ',n*n*n,',k^3=',k*k*k)
else write('m=',m,',n=',n,',k=',k);

readln;
END.
 
program bai1;
used scr;var x,y,z: real;
begin
clrscr;
writeln('Vui long nhap mot so');
readln(x);
if x<0 then
begin
z := 2*x*x+3;
y:=sprt(z-1)+(1)/(z*z+1);
writeln('y=',y:8:4);
end;
else
begin
z:=(sprt(x)*sin(x))/(2+x);
y:=[COLOR=sprt(z-1)+(1)/(z*z+1);
writeln('y=',y:8:4);
end;
readln
end.

Nói thiệt với bạn, hồi nhỏ mình rất ham chơi, lên không biết tính lập phương là gì cả, bạn có thể dựa trên cái khung phía trên để làm tiếp bài tiếp theo! Bài tiếp theo thì dễ hơn bài này!;)[/QUOTE]

Em bỏ mấy dòng màu đỏ đi là được. Lỗi trên là do phần mềm pas em đang dùng không có thư viện "crt". em tìm bản khác đầy đủ hơn nha.
Lưu ý: Trong pas, trước "else" không được có dấu ";".
 
Sau khi nhập bài 1 vào máy, thử với x<0 thì máy cũng báo lỗi: 207 Invalid floating - point operation (Phép tóan với số dấu phẩy động không hợp lệ)

ps.jpg
 
Mọi người ơi, giúp em 2 bài pascal này với. 2 bài này sử dụng câu lệnh if nhưng em chưa biết làm thế nào, sau khi đã thử đi thử lại rất nhiều cách mà máy vẫn báo lỗi:

Bài 1: Nhập x từ bàn phím, tính \[y = \sqrt {z - 1} + \frac{1}{{{z^2} + 1}}\\] với:
\[z = \{ _{\frac{{\sqrt x \sin x}}{{2 + x}}(x > 0)}^{2{x^2} + 3(x < 0)}\\]

Nếu em code giống như bài của rubi thì chỉ ct không chạy được với x>0 mới đúng chứ.
Vì nếu x>0. chưa chắc z đã lớn hơn 1. vì thế sqrt(z-1) báo lỗi là đúng.
Tại cái đề này có vấn đề đó em. :D
@Bi: hàm căn bậc 2 là sqrt chứ :D anh copy về mới biết
 
Nói thiệt với bạn, hồi nhỏ mình rất ham chơi, lên không biết tính lập phương là gì cả, bạn có thể dựa trên cái khung phía trên để làm tiếp bài tiếp theo! Bài tiếp theo thì dễ hơn bài này!;)

Để tính a^b trong Pascal thì ta dùng kết hợp hai hàm có sẵn exp và ln.
Công thức tính là a^b = exp(ln(a)*b);
Bạn có thể dùng công thức này để tính cả các số mũ thực (ví dụ 2.2^5.4)
Ngoài ra, nếu b là số tự nhiên, bạn có thể dùng một vòng for để tính a^b. Cách này hạn chế, và chỉ nên dùng nếu có yêu cầu phải làm như thế.

Chương trình mẫu dùng exp và ln để tính a^b
Mã:
var a, b: real;
begin
write('a = '); readln(a);
write('b = '); readln(b);
write('a^b = ',exp(ln(a)*b):0:4); 
readln
end.
 

Chủ đề mới

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