pascal,help me!
#1
Đã gửi 27-10-2009 - 15:58
$S=1-\dfrac{ x^{2} }{2!}+\dfrac{ x^{4} }{4!}-...+ (-1)^{n}\dfrac{ x^{2n} }{(2n)!}$
2.Viết các lệnh của pascal để diễn tả thuật toán sau:
Khi n>1 thì lặp công việc sau:
Nếu n chia hết cho u thì thực hiện các việc:
+)Viết ra màn hình giá trị của u
+)n gán bằng (n div u)
Ngược lại thì tăng u lên 1 đơn vị.
Thanks nhiều.
#2
Đã gửi 27-10-2009 - 18:38
éc1.Dùng câu lệnh lặp tính
$S=1-\dfrac{ x^{2} }{2!}+\dfrac{ x^{4} }{4!}-...+ (-1)^{n}\dfrac{ x^{2n} }{(2n)!}$
2.Viết các lệnh của pascal để diễn tả thuật toán sau:
Khi n>1 thì lặp công việc sau:
Nếu n chia hết cho u thì thực hiện các việc:
+)Viết ra màn hình giá trị của u
+)n gán bằng (n div u)
Ngược lại thì tăng u lên 1 đơn vị.
Thanks nhiều.
mình nói cho bạn hướng giải rồi khi nào rảnh up luôn bài giải(chắc là cuối tuần)
1) Đầu tiền; Làm function giai thừa và mũ;
Mà cái này là x và n nhập từ bàn phím nữa chứ;
Nhập x và n;
for i:=1 to n do
s:=1+((-1)^n*{gọi tên function mũ)x^2n)/{gọi tên function giai thừa)
write ra;
2) xét If n >1 then
if n/u=0 then Write(u);
n:=n div u
else inc(u);
else exit;{cái này là nếu n<1)
#3
Đã gửi 27-10-2009 - 22:18
Bạn nói rõ cho mình cái mẫu của biểu thức được không.Nói chung là mối quan hệ giữa mẫu số số hạng sau với mẫu số số hạng trước.Với lại câu 2 phải lặp mà.éc
mình nói cho bạn hướng giải r�#8220;i khi nào rảnh up luôn bài giải(chắc là cuối tuần)
1) Đầu tiền; Làm function giai thừa và mũ;
Mà cái này là x và n nhập từ bàn phím nữa chứ;
Nhập x và n;
for i:=1 to n do
s:=1+((-1)^n*{gọi tên function mũ)x^2n)/{gọi tên function giai thừa)
write ra;
2) xét If n >1 then
if n/u=0 then Write(u);
n:=n div u
else inc(u);
else exit;{cái này là nếu n<1)
Bài viết đã được chỉnh sửa nội dung bởi phuongpro: 27-10-2009 - 22:25
#4
Đã gửi 27-10-2009 - 23:32
phuongpro thử làm theo hướng này nhé : Sử dụng biến P để lưu số hạng thứ i+1 của vế phải, khởi tạo bằng 1, trong thân vòng lặp tính P rồi cộng ngay vào S, chẳng hạn :
P := (-1)*x*x/(2*i+1)/(2*i+2)*P; S := S+P;Bài 2 theo anh nên có thêm một phép so sánh u với $\sqrt{n}$. Em hiểu ý tưởng của thuật toán là gì không ?
Bài viết đã được chỉnh sửa nội dung bởi Merlyn: 27-10-2009 - 23:41
#5
Đã gửi 28-10-2009 - 06:36
Hiểu na ná thì hình như là tím số nhỏ nhất lớn hơn u để n chia hết cho u.Bài 1 nếu để ý sẽ thấy các số hạng của vế phải có thể viết dưới dạng đệ quy $P_{n+1} = (-1)\dfrac{x^2}{(2n+1)(2n+2)}P_n$. Vì vậy không cần thiết phải xây dựng hàm tính giai thừa và mũ, hơn nữa nếu làm thế thì độ phức tạp sẽ tăng đáng kể, việc gọi đi gọi lại các hàm nhiều lần rất dễ gây tràn stack.
phuongpro thử làm theo hướng này nhé : Sử dụng biến P để lưu số hạng thứ i+1 của vế phải, khởi tạo bằng 1, trong thân vòng lặp tính P rồi cộng ngay vào S, chẳng hạn :P := (-1)*x*x/(2*i+1)/(2*i+2)*P; S := S+P;Bài 2 theo anh nên có thêm một phép so sánh u với $\sqrt{n}$. Em hiểu ý tưởng của thuật toán là gì không ?
#6
Đã gửi 28-10-2009 - 13:01
làm thủ tục cũng dễ thôi màBài 1 nếu để ý sẽ thấy các số hạng của vế phải có thể viết dưới dạng đệ quy $P_{n+1} = (-1)\dfrac{x^2}{(2n+1)(2n+2)}P_n$. Vì vậy không cần thiết phải xây dựng hàm tính giai thừa và mũ, hơn nữa nếu làm thế thì độ phức tạp sẽ tăng đáng kể, việc gọi đi gọi lại các hàm nhiều lần rất dễ gây tràn stack.
phuongpro thử làm theo hướng này nhé : Sử dụng biến P để lưu số hạng thứ i+1 của vế phải, khởi tạo bằng 1, trong thân vòng lặp tính P rồi cộng ngay vào S, chẳng hạn :P := (-1)*x*x/(2*i+1)/(2*i+2)*P; S := S+P;Bài 2 theo anh nên có thêm một phép so sánh u với $\sqrt{n}$. Em hiểu ý tưởng của thuật toán là gì không ?
đâu phức tạp. Chỉ cần xem xét cho cẩn thận thôi
#7
Đã gửi 28-10-2009 - 18:11
Bài 2 là phân tích một số ra thừa số nguyên tố, vì thế không cần thiết phải kiểm tra xem n có chia hết cho các số lớn hơn $\sqrt{n}$ hay không
#8
Đã gửi 31-10-2009 - 21:26
repeat
wirte('nhap n:');
readln(n);
i:=2;
while (n mod i<>0 do) and (i<n) do
Begin
i:=i+1;
Write(i);
n:=n div i;
until n=1;
readln;
end.
1 người đang xem chủ đề
0 thành viên, 1 khách, 0 thành viên ẩn danh