MỤC LỤC
Tiêu đề
Trang
A. ĐẶT VẤN ĐỀ:..........................................................................................2.
B. NHỮNG BIỆN PHÁP GIẢI QUYẾT VẤN ĐỀ:......................................3.
1. Cơ Sở đề ra biện pháp: ..........................................................................3.
2. Biện pháp giải quyết: ............................................................................3.
2.1. Cấu trúc cơ bản nhất của một bài lập trình trong Turbo pascal: .....4.
2.2. Các bài tập cơ bản sử dụng cấu trúc điều kiện IF – THEN: ...........9.
2.3. Các bài tập cơ bản sử dụng câu lệnh lặp với số lần biết trước: . .15.
2.4. Các bài tập cơ bản sử dụng câu lệnh lặp với số lần chưa biết trước:
....18.
3. Tác động của biện pháp: .......................................................................21.
4. Kết quả đạt được:.................................................................................20.
C. KẾT LUẬN: ...........................................................................................21.
TÀI LIỆU THAM KHẢO:...........................................................................22.
Ph¹m Anh Tïng – Trêng THPT Lª V¨n Hu
1
A. ĐẶT VẤN ĐỀ:
Tin học là một ngành khoa học có mục tiêu là phát tri ển và s ử d ụng máy
tính điện tử để nghiên cứu cấu trúc, tính chất của thông tin, ph ương pháp thu
thập, lưu trữ, tìm kiếm, biến đổi, truyền thông tin và ứng dụng vào các lĩnh
vực khác nhau của đời sống xã hội. Đối với các em học sinh, có thể nói đây là
một “hành trang” để giúp các em vững bước đi tới tương lai - tương lai của
một thế hệ công nghệ thông tin bùng nổ!.
Trong việc giảng dạy cho học sinh, ngoài việc giúp học sinh lĩnh h ội
những kiến thức cơ bản. Giáo viên còn phải biết kích thích tính tích cực, sự
sáng tạo say mê học hỏi của học sinh trong việc h ọc t ập c ủa các em. B ởi vì,
việc học tập tự giác, tích cực, chủ động và sáng tạo đòi h ỏi h ọc sinh ph ải có
ý thức về những mục tiêu đặt ra và tạo được động lực bên trong thúc đẩy bản
thân họ hoạt động để đạt các mục tiêu đó.
Chương trình Tin học lớp 11 là một môn học khó, ki ến th ức thì tr ải r ộng
nhưng đòi hỏi các em phải biết vận dụng kiến thức của từng bài sắp xếp một
cách lôgíc để lập trình giải một bài toán hoàn chỉnh. Tuy nhiên trong thực tế
rất ít học sinh làm được điều đó. Hầu hết các em vận d ụng câu l ệnh, cú pháp
không phù hợp cho yêu cầu của bài tập.
Vì vậy quá trình dạy và học bộ môn Tin học trong nhà trường ph ổ
thông còn gặp rất nhiều khó khăn. Từ thực tế này tôi muốn chia s ẻ một kinh
nghiệm nho nhỏ để chúng ta cùng tham khảo trong quá trình dạy học, đó là
hướng dẫn lập trình giải một số dạng bài tập cơ bản chương trình Tin h ọc
lớp 11 chương II, chương III.
Ph¹m Anh Tïng – Trêng THPT Lª V¨n Hu
2
B. NHỮNG BIỆN PHÁP GIẢI QUYẾT VẤN ĐỀ:
1. Cơ sở đề ra biện pháp:
Qua việc nghiên cứu các vấn đề về lập trình theo từng dạng bài t ập t ừ
cơ bản đến phức tạp của ngôn ngữ lập trình Pascal, các tài liệu về ph ương
pháp giảng dạy. Từ đó, đưa ra các biện pháp lập trình cho h ọc sinh thông qua
các ví dụ cụ thể về chương trình lập trình từng phần khác nhau.
Để thực hiện được điều đó, chúng ta cần phải tìm tòi, nghiên cứu tìm
ra những bài toán phù hợp, kích thích được sự độc l ập, tích c ực c ủa h ọc sinh
trong học tập. Trên cơ sở đó, học sinh có thể tự mình tìm ra đ ược nh ững ý
tưởng sáng tạo vận dụng thiết thực vào cuộc sống thực tế khi nhu cầu nảy
sinh, khi đó các em có thể tự mình hoàn thành được ý tưởng đó.
2. Biện pháp giải quyết:
Qua quá trình giảng dạy để giúp cho học sinh dễ hiểu tôi có m ột s ố
kinh nghiệm sau:
- Trước hết phải giúp các em nắm vững về lý thuyết, tính nguyên tắc
và logíc của một bài lập trình. Cách đặt tên chương trình, tên biến: ví dụ quá 8
kí tự ta cần dùng dấu gạch nối xen giữa, bài lập trình nào thì c ần dùng câu
lệnh gán phối hợp với công thức của toán học để tính, bài lập trình nào thì
cần dùng câu lệnh If … then, for … to … do …, while ... do.
- Hướng dẫn học sinh lập trình đi từ bài dễ tới khó.
- Để lập trình tốt yêu cầu các em nắm vững công th ức c ủa toán h ọc đ ể
chuyển đổi thành biểu thức của Pascal. Cho học sinh ghi lại một số công thức
cơ bản trong toán học như :
• Tính biểu thức : TBP= (a+b)2
Khi đó viết biểu thức trong Pascal là: TBP := a*a + 2*a*b+b*b;
• Tính diện tích hình vuông : dientich = canh x canh
Khi đó viết biểu thức trong Pascal là: S:= canh* canh;
Ph¹m Anh Tïng – Trêng THPT Lª V¨n Hu
3
• Tính chu vi tam giác:
Chuvi = canh a + canh b + canh c
Khi đó viết biểu thức trong Pascal là:
CV := a+b+c; …
- Ngoài ra, phải có biện pháp khuyến khích động viên các em nh ư
thưởng điểm, khen trước lớp, hoặc những em có tư duy lập trình t ốt cùng v ới
thầy hướng dẫn những em học yếu trong lớp từ đó để kích thích s ự sáng t ạo
kích thích bộ môn trong học tập.
2.1. Cấu trúc cơ bản nhất của một bài lập trình trong Turbo pascal.
a. Cấu trúc chung bài lập trình:
PROGRAM
<tên chương trình>;
[<Phần khai báo > ];
BEGIN
< Phần thân chương trình >;
READLN
END.
b. Cách đặt tên, cú pháp khai báo tên các thư viện, khai báo bi ến, câu
lệnh nhập dữ liệu vào từ bàn phím, câu lệnh hiển thị kết quả ra màn
hình, câu lệnh gán.
- Cách đặt tên:
• Tên không trùng với từ khóa ví dụ tên đặt begin là sai. Vậy từ khóa là
: Program, uses, var, begin. End…
• Tên đặt nhiều hơn 8 kí tự dùng dấu gạch nối xen giữa và không dài
quá 127 kí tự.
• Tên đặt bằng tiếng việt không dấu, không sử dụng dấu cách…
- Cú pháp khai báo tên các thư viện:
• <Từ khóa> <Tên các thư viện>;
Ví dụ khai báo thư viện Crt, graph … là:
Uses CRt, graph;
- Cú pháp khai báo hằng:
• <Từ khóa> <Tên hằng = giá trị>;
Ví dụ khai báo hằng gia tốc của một vật rơi tự do là: Const g = 9.8;
Ph¹m Anh Tïng – Trêng THPT Lª V¨n Hu
4
Ph¹m Anh Tïng – Trêng THPT Lª V¨n Hu
5
- Cú pháp khai báo biến:
• <Từ khóa> <Tên các biến : kiểu dữ liệu>;
• Ví dụ khai báo biến cho bài toán tính diện tích và chu vi hình ch ữ
nhật khi biết chiều dài và chiều rộng nhập từ bàn phím là các số nguyên thì:
Var cd, cr, p, s : integer;
• Kiểu dữ liệu: số nguyên là (byte, word, integer, longint), số thực (real,
extended), …
- Câu lệnh nhập dữ liệu vào từ bàn phím:
Read(<danh sách biến vào>); hoặc Readln(<danh sách biến vào>);
Ví dụ: readln(cd, cr);
- Câu lệnh hiển thị dữ liệu ra màn hình:
Write(<danh sách kết quả ra>); hoặc Writeln(<danh sách kết quả ra>);
Ví dụ: hiển thị Trường THPT Le Van Huu ra màn hình thì ta có lệnh là:
Writeln(’Trường THPT Le Van Huu’); …
- Câu lệnh gán là tính toán giá trị biểu thức bên phải được kết quả cuối
cùng thì gán cho tên biến phía bên trái là:
<tên biến> := <biểu thức>;
ví dụ: a:=9; b:=a*3;
c. Các phép toán số học, các hàm cơ bản:
- Các phép toán số học cơ bản: +, -, * (phép nhân), / (phép chia).
- Các hàm cơ bản:
• Hàm ABS(x): hàm tính giá trị tuyệt đối cho số thực hoặc số nguyên.
• Hàm SQR(x): hàm tính bình phương cho số thực hoặc số nguyên.
• Hàm SQRT(x): hàm tính căn bậc hai cho số thực hoặc số nguyên.
• Hàm Ln(x) tính lôgarit tự nhiên của x (x là số thực).
• Hàm Exp(x), sin(x), cos(x) tính lôgarit tự nhiên của x (x là số thực).
d. Một số bài tập áp dụng lý thuyết trên:
Bài 1: Dựa vào cấu trúc bài lập trình sắp xếp các lệnh sau để thành một
bài lập trình tính giá trị s=a+b;
Ph¹m Anh Tïng – Trêng THPT Lª V¨n Hu
6
Các lệnh cho như sau: Program tinh_tong; a:=12; b:=88; uses crt; begin
readln end. s:=a+b; writeln(’tong s=’, s); Var a,b,s:integer; clrscr;
Hướng dẫn:
Program Tinh_tong;
Var a,b,s:integer;
Begin
a:=12;
b:=88;
s:=a+b;
writeln(’tong s=’, s);
readln
End.
Bài 2: Lập chương trình gán biến a=9, biến b=10 và tính tổng, tích, hiệu
của b với a. Cho kết quả hiển thị trên màn hình.
Hướng dẫn:
Program Tinh_tong_tich_hieu;
Var a,b,tong,tich,hieu:byte;
Begin
a:= 9; b:= 10;
tong:= b+a;
tich:= b*a;
hieu:= b-a;
writeln(’tong =’,tong:5, ’ tich=’, tich:5, ’hieu=’,hieu);
readln
end.
Bài 3: Lập chương trình nhập vào chiều dài và chiều rộng hình ch ữ nh ật,
tính chu vi và diện tích hình chữ nhật đó, cho kết quả hiển thị lên màn hình:
Hướng dẫn:
Program Tinh_chuvi_dientich_ HCN;
Ph¹m Anh Tïng – Trêng THPT Lª V¨n Hu
7
Var cd,cr, p, s : integer;
Begin
Write(’moi nhap chieu rong va chieu dai hinh chu nhat:’);
Readln(cr,cd);
p:=(cr+cd)*2;
s:=cd*cr;
Wrietln(’chu vi hinh chu nhat:’, p);
Writeln(’dien tich hinh chu nhat:’,s);
Readln
End.
Gợi ý: Bài tập 4: Lập chương trình nhập vào cạnh hình vuông, tính chu vi và
diện tích hình vuông đó, cho kết quả hiển thị lên màn hình:
Hướng dẫn Lập trình tương tự như bài 3:
Chu vi tính
P:=canh*4;
Diện tích tính
S:=canh*canh;
Bài tập 5: Lập chương trình nhập vào ba cạnh của một tam giác, tính chu
vi và diện tích hình tam giác đó, cho kết quả hiển thị lên màn hình:
Hướng dẫn Lập trình tương tự như bài 3:
Chu vi tính
CV:=a+b+c;
Nửa chu vi tính
p:=CV/2;
Diện tích tính
S:=SQRT(p(p-a)*(p-b)*(p-c));
Bài 6: Lập chương trình nhập vào bán kính đường tròn R, tính chu vi và
diện tích đường tròn đó, cho kết quả hiển thị lên màn hình:
Hướng dẫn:
Program Tinh_chuvi_dientich_ hinhtron;
Const pi=3.14;
Var r,cv,dt : Real; {real la so thuc}
Begin
Write(’moi nhap ban kinh hinh tron:’);
Ph¹m Anh Tïng – Trêng THPT Lª V¨n Hu
8
Readln(r);
cv:= 2*pi*r;
dt:=pi*r*r;
Wrietln(’chu vi hinh chu nhat: ’, cv:10:1);
{cv:10:1 de doc ket qua}
Writeln(’dien tich hinh chu nhat: ’,dt:10:1);
Readln
End.
Bài 7: Lập chương trình 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.8m/s2. Độ cao h(m) được nhập vào từ bàn phím. Tính xong cho k ết
quả v hiển thị lên màn hình lấy tròn 3 số thập phân.
Hướng dẫn:
Program Tinh_vantoc;
Const g=9.8;
Var v,h : Real;
Begin
Write(’moi nhap chieu cao h:’);
Readln(h);
v:= sqrt(2*g*h);
Writeln(’Van toc vat luc cham dat v=:’,v:10:3);
Readln
End.
Bài 8: Cho biết kết quả hiển thị ra màn hình khi thực hiện chương trình
sau:
Program tim_hieu;
Var a,b,hieu:integer;
Begin
a:=4;
Ph¹m Anh Tïng – Trêng THPT Lª V¨n Hu
9
b:=3;
Hieu:= a*a – 2*a*b + b*b;
Writeln(’hieu binh phuong =’, hieu);
Readln
End.
Gợi ý: - Kết quả thu được khi chạy chương trình bài 8 là:
hieu binh phuong = 1
- Các bài toán chạy chương trình nên tính toán kết quả câu lệnh gán,
đoạn lập trình và đối chiếu câu lệnh hiển thị writeln để đưa ra kết quả.
2.2. Các bài tập cơ bản sử dụng cấu trúc điều kiện IF - THEN
- Để có thể giúp học sinh nắm bắt được các kiến thức cấu trúc điều
kiện ta có thể hình dung như sau:
a. Cú pháp If - Then và ý nghĩa:
Để mô tả cấu trúc rẽ nhánh, Pascal dùng câu lệnh If - Then. V ới hai
dạng thiếu và đủ :
Dạng 1: Cấu trúc rẽ nhánh dạng thiếu:
If <điều kiện> Then <câu lệnh>;
• Ý nghĩa: Nếu điều kiện có giá trị đúng thì câu lệnh sau t ừ khóa then
được thực hiện. Nếu điều kiện có giá trị sai thì câu l ệnh sau đi ều ki ện
then không được thực hiện.
• Ví dụ: If 9>3 Then Writeln(’ban lam toan rat tot!’);
Dạng 2: Cấu trúc rẽ nhánh dạng đầy đủ:
If <điều kiện> Then <câu lệnh 1>
Else <câu lệnh 2>;
• Ý nghĩa: Nếu điều kiện có giá trị đúng thì câu lệnh 1 sau then được thực
hiện và bỏ qua câu lệnh 2. Nếu điều kiện có giá trị sai thì câu l ệnh 2
sau từ khóa Else được thực hiện và bỏ qua câu lệnh 1.
• Ví dụ: If 9<3 Then wrietln(’ Ban di hoc toan ’)
Ph¹m Anh Tïng – Trêng THPT Lª V¨n Hu
10