Tin tức thư viện

Chức năng Dừng xem quảng cáo trên violet.vn

12087057 Kính chào các thầy, cô! Hiện tại, kinh phí duy trì hệ thống dựa chủ yếu vào việc đặt quảng cáo trên hệ thống. Tuy nhiên, đôi khi có gây một số trở ngại đối với thầy, cô khi truy cập. Vì vậy, để thuận tiện trong việc sử dụng thư viện hệ thống đã cung cấp chức năng...
Xem tiếp

Hỗ trợ kĩ thuật

  • (024) 62 930 536
  • 091 912 4899
  • hotro@violet.vn

Liên hệ quảng cáo

  • (024) 66 745 632
  • 096 181 2005
  • contact@bachkim.vn

Đề Kiểm tra Tin 10 số 6

Wait
  • Begin_button
  • Prev_button
  • Play_button
  • Stop_button
  • Next_button
  • End_button
  • 0 / 0
  • Loading_status
Nhấn vào đây để tải về
Báo tài liệu có sai sót
Nhắn tin cho tác giả
(Tài liệu chưa được thẩm định)
Nguồn:
Người gửi: Trần Phương
Ngày gửi: 07h:05' 24-01-2009
Dung lượng: 70.0 KB
Số lượt tải: 24
Số lượt thích: 0 người
Ta xem xét một ví dụ khác dùng lệnh for rất hiệu quả:
VD_03_07: Dãy số Fibônaxi được định nghĩa như sau:

Viết chương trình in ra các số Fibônaxi với từ 1 đến 20.
Phân tích: Ta dễ dàng tìm ra cách tính: cho i chạy từ 3 đến 20 rồi tính fi theo định nghĩa: fi=fi-1+fi-2. Đặt biến f0, f1, f2 đại diện cho fi, fi-1, fi-2 ứng với mỗi giá trị của i, thế thì ta có thể viết đoạn chương trình tính như sau:
program VD_03_07;
const n = 20;
var i, f0, f1, f2 : integer;
begin
writeln(`Chuong trinh tinh cac so Fibonaxi tu 1 den `,n);
f1 := 1;
f2 := 1;
writeln(`F1 = 1`);
writeln(`F2 = 1`);
for i := 3 to n do begin
f0 := f1 + f2;
writeln(`F`,i,` = `,f0);
f2 := f1;
f1 := f0;
end;
readln;
end.
Trong đoạn chương trình này, i là biến đếm chạy từ 3 đến n. Câu lệnh f0:=f1+f2; để tính fi theo công thức truy hồi. Hai câu lệnh tiếp tính giá trị của f1, f2 dùng để tính phần tử tiếp theo: rõ ràng để tính fi+1 thì f2:=fi-1 (=f1) và f1:=fi(=f0).
Qua những ví dụ trên có thể thấy rằng cấu trúc for rất hữu hiệu khi tính các công thức truy hồi với số lần biết trước. Phần lớn các bài tập cho cấu trúc for đều có thể thiết lập công thức truy hồi. Chúng ta cần tinh ý nhìn ra được công thức. Ta sẽ xem xét một số dạng cơ bản:
VD_03_08: Tính an với a là số thực và n là số nguyên dương.
Phân tích: Trong chương 2 ta đã biết tính ab với a là số thực dương và b bất kỳ theo công thức . Tuy nhiên công thức không thể tính khi a(0. Ta tính bằng cách khác như sau:
Với n nguyên dương đặt tn = an , ta có công thức truy hồi sau:

Như vậy cho i chạy từ 1 đến n và tính công thức trên ta sẽ tính tn. Cấu trúc for dùng cài đặt rất thích hợp.
Đoạn chương trình như sau:
t := 1;
for i := 1 to n do
t := t * a;
Biến t đại diện cho ti ứng với mỗi i trong lệnh for. Trong câu lệnh t := t * a; biến t ở bên trái là ti, giá trị t ở bên phải là giá trị trước đó của t, tức là ti-1. Câu lệnh viết đúng theo công thức truy hồi. Xong vòng for i=n và t chính là giá trị tn = an. Ta thông báo kết quả.
VD_03_09: Lập trình tính giai thừa của một số nguyên n (do giới hạn lưu trữ số nguyên cho n<8).
Phân tích: Giai thừa của n: n! = 1.2…n (tích các số tự nhiên từ 1 đến n). Không có công thức tổng quát để tính n! nhưng ta có công thức truy hồi sau:

Đặt gn=ntheo công thức trên ta có:

Và như vậy tương tự VD_03_06 và VD_03_08 ta cũng có chương trình tính như sau:
program VD_03_09;
var n, i, g : integer;
begin
writeln(`Chuong trinh tinh n! `);
write(`Nhap (n<8): `);
readln(n);
g := 1;
for i := 1 to n do
g := g * i;
writeln(`Ket qua: `,n,`! = `,g);
readln;
end.
VD_03_10: Tính gần đúng số e theo công thức chuỗi:  với n nguyên nhập từ bàn phím.
Phân tích: Ta có thể dựa trên chương trình tính giai thừa ở trên để tính một cách tường minh theo công thức trên. Tuy nhiên cách ấy không ổn vì hàm giai thừa tăng rất nhanh theo n, nếu n quá lớn thì không thể tính được.
Đặt  và , ta có công thức truy hồi:

Và từ đó ta có thể viết chương trình tính dùng vòng lặp for như sau:
program VD_03_10;
var n,i : integer; e,r : real;
begin
writeln(`Chuong trinh tinh gan dung e.`);
write(`Nhap n : `
 
Gửi ý kiến