Sử dụng cấu trúc rẽ nhánh và lặp để giải một số bài toán trong toán học và trong thực tiễn - Pdf 44

MỤC LỤC
A. PHẦN MỞ ĐẦU ……………………………………………….……………… 2
I. LÝ DO CHỌN ĐỀ TÀI ………………………………….……...…………… 2
II. MỤC ĐÍCH NGHIEN CỨU ………………………………..….…………… 3
III. ĐỐI TƯỢNG NGHIÊN CỨU ………………………..……….…………… 3
IV. PHƯƠNG PHÁP NGHIEN CỨU ………………….………..……………. 3
B. PHẦN NỘI DUNG …………………………………..……………………..….. 3
I. GIỚI THIỆU CẤU TRÚC RẼ NHÁNH VÀ LẶP TRONG PASCAL …..…..3
1. Cấu trúc rẽ nhánh IF-THEN ……………………………………….……....... 3
2. Câu lệnh lặp ……………………………………………………..…………... 4
II. SỬ DỤNG CẤU TRÚC RẼ NHÁNH VÀ LẶP ĐỂ GIẢI BÀI TOÁN HỆ
PHƯƠNG TRÌNH ………………………………………………..……………. 5
1. Bài toán hệ phương trình bậc nhất hai ẩn ……………………….…………... 5
2. Sử dụng cấu trúc rẽ nhánh và lặp để giải bài toán tìm nghiệm của hệ phương
trình …………………………………………………………………….………. 5
III. SỬ DỤNG CẤU TRÚC RẼ NHÁNH VÀ LẶP ĐỂ GIẢI BÀI TOÁN TRUY
HỒI ……………………………………………………………….……………. 8
1. Bài toán truy hồi …………………………………………….………………. 8
2. Sử dụng cấu trúc lặp để giải bài toán truy hồi ……………………….…….... 9
3. Kết quả thu được …………………………………………………………… 14
C. PHẦN KẾT LUẬN ……………………………..…………….…………........ 15
D. TÀI LIỆU THAM KHẢO ………………..…………………………………. 16

1


A. PHẦN MỞ ĐẦU
I. LÝ DO CHỌN ĐỀ TÀI
Giáo dục phổ thông nước ta đang thực hiện bước chuyển từ chương trình giáo
dục tiếp cận nội dung sang tiếp cận năng lực của người học, nghĩa là từ chỗ quan
tâm đến việc học sinh học được cái gì đến chỗ quan tâm học sinh vận dụng được cái

nhiên một số học sinh khi gặp các bài toán hệ phương trình và truy hồi các em khó
xác định được công thức giải đúng của bài toán, đồng thời không biết nên dùng cấu
trúc nào để giải bài toán đó. Chính vì vậy, học sinh cảm thấy chán nản, không muốn
tìm hiểu và rèn luyện kĩ năng lập trình. Mặt khác với một số đối tượng học sinh khá,
giỏi, đa phần các em rất hào hứng với việc học lập trình, cụ thể là ngôn ngữ lập trình
Turbo Pascal. Do đó các em muốn tìm hiểu sâu hơn về một số bài toán hệ phương
trình và bài toán truy hồi mà có thể áp dụng cấu trúc rẽ nhánh và lặp để giải. Giáo
viên nên tích cực khai thác vốn hiểu biết của học sinh để vận dụng, liên hệ một số ví
dụ mở rộng, nâng cao với đối tượng học sinh này.
III. ĐỐI TƯỢNG NGHIÊN CỨU
Học sinh khối 11 tại trường THPT Như Thanh.
Sử dụng máy tính để chạy các chương trình về cấu trúc rẽ nhánh và lặp.
IV. PHƯƠNG PHÁP NGHIÊN CỨU
Kết hợp thực tiễn giáo dục ở trường THPT Như Thanh.
Có tham khảo các tài liệu về ngôn ngữ lập trình Pascal và tài liệu về Đại số và
giải tích lớp 10, 11.
B. PHẦN NỘI DUNG
I. GIỚI THIỆU CẤU TRÚC RẼ NHÁNH VÀ LẶP TRONG PASCAL
1. Câu lệnh rẽ nhánh IF-THEN
Để mô tả cấu trúc rẽ nhánh, Pascal dùng câu lệnh IF - THEN. Pascal có 2
dạng câu lệnh IF - THEN
a) Dạng thiếu :
If <Điều kiện> Then <Câu lệnh> ;
b) Dạng đủ :
If <Điều kiện> Then <Câu lệnh 1> Else <Câu lệnh 2> ;
Trong đó :
- Điều kiện là biểu thức logic.

3



4


- Câu lệnh là một câu lệnh trong Pascal, có thể là câu lệnh đơn hoặc câu lệnh
ghép.
Hoạt động:
Ở dạng lặp lùi, câu lệnh viết sau từ khóa Do được thực hiện tuần tự với Biến
đếm lần lượt nhận các giá trị liên tiếp giảm từ Giá trị cuối đến Giá trị đầu.
 Loại 2: Lặp với số lần chưa biết trước:
While <điều kiện> do <câu lệnh>;
* Trong đó:
- While, do là các từ khoá;
- Điều kiện là biểu thức logic;
- Câu lệnh là một câu lệnh đơn hoặc lệnh ghép.
Cấu trúc hoạt động như sau:
- Bước 1: Tính <biểu thức>;
- Bước 2: Nếu kết quả là đúng (true) thì thực hiện <câu lệnh> và quay lại
bước 1, ngược lại thì chuyển sang câu lệnh tiếp theo trong chương trình.
II. SỬ DỤNG CẤU TRÚC RẼ NHÁNH VÀ LẶP ĐỂ GIẢI BÀI TOÁN HỆ
PHƯƠNG TRÌNH
1. Bài toán hệ phương trình bậc nhất 2 ẩn
Hệ hai phương trình bậc nhất hai ẩn có dạng tổng quát là :
a 1 x + b1 y = c1 ;

a 2 x + b 2 y = c 2 ;

Trong đó : x,y là hai ẩn, các chữ còn lại là hệ số.

Nếu cặp số (x0,y0) đồng thời thảo mãn hai phương trình của hệ thì (x0,y0) được

Program gacho;
Var
x,y:byte;
Begin
For x:=1 to 36 do
For y:=1 to 25 do
If (x+y=36) and (2*x+4*y=100) then
Begin
Writeln('So ga la: ',x);
Writeln('So cho la: ',y);
End;
Readln
End.
* Sử dụng cấu trúc lặp với số lần chưa biết trước :
Program gacho;
Var
x,y:byte;
Begin
x :=1;
y :=36-x ;
While (2*x+4*y100)do
Begin
x :=x+1 ;
y :=36-x ;
End ;
Writeln('So ga la: ',x);
Writeln('So cho la: ',y);
Readln
6


for x:=1 to 20 do
for y:=1 to 33 do
for z:=1 to 100 do
if (5*x+3*y+1/3*z=100) and (x+y+z=100) then
Begin
writeln('So trau dung la: ',x);
Writeln('So trau nam la: ',y);
Writeln('So trau gia la: ',z);
end;
readln
end.
Kết quả của chương trình : Bài toán có 3 tập nghiệm
7


 x = 4;

 y = 18;
 z = 78 ;


x = 8;

 y = 11;
z = 81 ;


x = 12;

 y = 4;

End ;
Writeln('So xe cho 4 khach la: ',x);
Writeln('So xe cho 7 khach la: ',y);
Readln
End.
Kết quả của chương trình : Số xe khách 4 chổ ngồi là 50, Số xe khách 7 chổ ngồi
là 35.
III. SỬ DỤNG CẤU TRÚC RẼ NHÁNH VÀ LẶP ĐỂ GIẢI BÀI TOÁN TRUY
HỒI
1. Bài toán truy hồi

8


Trong khoa học tính toán ngày nay, phép truy hồi là thuật toán cơ bản để giải
một số bài toán. Ưu điểm của phương pháp truy hồi là ở chỗ nó dùng một công thức
nhất định để diễn tả những phép tính lặp đi lặp lại bất chấp số lần lặp lại là bao
nhiêu. Chẳng hạn với bài toán cấp số cộng là một ví dụ :

U 0 = a
Cho 
với a là một số cho trước và d là hằng số cố
U n = U n −1 + d (∀n ≥ 1)
định (công sai).
- Nếu n là biết trước thì việc xác định số U n phải được thực hiện thông qua n
bước lặp theo công thức truy hồi.
- Nếu n là không được biết trước mà U n cần phải thỏa mãn một điều kiện nào
đó thì việc xác định Un là quá trình lặp với số lần chưa biết trước nhưng thỏa mãn
điều kiện.
Nhiều bài toán truy hồi có thể phải thực hiện rất nhiều lần và các số tính toán


1
a +n

Với n = 1→100

Việc cộng vào tổng S được lặp lại 100 lần, giá trị n khi tham gia vòng lặp là 1
và sau mỗi lần lặp n tăng lên 1 cho đến khi n > 100 thì dừng. Như vậy số lần lặp là
biết trước, biến n được sử dụng là một biến đếm từ 1 đến 100.
9


Từ đó ta có chương trình:
program vidu_1;
var s:real;
n,a : integer;
begin
writeln(' Hay nhap gia tri a (a>2):');
readln(a);
s := 1/a;
for n := 1 to 100 do
s := s + 1/(a+n);
writeln('Tong s la: ',s:8:4);
readln;
End.
Ví dụ 2: 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
10

(SGK Tin học 11 – Trang 51)


Phân tích:
Với bài toán trên có thể sử dụng cấu trúc lặp với số lần biết trước dạng tiến
hay lùi đều được. Nếu sử dụng cấu trúc lặp For …downto … do ta có thể xây dựng
công thức truy hồi để tính giá trị Y như sau:

Yn = 0

Yn −1 = Yn +

n
n +1

Với n từ 50 giảm dần về 1

Việc cộng vào tổng Y được lặp lại 50 lần, giá trị n khi tham gia vòng lặp là 50
và sau mỗi lần lặp n giảm đi 1 cho đến khi n =1 thì dừng. Như vậy số lần lặp là biết
trước, biến n được sử dụng là một biến đếm giảm từ 50 về 1, tổng cần tính là Y0
Ta viết chương trình như sau:
program vidu_3;
var Y: real; n : integer;
begin
Y := 0;
for n := 50 downto 1 do
Y := Y + n/(n+1);
writeln('Tong Y la: ',Y:10:4);

Tổng cần tính là s1. Công thức truy hồi là truy hồi ngược (vì tính si qua s i+1) nên
dùng
for … downto … do là thích hợp nhất. Có thể chương trình tính như sau:
program Vidu_4;
var
i,n : integer;
s : real;
begin
write('Nhap mot so tu nhien n = ');
readln(n);
s:=0;
for i := n downto 1 do
s := sqrt (2 * i + s);
writeln('Ket qua can tinh: s = ',s:10:5);
readln;
end.
c. Sử dụng cấu trúc While … do…
Ví dụ 5: Tính tổng S =1 +

1 1
1
1
+ +... + 2 +... đến khi 2
n : integer;
begin
writeln(' Chuong trinh tinh tong chuoi S = 1+1/4+1/9+...');
s := 0;
n := 1;
r:= sqr(1/n);
While r>= 1E-6 do
Begin
s := s + r;
n := n + 1;
r := sqr(1/n);
end;
12


write('Tong can tinh voi do chinh xac 1E-6 la: ',s :10:6);
readln;
end.
Ví dụ 6: Dân số hiện nay ở một quốc gia khoảng 75 triệu người, tỉ lệ tăng tự nhiên là
1.7%. Hỏi sau bao nhiêu năm nữa thì dân số quốc gia đó đạt xấp xỉ 100 triệu?
Phân tích: đặt S0 là dân số (tính theo đơn vị triệu) thời điểm hiện tại, Sn là dân số
sau n năm tính từ thời điểm hiện tại. Ta có:

s 0 = 75

s n = s n-1 + s n-1*0.017

(dân số năm sau bằng dân số năm trước cộng

thêm lượng tăng tự nhiên).

Ta có chương trình:
Program Vi_du_7;
Var A,B:real;
n:byte;
Begin
Write('Nhap so tien gui: ');
Readln(A);
Write('nhap so tien nhan: ');
readln(B);
n:=0;
While A
1. Sách giáo khoa Tin học 11

Hồ Sĩ Đàm

Chủ biên

2. Sách giáo viên Tin học 11

Hồ Sĩ Đàm

Chủ biên

3. Sách bài tập tin học 11

Hồ Sĩ Đàm

Chủ biên

4. Sách giáo khoa Đại số 10

Vũ Tuấn

Chủ biên

5. Sách Đại số và giải tích 11

Vũ Tuấn

Chủ biên


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status