Tải bản đầy đủ (.doc) (18 trang)

Phương pháp dạy học chương trình con và phân loại trong chương trình tin học 11 thông qua một số bài tập tiêu biểu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (101.69 KB, 18 trang )

SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HÓA

TRƯỜNG THPT LƯƠNG ĐẮC BẰNG

SÁNG KIẾN KINH NGHIỆM

TÊN ĐỀ TÀI
CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI

Người thực hiện: Trịnh Thị Kim Dung
Chức vụ: Giáo viên
Đơn vị công tác: Trường THPT Lương Đắc Bằng
SKKN thuộc lĩnh vực (mơn): Tin

THANH HĨA NĂM 2021

1


MỤC LỤC
TT
1
1.1.
1.2
1.3
1.4
1.5
2
2.1
2.2
2.3


2.4
3
3.1
3.2

Nội dung
Mở đầu
Lý do chọn đề tài
Mục đích nghiên cứu
Đối tượng nghiên cứu
Phương pháp nghiên cứu
Những điểm mới của sáng kiến kinh nghiệm
Nội dung của sáng kiến kinh nghiệm
Cơ sở lý luận
Thực trạng của vấn đề nghiên cứu
Nội dung, biện pháp thực hiện các giải pháp
Hiệu quả của sáng kiến kinh nghiệm
Kết luận, kiến nghị
Kết luận
Kiến nghị

Trang
1
1
1
1
1
1
2
2

2
2
14
14
15
15

2


1. MỞ ĐẦU
1.1. Lý do chọn đề tài
Công nghệ thông tin nói chung và tin học nói riêng là một ngành khoa học
phát triển mạnh mẽ và có nhiều ứng dụng trong hầu hết các lĩnh vực của cuộc
sống. Môn tin học là một môn học mới mẽ của học sinh Trung học phổ thơng, học
sinh chưa có khái niệm về cơng nghệ thơng tin, khái niệm thuật tốn trong các
ngơn ngữ lập trình. Mơn tin học trong khối THPT thì mơn tin học ở khối lớp 11
được đánh giá là khó nhất. Sở dĩ tơi chọn chủ đề “chương trình con và phân loại”
làm đề tài cho sáng kiến vì tơi thiết nghĩ ở học kỳ I các em đã được học cấu trúc
chung của một chương trình pascal thì việc chuyển sang học chương trình con
khơng cịn là vấn đề khó khăn đối với các em, từ đó gây hứng thú trong học tập
làm cho các em yêu mến mơn học và khơng cảm thấy khó khi nói đến mơn tin học
nói chung và lập trình pascal nói riêng.
Năm học 2019 – 2020 tôi đã trực tiếp giảng dạy 2 lớp 11 được chuyển từ
trường THPT Lê Viết Tạo sang (do sát nhập trường). Trong quá trình giảng dạy
môn Tin học, tôi thấy gần như các em không chú tâm học mơn Tin học nói chung
và học về chương trình con nói riêng, hơn nữa các em cho rằng Tin học khơng phải
là mơn khối, do đó các em khơng có hứng thú trong khi học. Là một giáo viên bộ
mơn tơi cảm thấy rất buồn, từ đó tơi đã có ý nghĩ sẽ đưa ra những bài tập, những ví
dụ rất cơ bản gần gũi với mơn học của các em như: toán, lý,…nhằm thu hút sự chú

ý học tập của các em, giúp các em yêu thích mơn học hơn.
Dưới đây tơi xin trình bày về sáng kiến: “Phương pháp dạy học chương
trình con và phân loại trong chương trình Tin học 11 thơng qua một số bài tập
tiêu biểu”. Rất mong được sự góp ý chân thành từ các giáo viên và học sinh về
sáng kiến kinh nghiệm này để giúp tơi có những bài giảng hay để học sinh học tốt
môn Tin học hơn.
1.2. Mục đích nghiên cứu
Mục đích nghiên cứu nhằm giúp các em hứng thú hơn với mơn tin học nói
chung và lập trình pascal nói riêng. Nhằm giúp các em nắm được hoạt động, cấu
trúc của chương trình con để giải quyết các bài tập có liên quan. Qua đó giúp các
em giải quyết tốt các bài tập lập trình, yêu thích mơn học hơn.
1.3. Đối tượng nghiên cứu:
Học sinh lớp 11 các trường THPT nói chung và trường THPT Lương Đắc
Bằng huyện Hoằng Hóa, tỉnh Thanh Hóa nói riêng.
1.4. Phương pháp nghiên cứu
Phương pháp nghiên cứu là chỉ ra cấu trúc của chương trình con, lợi ích của
việc sử dụng chương trình con. Đưa ra bài tập cho học sinh nghiên cứu , từ đó
hướng dẫn cụ thể cho học sinh làm bài tập đó. Yêu cầu học sinh chỉ ra cú pháp ,
hoạt động của chương trình con, phân biệt được thủ tục và hàm.
1.5. Những điểm mới của sáng kiến kinh nghiệm
Trong sáng kiến này tôi đã vận dụng những kiến thức đã học lý thuyết vào
các bài tập mà tôi lựa chọn, các bài tập thông dụng, gần gũi với cuộc sống hàng
ngày, những tính tốn, suy luận logic gần gũi với môn học của học sinh như mơn
tốn, mơn lý,… và các mơn học tư duy khác. Các bài tập này đã được kiểm nghiệm
bằng chương trình thực hành và học sinh rút ra được những kiến thức bổ ích cho
bài học và các chương trình sau này.
2. NỘI DUNG CỦA SÁNG KIẾN KINH NGHIỆM
3



2.1. Cơ sở lý luận
Ngày nay việc lập trình để giải quyết các bài toán trong các lĩnh vực đã trở
nên rất phổ biến. Để giải quyết các bài toán lớn thì cách lập trình khơng sử dụng
chương trình con khó có thể thực hiện, đặc biệt là đối với các bài toán lớn cần
nhiều người tham gia. Làm cơ sở cho học sinh sau này tiếp cận với phương pháp
lập trình khác.
2.2. Thực trạng của vấn đề nghiên cứu
2.2.1 Thuận lợi
Học sinh đã được tiếp cận một số thuật tốn ở lớp dưới, đã sử dụng ngơn
ngữ lập trình Pascal để viết chương trình giải quyết cá bài tốn trong quá trình học.
Mặt khác sử dụng chương trình con để hợp lý, tiết kiệm cơng sức lập trình. Đồng
thời chương trình con giúp cho người lập trình dễ sửa chữa, dễ kiểm tra. Khi học
về chương trình con, học sinh có thể hiểu sâu sắc hơn về ngơn ngữ lập trình, có thể
giúp cho các em hồn hành những chương trình lớn hơn. Chương trình con cũng là
chương trình tổng hợp các kiến thức các em đã học.
2.2.2 Khó khăn
Có thể nói chương trình tin học lớp 11 là một phần nội dung mới và khó nhất
trong chương trình tin học THPT. Do bước đầu tiếp cận việc lập trình nên khả năng
cịn hạn chế, Khả năng chuyển đổi từ thuật tốn đã biết sang ngơn ngữ lập trình cụ
thể cịn gặp nhiều khó khăn.
Việc học lập trình Pascal là điểm khởi đầu giúp học sinh bước đầu tiếp cận
với ngơn ngữ lập trình bậc cao, qua đó giúp các em có thêm định hướng trong học
tập và yêu thích Tin học hơn.
2.3. Nội dung, biện pháp thực hiện các giải pháp của đề tài.
Nêu ra cách lập trình giải quyết một số bài toán thường gặp trong toán học và các
bài tâp liên quan để học sinh hiểu rõ hơn cách viết chương trình con trong pascal,
từ đó có thể tự mình giải quyết một số bài tốn tương tự.
2.3.1 Một số khái niệm
2.3.1.1 Chương trình con và phân loại chương trình con
Các chương trình giải các bài tốn phức tạp thường rất dài, có thể gồm hàng

trăm, hàng nghìn lệnh. Khi đọc những chương trình dài, rất khó nhận biết được
chương trình thực hiện những cơng việc gì và việc hiệu chỉnh chương trình cũng
khó khăn. Vì vậy, vấn đề đặt ra là phải cấu trúc chương trình như thế nào để cho
chương trình dễ đọc, dễ hiệu chỉnh, dễ nâng cấp.
Xét bài tốn tính tổng bốn lũy thừa:
TLuythua = an + bm + cp + dq
Bài tốn trên bao gồm bốn bài tốn con tính: a n, bm, cp, dq, có thể giao cho
bốn người, mỗi người thực hiện một bài. Giá trị TLuythua là tổng kết quả của bốn
bài tốn con đó. Ta có thể hình dung bài tốn TLuythua giống như khi ta làm một
tờ báo tường, công việc được giao cho nhiều người tham gia như: người viết lời
tựa, người sưu tầm truyện cười, người viết thơ, người viết văn…
*) Chương trình con là một dãy lệnh mô tả một số thao tác nhất định và có
thể được thực hiện từ nhiều vị trí trong chương trình.
*) Lợi ích của việc sử dụng chương trình con
- Tránh được việc phải viết lặp đi lặp lại cùng một dãy lệnh
4


- Hỗ trợ thực hiện các chương trình lớn
- Phục vụ cho q trình trừu tượng hóa
- Mở rộng khả năng ngôn ngữ
- Thuận tiện cho phát triển, nâng cấp chương trình
2.3.1.2 Phân loại chương trình con
Chương trình con được viết dưới hai dạng thủ tục (Procedure) và hàm
(Function). So sánh cấu trúc của hai kiểu chương trình con này thì tương tự như
nhau, mặc dù cách truy xuất của chúng có khác nhau và cách trao đổi thơng tin
trong mỗi kiểu cũng có điểm khác nhau.
*) Hàm (Function) là chương trình con thực hiện một số thao tác nào đó và
trả về một giá trị qua tên của nó. Ví dụ hàm tốn học (sin (x), sqr(x), abs(x)…) hay
hàm xử lý xâu (length(x), copy..).

- Cấu trúc của hàm:
Function <tên hàm>[(<danh sách tham số>)]:<kiểu dữ liệu>;
*) Thủ tục (Procedure) là chương trình con thực hiện các thao tác nhất định
nhưng khơng trả về giá trị nào qua tên của nó. Ví dụ các thủ tục vào/ra chuẩn, hay
thủ tục xử lý xâu…
- Cấu trúc của thủ tục:
Procedure <tên thủ tục> [(<danh sách tham số>)];
[]
Begin
[<dãy các lệnh>]
End;
2.3.1.3 Biến toàn cục:
Là biến được khai báo ở đầu chương trình, nó được sử dụng bên trong
chương trình chính và cả bên trong chương trình con. Biến tồn cục sẽ tồn tại trong
suốt quá trình thực hiện chương trình.
2.3.1.4 Tham số hình thức
Các biến được khai báo cho dữ liệu vào/ra được gọi là tham số hình thức của
chương trình con.
2.3.1.5 Biến cục bộ, biến toàn cục
Là các biến được khai báo để dùng riêng trong chương trình con. Biến cục
bộ chỉ tồn tại khi chương trình con đang hoạt động và nó sẽ được giải phóng ngay
sau khi chương trình con kết thúc. Nói chug, chương trình chính và các chương
trình con khác không thể sử dụng được các biến cục bộ của một chương trình con.
Một chương trình con có thể có hoặc khơng có tham số hình thức, có thể có
hoặc khơng có biến cục bộ.
Biến tồn cục là biến được dùng tại mọi vị trí trong chương trình
2.3.1.6 Tham số thực sự
Để thực hiện (gọi) một chương trình con, ta cần phải có lệnh gọi nó tương tự
lệnh gọi hàm hay thủ tục chuẩn, bao gồm tên chương trình con với tham số (nếu
có) là các hằng và biến chứa dữ liệu vào và ra tương ứng cới các tham số hình thức

đặt trong cặp ngoặc ( và ). Các hằng và biến này được gọi là các tham số thực sự.
2.3.1.7 Tham số giá trị (tham trị):

5


Trong lệnh gọi thủ tục, các tham số hình thức được thay bằng các tham số
thực sự tương ứng là các giá trị cụ thể được gọi là các tham số giá trị (gọi tắt là
tham trị).
2.3.1.8 Tham số biến (tham biến):
Trong lệnh gọi thủ tục, các tham số hình thức được thay bằng các tham số
thực sự tương ứng là tên các biến chứa dữ liệu ra được gọi là các tham số biến (gọi
tắt là tham biến)
Để phân biệt tham biến và tham trị Pascal sử dụng từ khóa Var để khai báo
những tham số biến.
2.3.2.Một số bài tập áp dụng
Có thể nói mơn tin học nói chung và tin học 11 nói riêng là một mơn học
khó. Vì thế chương trình dưới đây tơi đưa ra những ví dụ, bài tập cơ bản nhất, gần
gũi với kiến thức thực tế. Cụ thể các em đã gặp các bài tốn này trong bộ mơn tốn
học, mơn vật lý…. Hơn nữa những ví dụ tơi đưa ra với học sinh có lực học trung
bình cũng có thể hiểu và áp dụng được. Từ đó làm cho các em có hứng thú và u
thích bộ mơn tin học nói chung và lập trình pascal nói riêng.
2.3.2.1 /BÀI TẬP SỬ DỤNG THỦ TỤC
Bài tập 1: Nhập vào từ bàn phím 2 số ngun a, b. Viết chương trình hốn
đổi vị trí của hai số a và b.
- Ý tưởng: để hoán đổi vị trí của hai số nguyên a, b ta phải sử dụng biến phụ
(tạm). Lúc đầu biến tạm nhận giá trị của biến a, biến a lại nhận giá trị của biến b,
biến b nhận giá trị của biến tạm.
- Chương trình tham khảo:
Program bai_tap1;

Uses crt;
Var a,b :integer;
Procedure Hoan_doi (Var m,n: integer);
Var tam: integer;
Begin
tam:=m;
m:=n;
n:=tam;
End;
Be gin
Clrscr;
Write (‘nhap vao hai so nguyen a,b:’);
Readln (a,b);
Hoan_doi (a, b);
Writeln (a:5, b:5);
Readln;
End.
Bài tập 2: Dùng thủ tục giải phương trình bậc hai: ax2 + bx + c =0 (a<> 0)
- Ý tưởng: ta có thể sử dụng 2 thủ tục trong 1 chương trình để giải phương
trình bậc 2. Thủ tục 1 dùng để nhập các hệ số của phương trình bậc 2. Thủ tục 2
dùng để tìm nghiệm.
6


- Chương trình tham khảo:
Program ptb2;
Ues crt;
Var a,,b,c, x1, x2: real;
Procedure nhapheso (Var a, b, c: real);
Begin

Write (‘ nhap he so bac hai:’);
Readln (a);
Write (‘ nhap he so bac nhat:’);
Readln (b);
Write (‘ nhap he so tu do:’);
Readln (c);
End;
Procedure Tim_nghiem;
Var delta: real;
Begin
Delta := sqr (b) – 4*a*c;
If delta = 0 then
Begin
Write (‘phuong trinh co nghiem kep:’);
Write (‘x1= ‘, ‘x2 = ‘,- b/(2*a) : 6 : 2);
End
Else If delta <0 then
Writeln (‘phuong trinh vo nghiem’)
Else
Begin
X1:= (- b + sqrt (delta))/ (2*a);
X2:= (- b - sqrt (delta))/ (2*a);
Writeln (‘phuong trinh co hai nghiem phan biet la:’);
Writeln (‘x1 = ‘,x1:6:2, ‘x2 =’,x2:6:2);
End;
End;
BEGIN
Clrscr;
Nhapheso (a,b,c);
Tim_nghiem;

Readln;
END.
Bài tập 3: lập trình tính diện tích và chu vi hình chữ nhật bằng việc dùng 3
thủ tục khơng có tham số
- Ý tưởng: ta xây dựng 3 thủ tục tương ứng lần lượt là: thủ tục nhập dữ liệu
(nhap_DL), thủ tục tính tốn (Tinh_toan) và thủ tục in kết quả (In_kq)
- Chương trình tham khảo:
Program chu_nhat;
Ues crt;
7


Var a,b,p,s: real;
Procedure Nhap_DL;
Begin
Write (‘nhap chieu dai hinh chu nhat:’);
Readln (a);
Write(‘nhap chieu rong hinh chu nhat:’);
Readln *b);
End;
Procedure Tinh_toan:
Begin
P:= (a+b)*2;
S:= a*b;
End;
Procdure In_kq;
Begin
Writeln (‘chu vi hinh chu nhat la:’, p:8:3);
Writeln (‘dien tich hinh chu nhat la:’,s :8:3);
End;

BEGIN
Clrscr;
Nhap_DL;
Tinh_toan;
In_kq;
Radln;
End.
Bài tập 4: Viết thủ tục đổi một xâu chữ thường thành một xâu chữ hoa tương
ứng. Ví dụ: ‘tinhoc’ thành ‘TINHOC’
- Ý tưởng: ta sử dụng hàm length để duyệt xâu, sau đó sử dụng hàm Upcase
để tiến hành đổi
- Chương trình tham khảo
Program Bai_tap4;
Uses crt;
Var xau: string;
Procedure Doi (var st: string);
Var i: byte;
Begin
For i := 1 to length (st) do
St[i] := upcase (st[i]);
End;
BEGIN
Clrscr;
Write (‘nhap xau can doi:’);
Readln (xau);
Writeln;
Doi (xau);
8



Writeln (‘xau thu duoc la:’,xau);
Writeln ;
Readln;
END.
Bài tập 5: Sử dụng thủ tục nhập vào một xâu kí tự từ bàn phím và đếm xem
xâu đó có bao nhiêu chữ cái:
- Ý tưởng: nhập xâu cần đếm, khởi tạo biến đếm bằng 0 , ta sử dụng hàm
length để duyệt xâu. Trong phạm vi từ a tới z hoặc từ A đến Z ta sẽ tiến hành đếm
và biến đếm sẽ tăng lên 1 đơn vị
- Chương trình tham khảo
Program Bai_tap5;
Uses crt;
Var st: string;
Pricedure Dem_chu (s:string);
Var I, dem : byte;
Begin
Write (‘nhap xau can dem:’);
Readln (s);
Dem:= 0;
For i:= 1 to length (s) do
If (((s[i] >=’a’) and (s[i] <=’z’)) OR (s[i] >=’A’) and (s[i] <=’Z’))) then
Dem:= Dem + 1;
Writeln (‘ket qua la:’, dem);
End;
BEGIN
Clrscr;
Dem_chu (st);
Readln;
END.
Bài tập 6: Lập một thủ tục tính và đưa ra màn hình vận tốc V khi chạm đất

của một vật rơi từ độ cao h, biết rằng V = 2gh , trong đó g là gia tốc rơi tự do và
g = 9,8 m/s2. Độ cao h(m) được nhập vào từ bàn phím.
- Ý tưởng: trong bài tốn này ta sử dụng thủ tục có tham số với tham số giá
trị là độ cao h được nhập từ bàn phím, tham số biến là vận tốc v khi chạm đất của
một vật.
- Chương trình tham khảo:
Program btap6;
Uses crt;
Const g = 9.8;
Var v, h: real;
Procedure Van_toc ( h: real; var v:real);
Begin
Write (‘nhap do cao h:’);
Readln(h);
V:= sqrt (2*g*h);
9


Writeln (‘van toc cua vat khi cham dat la:’,v:8:3);
End;
BEGIN
Clrscr;
Van_toc(h, v);
Writeln;
Readln;
END.
Bài tập 7: Sử dụng thủ tục có tham số tính diện tích hình thang với đáy lớn,
đáy bé và chiều cao nhập từ bàn phím.
- Chương trình tham khảo:
Program Btap7;

Uses crt;
Var a,b,h,s :real;
Procedure
Hinh_thang (a1, b1, h1: real; var s:real);
Begin
Write (‘nhap kich thuoc hinh thang: ’);
Readln (a1, b1, h1);
S:= 1/2*(a1 + b1)* h1;
Writeln (‘dien tich hinh thang la:’, s:8:3);
End;
Begin
Clrsr;
Hinh_thang(a, b, h, s);
Readln;
End.
Bài tập 8: Lập thủ tục tính chu kỳ dao động của quả lắc theo công thức:
T= 2 π

l
. Trong đó:
g

+ l là độ dài dây treo quả lắc (m)
+ g là gia tốc trọng trường (g = 9.18 m/s2)
- Chương trình tham khảo:
Program btap8;
Uses crt;
Const g = 9.18;
Pi = 3.14;
Var l, T: real;

Procedure Chu_ky (l: real; var T: real);
Begin
Write (‘nhap do dai day treo qua lac: ’);
Readln (l);
T:= 2*pi* sqrt(l/g);
Writeln (’chu ky dao dong la:’, T:6:2);
End;
10


BEGIN
Clrscr;
Chu_ky (l, T);
Writeln;
Readln;
END.
2.3.1.2. BÀI TẬP SỬ DỤNG HÀM
Bài tập 1: Lập hàm tính ước số chung lớn nhất và bội số chung nhỏ nhất của
hai số tự nhiên nhập vào từ bàn phím?
- Ý tưởng: ta xây dựng hàm tìm ước số chung lớn nhất của 2 số x, y.
UCLN(x,y).Tìm bội số chung nhỏ nhất của 2 số dựa trên UCLN.
- Chương trình tham khảo:
Program Btap1;
Uses crt;
Var a,b, usc, bsc: integer;
Function UCLN (x, y : integer) : integer;
Begin
While x <> y do
Begin
If x > y then x:= x – y

Else
Y:= y – x;
End;
UCLN:= x;
End;
BEGIN
Clrscr;
Write (‘nhap hai so nguyen :’);
Readln (a,b);
Usc:= UCLN(a,b);
Bsc:= (a*b) div usc;
Writeln (‘ uoc so chung lon nhat la:’, usc);
Writeln (‘boi so chung nho nhat la:’, bsc);
Readln;
END.
Bài tập 2: Viết hàm tính giai thừa cho số nguyên N
- Ý tưởng N! = 1 x 2 x 3 x 4 x…x N. Ta sử dụng biến chạy i , với i là các số
nguyên liên tục từ 1 đến N.
- Chương trình tham khảo:
Program giai_thua;
Uses crt;
Var N : integer;
Function Gt (x: integer) : integer;
Var k, s :integer;
Begin
11


S:= 1;
For k:= 1 to x do

S:= S * k;
Gt := S;
End;
BEGIN
Clrscr;
Writeln (‘ tinh giai thua cua so nguyen N’);
Write (‘ nhap so nguyen N:’) ;
Readln (N);
Writeln;
Writeln (‘giai thua cua ‘, N, ‘= ‘ , Gt (N));
Readln;
END.
Bài tập 3: Sử dụng hàm để kiểm tra xem ba số a, b, c (nhập từ bàn phím) có
phải là ba cạnh của tam giác hay khơng? Áp dụng hàm để tính chu vi và diện tích
của tam giác?
- Ý tưởng: ba số a, b, c, là ba cạnh của tam giác nếu a, b, c đồng thời là 3 số
không âm và tổng 2 cạnh lớn hơn cạnh cịn lại.
- Chương trình tham khảo:
Program tam_giac;
Uses crt;
Var a,b,c, p, s : real;
Function KT (a, b, c :rel): boolean;
Begin
If (a > 0) and (b > 0) and (c > 0) and (a + b > c) and (b + c > a) and (a + c >
b) then
KT := true
Else KT := False;
End;
BEGIN
Clrscr;

Write (‘nhap vao 3 so a, b, c: ’);
Readln (a, b, c);
If KT (a, b, c) = true then
Begin
Writeln (‘day la ba cạnh cua mot tam giac’);
P:= (a + b +c);
S:= sqrt (p * (p – a) * (p – b) * (p – c ));
Writeln (‘chu vi cua tam giac la:’, 2 * p :8 : 3);
Writeln (‘dien tich cua tam giac la:’, s :8 : 3);
End
Else
Writeln (‘day khong phai la ba canh cua mot tam giac’);
Readln;
END.
12


Bài tập 4: Tìm giá trị lớn nhất trong ba số a, b, c nhập từ bàn phím
- Ý tưởng: Để tìm giá trị lớn nhất của hai hay nhiều số trước hết ta tìm giá trị
lớn nhất của 2 số, sau đó lấy giá trị max so sánh với số tiếp theo
- Chương trình tham khảo:
Program bai4;
Uses crt;
Var a, b, c: real;
Function Max (a, b: real): real;
If a > b then
Max := a
Else Max := b;
End;
BEGIN

Clrscr;
Write (‘nhap vao ba so :’);
Readln (a, b, c);
Writeln (‘so lon nhat trong ba so la:’, Max (Max (a, b), c));
Readln;
END.
Bài tập 5: Lập hàm tính diện tích hình thang. Nhập dữ liệu của hai thửa
ruộng hình thang và tính tổng diện tích
- Ý tưởng: Như trong tốn học ta đã biết cơng thức tính diện tích hình thang.
Bài này ta xây dựng hàm tính diện tích hình thang sau đó áp dụng để tính diện tích
của hai thửa ruộng hình thang.
- Chương trình tham khảo:
Program Btap5;
Uses crt;
Var a1, b1, h1, a2, b2, h2, s: real;
Function Hinh_thang (a, b, h: real): real;
Begin
Hinh_thang := (a + b) * h/2;
End;
BEGIN
Clrscr;
Write (‘nhap kich thuoc cua thua ruong 1:’);
Readln (a1, b1, h1);
Write (‘nhap kich thuoc cua thua ruong 2:’);
Readln (a2, b2, h2);
S := Hinh_thang (a1, b1, h1) + Hinh_thang (a2, b2, h2);
Writeln (‘tong dien tich cua hai thua ruong la:’, S:8:3);
Readln;
END.
Bài tập 6: Lập hàm tính chu kỳ dao động của quả lắc theo công thức:


13


T= 2 π

l
. Trong đó:
g

+ l là độ dài dây treo quả lắc (m)
+ g là gia tốc trọng trường (g = 9.18 m/s2)
- Chương trình tham khảo:
Program btap6;
Uses crt;
Const pi = 3.14;
g = 9.18;
Var l, T:real;
Function Chu_ky (l: real): real;
Begin
Chu_ky:= 2*pi*sqrt(l/g);
End;
BEGIN
Clrscr;
Write(‘nhap do dai day treo:’);
Readln (l);
T:= Chu_ky(l);
Writeln (‘chu ky dao dong la:’, T:6:2);
Readln;
END.

Bài tập 7: Lập hàm tính diện tích hình trịn theo cơng thức: S = π r 2 , với bán
kính r được nhập từ bàn phím.
- Chương trình tham khảo
Program Btap7;
Uses crt;
Const pi = 3.14;
Var r, S: real;
Function Hinh_tron (r: real): real;
Begin
Hinh_tron:= pi * sqr (r );
End;
Begin
Clrscr;
Write (‘nhap ban kinh hinh tron:’);
Readln ( r );
S:= Hinh_tron (r );
Writeln (‘dien tich hinh tron la:’, S: 8:3);
Readln;
END.
Bài tập 8: Lập hàm tính và đưa ra màn hình vận tốc V khi chạm đất của
một vật rơi từ độ cao h, biết rằng V = 2gh , trong đó g là gia tốc rơi tự do và g =
9,8 m/s2. Độ cao h(m) được nhập vào từ bàn phím.
14


- Chương trình tham khảo:
Program Btap8;
Uses crt;
Const g = 9.8;
Var V, h: real;

Function Van_toc (h: real): real;
Begin
Van_toc:= sqrt (2*g*h);
End;
BEGIN
Clrscr;
Write (‘nhap do cao h: ’);
Readln (h);
V:= Van_toc (h);
Writeln (‘van toc cua vat khi cham dat la:’, V:8:3);
Readln;
END.
Ngoài các bài tập trên tơi cịn giao thêm cho học sinh một số bài tập dạng
trắc nghiệm và tự luận viết về chương trình con để về nhà học sinh tự làm:
1. Trong chương trình con, khi nào nên tổ chức truyền tham biến và khi nào
nhất thiết phải dùng tham biến?
2. Có thể viết một chương trình con khơng có tham số hình thức và cũng
khơng có các biến khai báo cục bộ trong chương trình con hay khơng?
3. Chọn phương án đúng trong các phương án sau. Để khai báo thủ thục
trong pascal ta dùng từ khóa:
A. Program
B. Procedure.
C. Var
D. Function
4. Mơ tả nào dưới đây về chương trình có cấu trúc là phù hợp nhất?
A. Chương trình có sử dụng cấu trúc mảng và bản ghi.
B. Sử dụng các hàm và thủ tục thư viện chuẩn
C. Được chia thành nhiều chương trình con
D. Cả A và B
5. Mơ tả nào dưới đây về tham số là sai:

A. Một hàm có thể có cả tham số giá trị và tham số biến
B. Có thể truyền biến số cho tham số giá trị
C. Có thể truyền giá trị cho tham số biến
D. Có thể dùng tham số biến để nhận kết quả
6. Khẳng định nào sau đây là đúng?
A. Chỉ có hàm mới có thể có tham số hình thức
B. Cả thủ tục và hàm đều có thể có tham số hình thức
C. Chỉ có thủ tục mới có thể có tham số hình thức
D. Thủ tục và hàm nào cũng phải có tham số hình thức
7. Cho khai báo của một hàm:
Function KT (k: integer): String;
Begin
If k mod 2 = 0 then KT:= ‘chan’ Else KT:= le;
15


End;
Muốn gán N = KT(5); thì biến N phải khai báo kiểu gì
A. Var N: real; B. Var N: String; C. Var N: Integer; D. Var N: char;
8. Sử dụng chương trình con tìm số đảo của một số nguyên dương.
Ví dụ: số nhập vào = 12345
Số đảo = 54321.
2.4. Hiệu quả của sáng kiến kinh nghiệm.
Thông qua việc áp dụng các giải pháp nêu trên, phần nào đã giúp các em
tháo gỡ được những khó khăn, vướng mắc khi giải các bài tốn tin học nói chung
và các bài tốn về chương trình con nói riêng. Giúp các em có hứng thú hơn với
mơn học.
Kết quả đạt được:
Sau khi dạy về chương trình con, tơi đã có bài kiểm tra áp dụng cho học sinh
các lớp và kết quả đạt được như sau:

Đề bài:
Câu 1: Hãy phân biệt tham số biến (tham biến) và tham số giá trị (tham trị)?
Cho ví dụ?
Câu 2: Cho khai báo của một hàm:
Function KT (k: integer): string;
Begin
If k mod 2 = 0 then KT:= ‘chan’ Else KT:= ‘le’;
End;
Muốn gán X:= KT(5); thì biến X phải khai báo kiểu gì:
a) Var X: real; b) Var X: string; c) Var X: integer;
Câu 3: Cho khai báo biến và khai báo đầu của thủ tục TT:
Var
X, y: integer; St: string;
Procedure TT (Var a: integer; b: string);
Lệnh nào đúng:
a) TT(x + 1, St); b) TT(10, St); c) TT(x, St);
4
3

Câu 4: Viết chương trình tính thể tích hình cầu theo công thức V= π r 3 , với bán
kính r được nhập từ bàn phím (sử dụng thủ tục và hàm)
Kết quả lớp không thực nghiệm:
Lớp
11A11

Tổng số Số HS đạt
Số HS đạt
Số HS đạt
Số HS đạt
Số HS đạt

HS
điểm giỏi
điểm khá
điểm TB
điểm Yếu
điểm Kém
42
2HS=4.8% 10HS=23.8% 18HS=42.8% 10HS=23.8% 2HS=4.8%

Kết quả lớp đạt được sau khi thực nghiệm:
Lớp

Tổng số
HS

11A12

40

Số HS đạt
điểm giỏi

Số HS đạt
điểm Khá

Số HS đạt
điểm TB

Số HS đạt Số HS đạt
điểm Yếu điểm kém


8HS=20% 16HS=36.4% 16HS=36.4% 2HS=7.2%

0

16


3. KẾT LUẬN, KIẾN NGHỊ
3.1. Kết luận
Tin học là một ngành khoa học, cũng là một trong những môn học đặc thù,
q trình học lý thyết phải đi đơi với việc thực hành trên máy tính.
Với nghiên cứu đề tài này tôi đã thu được kết quả khá khả quan từ các em
học sinh. Hầu hết các em đều nắm được cú pháp, hoạt động của một chương trình
con. Cụ thể các em nắm rõ cấu trúc của thủ tục và hàm, từ đó các em có thể vận
dụng vào các bài tập cụ thể , làm cho các em u thích mơn học hơn. Tơi thấy hài
lịng với kết quả đạt được.
Ngồi ra do đặc thù của mơn học cũng như sự đa dạng của nó nên dù đã rất
cố gắng nhưng khó tránh khỏi những thiếu sót, sai lầm, tôi rất mong được sự giúp
đỡ của đồng nghiệp và các em học sinh để việc học và dạy được tốt hơn.
3.2. Kiến nghị
Nhà trường nên thành lập câu lạc bộ tin học trong trường nhằm thu hút
những học sinh có lực học khá, giỏi và có niềm đam mê tin học để các em có thể
phát huy được tối đa khả năng của mình. Ngồi ra, tơi muốn đề xuất với ban giám
hiệu nhà trường, các cấp lãnh đạo bổ sung và nâng cấp thêm máy tính (cả về số
lượng và chất lượng) cho các em học tập được tốt hơn.
Xin chân thành cảm ơn!
XÁC NHẬN CỦA
THỦ TRƯỞNG ĐƠN VỊ


Thanh hóa, ngày 10 tháng 5 năm 2021
Tơi xin cam đoan đây là SKKN của
mình viết, khơng sao chép nội dung của
người khác.
Người viết

Trịnh Thị Kim Dung

17


TÀI LIỆU THAM KHẢO
1. Sách giáo khoa tin học 11: Hồ Sĩ Đàm – Hồ Cẩm Hà (NXB Giáo dục).
2. Sách bài tập tin học 11: Hồ Sĩ Đàm – Nguyễn Thanh Tùng (NXB Giáo dục).
3. Sách bài tập ngôn ngữ lập trình Pascal: Quách Tuấn Ngọc (NXB Thống kê)
4. Sách học tốt tin học 11: Trần Doãn Vinh (NXB Đại học quốc gia Hà Nội).
5. Sách tự học lập trình pascal: Mai Hương (NXB văn hóa thơng tin).

18



×