MỤC LỤC
NỘI DUNG Trang
PHẦN I. ĐẶT VẤN ĐỀ 1
PHẦN II. NỘI DUNG 3
I. CƠ SỞ LÝ LUẬN 3
II. CƠ SỞ THỰC TIỄN 4
III. NỘI DUNG, BIỆN PHÁP THỰC HIỆN 5
1. Các yêu cầu cơ bản của giáo viên 5
2. Các yêu cầu cơ bản của học sinh 5
3. Biện pháp tiến hành 6-29
IV. HIỆU QUẢ CỦA SÁNG KIẾN KINH NGHIỆM 29
1. So sánh kết quả 29
2. Bài học kinh nghiệm 30
PHẦN III. KẾT LUẬN 31
TÀI LIỆU THAM KHẢO 32
PHẦN I. ĐẶT VẤN ĐỀ.
Trong những năm gần đây sự bùng nổ công nghệ thông tin đã tác động lớn
đến công cuộc phát triển kinh tế xã hội loài người. Với xu thế ngày càng phát triển
về công nghệ thông tin và ứng dụng công nghệ thông tin trong cuộc sống hàng
ngày là rất lớn, nên Đảng, Nhà nước đã xác định rõ ý nghĩa tầm quan trọng của tin
học và công nghệ thông tin, truyền thông cũng như những yêu cầu đẩy mạnh của
ứng dụng công nghệ thông tin, đào tạo nguồn nhân lực đáp ứng yêu cầu công
nghiệp hoá, hiện đại hoá, mở cửa và hội nhập, hướng tới nền kinh tế tri thức của
nước ta nói riêng - thế giới nói chung. Đặc biệt là trong năm học 2006-2007 và
những trở lại đây liên tiếp Sở giáo dục và đào tạo tỉnh Nghệ An nói chung và của
phòng giáo dục và đào tạo huyện nhà nói riêng đã phát động phong trào “Ứng
dụng công nghệ thông tin trong quản lý và dạy học" và xem đây là giải pháp đột
phá để nâng cao chất lượng giáo dục, giải pháp này đã được các nhà trường tích
cực hưởng ứng và thực hiện đạt hiệu quả cao trong quản lý và dạy học.
Lịch sử nhân loại đã chứng kiến những cuộc cách mạng về công nghệ thông
PHẦN II. NỘI DUNG
I. CƠ SỞ LÝ LUẬN
Vận dụng linh hoạt, sáng tạo các phương pháp dạy học theo cách phát huy
yếu tố tích cực và những ưu điểm của phương pháp dạy học truyền thống cùng
phương pháp dạy học hiện đại nhằm tăng cường tính tích cực của học sinh trong tiếp
nhận kiến thức, hình thành kỹ năng sử dụng máy tính, sử dụng thành thạo phần mềm
Turbo Pascal để phục vụ cho học tập và bước đầu vận dụng vào cuộc sống. Từ đó,
tôi luôn tạo điều kiện tối ưu để học sinh bồi dưỡng kỹ năng tự học. Vận dụng linh
hoạt, sáng tạo các hình thức tổ chức học tập kết hợp giữa học tập cá thể với học tập
hợp tác; giữa hình thức học cá nhân với hình thức học theo nhóm.
Tôi luôn chủ động sáng tạo thiết kế các dạng bài tập căn cứ vào mục tiêu cụ
thể của bài học, không gò bó theo một quy trình cứng nhắc những bước đi bắt buộc.
Tăng cường kiểm tra đánh giá bằng nhiều hình thức khác nhau theo chuẩn kiến thức
kỹ năng, yêu cầu học sinh tự viết các chương trình hoàn chỉnh đó là một biện pháp
kích thích hứng thú học tập. Với phương pháp dạy và học hiện nay đang có xu
hướng thay đổi một cách tích cực. Phương pháp mới hướng tới lấy học sinh làm
trung tâm, học sinh không còn đóng vai trò tiếp thu một cách thụ động những kiến
thức do giáo viên truyền đạt. Giáo viên trở thành người hướng dẫn, giúp đỡ học
sinh. Học sinh hướng tới việc học tập chủ động, biết tự thích nghi. Kiến thức được
cá nhân học sinh tự tìm tòi, phát hiện một cách tích cực dưới sự hướng dẫn của giáo
viên. Ngoài ra, cách tổ chức học theo nhóm làm tăng thêm khả năng cộng tác, khả
năng làm việc tập thể. Tin học là môn học có nhiều điều kiện thuận lợi để thực hiện
các phương pháp dạy và học mới này.
Cũng như những môn học khác, việc rèn luyện kỹ năng lập trình trong bộ môn
tin học cần được thực hiện trong hoạt động và bằng hoạt động tự giác, tích cực,
chủ động và sáng tạo của học sinh. Khi cần dạy một nội dung tin học cho học sinh,
người giáo viên phải biết phân tích nội dung đó liên quan đến những hoạt động
nào. Và một số hoạt động trong đó lại được phân tích thành những hoạt động thành
phần. Rồi căn cứ vào mục tiêu tiết học, trình độ học sinh, trang thiết bị hiện có mà
lựa chọn cho học sinh tập luyện và thực hiện một số những hoạt động tiềm tàng
đầu tiên trong lập trình mà các em được học. Ngôn ngữ lập trình Pascal có những
đặc điểm ưu thế như: ngữ pháp và ngữ nghĩa đơn giản, tính logic cao, cấu trúc
chương trình rõ ràng, dễ hiểu, dễ sửa chữa và cải tiến, cùng với sự phát triển của
phần mềm tin học người ta nhanh chóng nhận ra sức mạnh của Pascal trong việc
xử lý cho các vấn đề hiện đại của tin học. Lập trình Pascal không gắn với bất kỳ
một hệ điều hành hay một máy tính nào, nó được gọi là ngôn ngữ lập trình hệ
thống vì nó được dùng cho viết hệ điều hành, nó cũng tiện lợi cho việc viết các
chương trình xử lý số, văn bản và các cơ sở dữ liệu. Ngôn ngữ lập trình Pascal là
một phần mềm có cấu trúc đơn giản và rất được nhiều độc giả quan tâm, cũng
chính ở đó có nhiều cuốn sách hay đã ra đời do nhiều tác giả viết. Song với bản
thân tôi khi lựa chọn viết đề tài “RÈN LUYỆN KỸ NĂNG PHƯƠNG PHÁP
VIẾT CHƯƠNG TRÌNH LẬP TRÌNH TURBO PASCAL CHO HỌC SINH LỚP
8” nhằm ứng dụng ngôn ngữ lập trình Pascal vào chương trình lớp 8 để phát huy
hết năng lực viết chương trình của học sinh.
Trong quá trình dạy tôi nhận thấy việc tiếp cận các từ khoá hay cấu trúc
chương trình của ngôn ngữ lập trình đối với học sinh rất khó khăn, phải làm rất
nhiều lần và thực hành rất nhiều tiết các em mới hiểu việc nhập và xuất dữ liệu. Do
đó sẽ rất khó khăn để các em hình thành kỹ năng viết một chương trình giải một
bài toán thực tế cụ thể. Trong những năm qua ngành giáo dục có phát động phong
trào giải toán trên mạng, cuộc thi tin học trẻ dành cho đối tượng học sinh tiểu học,
trung học cơ sở. Điều đó đã thúc đẩy tôi rất nhiều trong việc dạy học là làm sao
thổi được vào trong các em sự đam mê về lập trình và có khả năng tư duy lập luận
4
tốt trong việc viết chương trình, để từ đó phát triển tài năng của học sinh trong việc
đào tạo nhân tài cho đất nước sau này.
III. NỘI DUNG, BIỆN PHÁP THỰC HIỆN:
1. Các yêu cầu cơ bản của giáo viên :
Giáo viên cần phải nắm vững các phương pháp dạy học Tin học (theo sự đổi
mới: kết hợp giữa ôn cũ giảng mới, trong tiết dạy cần kết hợp phương pháp dạy
3. Biện pháp tiến hành
3.1 Giới thiệu chung giúp học sinh nắm được về các thành phần cơ bản
của ngôn ngữ lập trình Pascal
* Bộ chữ viết - Biểu thức- Câu lệnh - Từ khóa
a. Bộ chữ viết
Bộ chữ viết trong Pascal gồm:
+ 26 chữ la tinh lớn: A, B, C,…Z
+ 26 chữ la tinh nhỏ: a, b, c,…z
+ Dấu gạch dưới: _
6
Học sinh tham gia dự thi tin học trẻ cấp huyện môn lập trình Pascal
Học sinh đang say mê nghiên cứu về chương trình Pascal
+ Bộ chữ số thập phân: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
+ Ký hiệu toán học: +, -, *, / ,< >, ( ),
+ Ký tự đặc biệt: @, #, !, $, %,…
+ Dấu khoảng trắng
b. Biểu thức (expression) là công thức tính toán mà trong đó bao gồm các
phép toán, các hằng, các biến, các hàm và các dấu ngoặc đơn.
Trong một biểu thức, thứ tự ưu tiên của các phép toán được liệt kê theo thứ tự sau:
+ Lời gọi hàm.
+ Dấu ngoặc ()
+ Phép toán một ngôi (NOT, -).
+ Phép toán *, /, DIV, MOD, AND.
+ Phép toán +, -, OR, XOR
+ Phép toán so sánh =, <, >, <=, >=, <>, IN
c. Câu lệnh
+ Câu lệnh đơn giản:
Câu lệnh gán (:=): <Tên biến>:=<Biểu thức>;
- Từ khóa của lệnh lặp với số lần chưa biết trước
WHILE DO
- Từ khóa toán tử:
DIV: Chia lấy phần nguyên
MOD: Chia lấy phần dư
- Lệnh dịch chương trình: ALT + F9
- Lệnh chạy chương trình: CTRL +F9
- Để thay đổi vị trí lưu kết quả biên dịch trong bộ nhớ hay tạo tệp chạy trực tiếp ta
dùng lệnh: Destination trong bảng chọn Complite.
3.2. Giới thiệu chung về các bước viết một chương của ngôn ngữ lập
trình Pascal
Phương pháp cơ bản giải các bài toán trong tin học không chỉ dùng để giải
một bài toán cụ thể mà còn giải một lớp các bài toán cụ thể thuộc cùng một loại.
Bài toán được cấu tạo từ các yếu tố cơ bản:
Thông tin vào Xử lý thông tin Thông tin ra.
Phương pháp tổng quát để giải một bài toán bằng máy vi tính dựa trên ngôn
ngữ Pascal thì cần thực hiện được các bước cụ thể như sau:
Bước 1. Xác định các bài toán:
Là xác định xem ta phải giải quyết vấn đề gì?, với giả thiết nào đã cho và lời
giải cần phải đạt những yêu cầu gì. Khác với bài toán thuần tuý toán học chỉ cần
xác định rõ giả thiết và kết luận chứ không cần xác định yêu cầu về lời giải, vì thế
8
(Input)
(Process)
(Output)
từ phát biểu của bài toán, các em phải xác định được đâu là thông tin đã cho
(Input) và đâu là thông tin cần tìm (Output). Xác định đúng yêu cầu bài toán là rất
quan trọng bởi nó ảnh hưởng tới cách thức giải quyết và chất lượng một lời giải.
2. Cách giải bài toán trên máy vi tính
Cách giải bài toán trên máy cũng mang đầy đủ các tính chất của bài toán
tổng quát trên, nhưng nó lại được diễn đạt theo một ngôn ngữ khác.
A: là đưa thông tin vào (Input )
9
B: là đưa thông tin ra (Output)
®: là chương trình tạo từ các lệnh cơ bản của máy tính cho phép biến đổi từ A đến B.
B. TÌM THUẬT TOÁN
Thuật toán là một quá trình gồm một dãy hữu hạn các thao tác đơn giản
được sắp xếp theo một trình tự xác định sao cho theo đó từ Input của bài toán sẽ
tìm ra được Output của bài toán.
Một bài toán ta có 3 cách thể hiện thuật toán: Các bước xác định bằng lời,
lập sơ đồ khối, dùng một ngôn ngữ lập trình (Pascal)
Ví dụ về câu lệnh lặp với số lần biết trước. Thể hiện thuật toán với các cách:
Cách 1: Các bước xác định bằng lời:
Cho biến đếm gán bởi giá trị đầu thì thực hiện câu lệnh lần 1.
Tiếp tục tăng biến đếm lên thì thực hiện câu lệnh lần 2.
Tương tự cho đến khi biến đếm bằng giá trị cuối, thực hiện câu lệnh lần cuối
và kết thúc thuật toán.
Cách 2: Lập sơ đồ khối:
Cách 3: Dùng ngôn ngữ lập trình:
For<biến đếm>:= <giá trị đầu> to <giá trị cuối> do (câu lệnh);
Ví dụ về câu lệnh lặp với số lần chưa biết trước:
Thể hiện thuật toán theo các cách sau:
10
Biến đếm:=giá trị đầu
Biến đếm>=giá
trị cuối
Lệnh cần lặp biến đếm giảm 1
11
Đúng
Sai
Điều kiện
Câu lệnh
3. Phương pháp tinh chế từng bước
Phương pháp tinh chế từng bước là một thể hiện của tư duy giải quyết vấn đề
từ trên xuống, giúp cho người lập trình có được một định hướng thể hiện trong
phong cách viết chương trình tránh việc mò mẫm, xoá đi viết lại nhiều lần. Vì thế
một chương trình bắt đầu được viết bằng lời tự nhiên (tiếng việt) thể hiện sự phân
tích tổng thể của người lập trình, được thể hiện ở từng bước sau các câu lệnh được
phân tích chi tiết hơn. Bằng những lời khác nhau, tương ứng với sự phân tích công
việc thành các việc nhỏ, chi tiết hơn, dễ hiểu và chỉnh xác hơn. Người lập trình có
thể đưa ra phương pháp tinh chỉnh từng bước, thể hiện tư duy để giải quyết những vấn
đề của bài toán từ trên xuống. Trong đó, các bước hướng về phương pháp lập trình tối
ưu, sáng sửa làm cho bài toán được giải một cách gọn gàng nhất, chính xác nhất.
D. CÁC VÍ DỤ MINH HOẠ
Trước khi để học sinh viết được một chương trình hoàn chỉnh bằng ngôn
ngữ lập trình Pascal, giáo viên cần yêu cầu học sinh cần phải nắm vững các kiến
thức cơ bản như: việc dùng từ khoá là phải dùng đúng theo qui tắc đề ra như các từ
khoá: Begin, End, Program. Nắm vững cấu trúc của một chương trình viết bằng
ngôn ngữ lập trình Turbo Pascal gồm có ba phần:
- Phần tiêu đề
- Phần khai báo
- Phần thân chương trình
(Gồm các thủ tục và các câu lệnh)
Được quy định bằng cú pháp sau:
Program ; (Đặt tên cho chương trình)
hiện chương trình.
- Cú pháp:
VAR <Tên biến>[,<Tên biến 2>, ] : <Kiểu dữ liệu>;
Từ đó mới hình thành cho các em kỹ năng viết chương trình bằng ngôn ngữ
lập trình thông qua việc nắm bắt các khái niệm cơ bản, quy trình viết một chương
trình hoàn chỉnh.
Một số ví dụ minh hoạ từ các bài toán đã được học trong chương trình môn
toán ở các lớp 6,7,8.
Ví dụ 1: Tính diện tích hình chữ nhật.
1. Ta cần xác định cho bài toán:
+ Input (Thông tin vào): Chiều dài là cạnh a, chiều rộng là cạnh b
+ Output (Thông tin ra): Kết quả diện tích khi đưa a, b vào
+ Các thông tin cần chế biến thông tin như:
( Ví dụ: Lần lượt đưa a, b vào cho a=3, b=4)
Áp dụng công thức tính diện tích hình chữ nhật: a*b
Kết quả in ra là 12.
13
2. Ta cần viết thuật toán của bài toán:
Bước 1: CD a, CR b
Bước 2: s a*b và kết thúc
Ở đây chương trình bắt đầu bằng lời tiếng việt như:
CD a, có nghĩa là gán chiều dài bằng a (hay là nhập chiều dài)
CR b có nghĩa là gán chiều rộng bằng a (hay là nhập chiều dài)
Giáo viên phân tích chi tiết cụ thể, từ đó mới bắt đầu hướng dẫn các em viết
một chương trình cụ thể bằng ngôn ngữ lập trình thông qua phân tích trên
3. Viết chương trình cho bài toán sử dụng ngôn ngữ lập trình Pascal:
Sau khi học sinh đã xác định được bài toán, viết được chương trình, giáo
viên cho học sinh thực hành trên máy tính, chạy thử để kểm tra kết quả và từ đó
khắc sâu kiến thức viết một chương trình đơn giản cho học sinh. Để viết được
Sử dụng bước 2 của thuật toán
Sử dụng bước 4 của thuật toán
Sử dụng bước 3 của thuật toán
Sử dụng bước 1 của thuật toán
Lưu ý trong khi viết chương trình thì câu lệnh, hay từ khoá viết bằng chữ thường hay
chữ in hoa đều được. Ở ví dụ 1 chương trình cách viết các câu lệnh và từ khoá dùng
bằng chữ thường, ở ví dụ 2 các câu lệnh và từ khoá được dùng viết bằng chữ in hoa.
Trong quá trình sử dụng thuật toán để viết chương trình đôi khi các em cần
phải chú ý từng bước của thuật toán để bài toán khi chạy có kết quả đúng.
Ví dụ 3: Viết chương trình giải phương trình bậc nhất ax+b=0 với a, b
được nhập vào từ bàn phím.
1. Xác định bài toán:
+ Input: Cho hai số a, b
+ Output: Nghiệm của phương trình bậc nhất
2. Viết thuật toán:
Bước 1: Nhập hai số a, b
Bước 2: Nếu b= 0 chuyển tới bước 4
Bước 3: Tính nghiệm của phương trình x= -b/a và chuyển tới bước 5
Bước 4: Nếu c ≠ 0, thông báo phương trình đã cho vô nghiệm, ngược lại
(c =0), thông báo phương trình vô số nghiệm.
Bước 5: Kết thúc.
3. Viết chương trình hoàn chỉnh (dùng ngôn ngữ lập trình Pascal)
16
Với chương trình trên hoàn toàn có thể chạy được song kết quả sẽ không
đúng khi nhập dữ liệu a, b vào vì các em đã sử dụng sai các bước của thuật toán,
sau khi nhập dữ liệu ở bước 1 cần xét điều kiện b=0 ở bước 2 nhưng ở chương
trình các em lại sử dụng bước 3 trước bước 2 do đó khi chạy cho kết quả sai. Do
vậy khi viết chương trình các em phải tuân thủ theo từng bước mà đã viết từ thuật
Bước 5: Thông báo “a, b, c có thể là ba cạnh của một tam giác” và kết thúc
thuật toán.
Bước 6: Thông báo “a, b, c không thể là ba cạnh của một tam giác” và kết
thúc thuật toán.
3. Viết chương trình hoàn chỉnh (dùng ngôn ngữ lập trình Pascal)
18
Ví dụ 5: Viết chương trình tính tổng các số tự nhiên từ 1 đến N (với N
được nhập từ bàn phím).
1. Xác định bài toán:
+ Input: Nhập n số tự nhiên
+ Output: Tính tổng n số tự nhiên đó.
2. Viết thuật toán
Bước 1: S 0; i 0;
Bước 2: i i + 1;
Bước 3: Nếu i ≤ n; thì s s + i và quay lại bước 2, ngược lại kết thúc
Giáo viên chú ý cho học sinh i trong thuật toán là một biến đếm vì trong
chương trình yêu cầu nhập N số tự nhiên, nên cần một biến đếm đi từ 1 cho đến N
để tính tổng (giáo viên giải thích: ban đầu tổng S = 0, biến đếm i =0, sau khi tăng
biến đếm lên 1 thì tổng = 0 + 1 = 1; tổng S =1, tăng biến đếm lên 2 thì tổng = 1 + 2
= 3, tổng S = 3; tương tự như thể cho đến n).
3. Viết chương trình hoàn chỉnh (dùng ngôn ngữ lập trìn Pascal)
Ví dụ 6: Về hình học: Ba số a, b, c được gọi là bộ ba số Py-ta-go nếu
a
2
+b
2
=c
2
. Số tự nhiên n ≥ 3 là số Py-ta-go nếu n
2
, in ra số k và i i+1.
Bước 5: Gán k k+1.
Bước 6: Nếu k ≤ n quay về bước 4.
Bước 7: Thông báo " Có i số Py-ta-go nhỏ hơn hoặc bằng n".
Bước 8: Kết thúc thuật toán.
c. Viết chương trình bằng ngôn ngữ lập trình Pascal
20
Câu b
1. Xác đinh bài toán
Input: Nhập ba số nguyên a, b, c
Output: Các số nguyên a, b >0 thỏa a
2
+ b
2
= n
2
2. Viết thuật toán
Bước 1: Nhập số nguyên n
Bước 2: i 1 và s 0 (s s đếm số các bộ số Py-ta-go )
Bước 3: k 1
Bước 4: Nếu n
2
= i
2
+ k
2
, s s + i và in ra màn hình bộ số (i, k, n)
Bước 5: k k +1
Ví dụ 8: Từ ví dụ 1 nâng cao lên: Số nguyên tố rút gọn của một số tự nhiên
chính là tổng các ước nguyên tố của n. Nhập số tự nhiên n từ bàn phím, in ra số
nguyên tố rút gọn của n (1<n<1000000)
Vận dụng thuật toán và chương trình đã tìm được và đã viết ở ví dụ 1, học
sinh tiếp tục triển khai và xác định bài toán, viết thuật toán cho ví dụ 2. Cuối cùng
tôi cho học sinh chạy thử chương trình sau:
Từ đó tôi phân tích cho học sinh hiểu: Để viết được chương trình cho ví dụ
này các em cần phải tạo ra một biến mảng nhằm mục đích duyệt tất cả các ước của
một số sau đó cộng tổng các ước tìm được (ví dụ cho số n = 35 thì tổng các ước
nguyên tố của 35 là 5+7=12 ) thông qua một dãy các câu lệnh:
While (n mod i) = 0 do
rut[i]:= i; n:= n div i;
for i : = 1 to dc do
kq: = kq+ rut[i];
Với các bước để viết một chương trình, tôi đưa ra thêm cho học sinh khá giỏi
trong lớp một số ví dụ nâng cao, yêu cầu học sinh phải xác định được bài toán, mô
tả được thuật toán, từ đó viết chương trình. Sau khi học sinh đã viết xong chương
trình, tôi cho học sinh tham khảo lại một số chương trình tôi đã viết, giúp học sinh
nghiên cứu thêm về cách viết chương trình.
Ví dụ 9: Sử dụng biến mảng. Hãy viết chương trình tách họ tên của các học
sinh trong lớp. Số học sinh được nhập từ bàn phím
Học sinh tự xác định Input, Output của bài toán
23
Tôi hướng dẫn học sinh cách hình thành thuật toán dựa vào thông tin vào và
thông tin ra của bài toán:
Bước 1: Nhập họ tên của các học sinh trong lớp
Bước 2: Cho một biến mảng duyệt danh sách các học sinh
Bước 3: Khi gặp dấu cách đầu tiên thì tách họ, tên học sinh thứ 1 ra, lặp lại