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

Sang kien kinh nghiem tin hoc 8

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 (185.7 KB, 14 trang )

Trường THCS Vĩnh Tân

Sáng kiến kinh nghiệm

TÊN SKKN: CÁC BƯỚC GIẢI BÀI TOÁN TRÊN MÁY TÍNH
TRONG CHƯƠNG TRÌNH TIN HỌC 8.

I. LÝ DO CHỌN ĐỀ TÀI
- Ngày nay, với sự phát triển nhảy vọt của khoa học công nghệ nói chung của
ngành tin học nói riêng, với những tính năng ưu việt, sự tiện dụng và được ứng dụng
rộng rãi, tin học ngày nay là một phần không thể thiếu được của nhiều ngành trong
công cuộc xây dựng và phát triển xã hội. Hơn thế nữa nó còn đi sâu vào đời sống của
con người.
- Là một giáo viên tin học, một trong các mục tiêu khi dạy môn tin học trong
nhà trường là nhằm giúp học sinh không chỉ biết soạn thảo mà còn phải có khả năng
phân tích, tổng hợp, trừu tượng hoá, khái quát hoá vấn đề và đặc biệt là phát triển tư
duy, sáng tạo. Vì thế mà trong bài viết này tôi sẽ hướng cho học sinh lớp 8 cách để
trở thành một nhà lập trình thì cần phải nắm các bước cơ bản nào?
- Trong quá trình dạy tôi nhận thấy ở các em học sinh. Mới đầu các em cũng
rất sợ khi thấy giải một bài toán ở ngoài thì đơn giản và chỉ trong vòng vài giây có
thể nhẩm ra kết quả. Còn ở trong lập trình cũng bài toán đó mà phải làm đến hàng
chục phút mà lại có thể cho kết quả sai. Nhưng bằng những tâm huyết của mình và
cũng như sự yêu thích của học sinh. Nhất là những năm gần đây nghành giáo dục có
phát động phong trào giải toán trên mạng (Violympic) cũng như thành lập đội tuyển
tham dự các kì thi “Tin học trẻ” được tổ chức quy mô hàng năm. Điều đó đã thúc
đẩy tôi rất nhiều trong việc dạy học là làm sao giúp cho các em có sự đam mê học
tập bộ môn tin học và phát triển tài năng của học sinh.
II. TỔ CHỨC THỰC HIỆN ĐỀ TÀI.
1. Cơ sở lý luận.
- Công nghệ thông tin là một trong các phương tiện quan trọng nhất của sự phát triển,
đang làm biến đổi sâu sắc đời sống kinh tế, văn hoá, xã hội, giáo dục của thế giới


hiện đại, trong đó có Việt Nam. Chúng ta đang ở thời đại thông tin kĩ thuật số, thời
đại Internet.
Đảng và Nhà nước đã có những chủ trương chính sách đầu tư và phát triển về ứng
dụng công nghệ thông tin như:
- Chỉ thị số 58-CT/TW của bộ chính trị về đẩy mạnh ứng dụng và phát triển CNTT
trong sự nghiệp công nghiệp hoá - hiện đại hoá đã chỉ rõ: “Ứng dụng và phát triển
CNTT là một nhiệm vụ ưu tiên trong chiến lược phát triển kinh tế - xã hội, là phương
tiện chủ lực để đi tắt đón đầu, rút ngắn khoảng cách phát triển so với các nước đi
trước”.
- Chỉ thị số 29/2001/CT-BGD&ĐT của Bộ GD&ĐT về tăng cường giảng dạy, đào
tạo và ứng dụng CNTT trong ngành giáo dục đã chỉ rõ: Nâng cao nhận thức về vai trò
của CNTT; ứng dụng và phát triển CNTT trong giáo dục và đào tạo sẽ tạo một bước
chuyển cơ bản trong quá trình đổi mới nội dung, chương trình, phương pháp giảng
dạy, học tập và quản lí giáo dục.

Giáo viên: Biện Hồng Quân


Trường THCS Vĩnh Tân

Sáng kiến kinh nghiệm

- Phấn đấu thực hiện các mục tiêu cụ thể của ngành là: Tổ chức tốt việc dạy và học
tin học ở tất cả các cấp học, bậc học, ngành học nhằm phổ cập tin học trong nhà
trường,...
- Đặc trưng của môn Tin học là khoa học gắn liền với công nghệ, do vậy dạy học Tin
học một mặt trang bị cho học sinh kiến thức khoa học về Tin học, phát triển tư duy
thuật toán, rèn luyện kĩ năng giải quyết vấn đề, mặt khác phải chú trọng đến rèn luyện
kĩ năng thực hành, ứng dụng, tạo mọi điều kiện để học sinh được thực hành, nắm bắt
và tiếp cận những công nghệ mới của Tin học phục vụ học tập và đời sống. Nội dung

chương trình của môn Tin học tự chọn hiện hành ở các trường phổ thông đã đáp ứng
được những yêu cầu trên.
- Thực tế qua 2 năm trực tiếp giảng dạy bộ môn cũng như trao đổi với đồng nghiệp
tôi nhận thấy kĩ năng thực hành trên máy của học sinh còn yếu, thậm chí một số học
sinh còn rất ngại khi sử dụng máy tính để rèn luyện kĩ năng.
- Khi giải bài toán trên máy học sinh chỉ quan tâm đến công thức để tính toán ra kết
quả bài toán mà quên các bước xác định thông tin vào, thông tin ra và xây dựng thuật
toán. Khi chạy chương trình thì học sinh chưa nhận biết được kết quả đúng hay sai.
Trước khi thực hiện đề tài, tôi đã khảo sát lớp 8.5-> 8.9 của trường thông qua hệ
thống các câu hỏi trắc nghiệm với 190 học sinh qua giờ dạy thực hành trước khi chưa
ứng dụng đề tài và khi tổng hợp kết quả thu được như sau:
Câu 1: Sau mỗi giờ học thực hành môn tin học em nắm bắt được nội dung bài
học như thể nào?
Kết quả
Hiểu rõ được nội dung bài học
Hiểu rõ nội dung bài học nhưng không chắc chắn
Chưa hiểu nội dung bài học

Trước khi thực hiện đề tài
Số HS
Tỷ lệ
43/190
23%
87/190
46%
60/190
31%

Câu 2: Em có thích môn tin học không?
Kết quả

Yêu thích môn học
Không thích và cũng không ghét môn tin học
Không thích học môn tin học

Trước khi thực hiện đề tài
Số HS
Tỷ lệ
140/190
74%
40/190
21%
10/190
5%

Câu 3: Thông qua giờ học lý thuyết em đã nắm bắt và biết các thao tác khi thực
hành trên máy như thể nào?
Kết quả

Giáo viên: Biện Hồng Quân

Trước khi thực hiện đề tài
Số HS
Tỷ lệ


Trường THCS Vĩnh Tân

Sáng kiến kinh nghiệm

Nắm bắt được thao tác trên máy tính

Nắm bắt được cách thực hiện thao tác nhưng chưa rõ và
không chắc
Không nắm được thao tác khi thực hành

75/190

39,5%

95/190

50%

30/190

10,5%

Câu 4: Thái độ của em trong giờ thực hành tin học là gì?
Kết quả
Nghiêm túc tiếp thu bài
Chú ý học bài nhưng không lâu và nhàm chán
Không chú ý trong giờ học

Trước khi thực hiện đề tài
Số HS
Tỷ lệ
70/190
38%
87/190
47%
27/190

15%

2. Nội dung biệ pháp thực hiện các giải pháp của đề tài.
2.1. Đặc điểm tình hình
Thực tế qua những năm trực tiếp giảng dạy bộ môn cũng như trao đổi với đồng
nghiệp tôi nhận thấy: hầu như học sinh đều rất yêu thích và hứng thú với môn
Tin học. Tuy nhiên, chất lượng bộ môn qua các năm học chưa cao, đặc biệt là kĩ
năng thực hành trên máy của học sinh còn yếu, thậm chí một số học sinh còn rất
ngại khi sử dụng máy tính để rèn luyện kĩ năng.
*. Thuận lợi:
- Được sự quan tâm của Chi Bộ và của BGH nhà trường trong công cuộc
đổi mới phương pháp dạy học.
- Giáo viên giảng dạy được đào tạo theo đúng chuyên ngành và được bồi
dưỡng chuyên đề hàng năm.
- Phần lớn các em học sinh có ý thức tự học cao, luôn tìm tòi học hỏi những
kiến thức mới trong học tập và rất hứng thú với môn Tin học.
- Được nhà trường tạo mọi điều kiện thuận lợi về CSVC trang thiết bị dạy
học.
*. Khó khăn:
- Vẫn còn một số em học sinh tiếp thu kiến thức còn chậm, đặc biệt là kĩ
năng thực hành trên máy của học sinh còn yếu, thậm chí một số học sinh
còn rất ngại khi sử dụng máy để rèn luyện các kĩ năng, bởi đây là một môn
học mới.
- Trường có số lượng lớp nhiều, Số học sinh trong một lớp học đông, diện
tích phòng máy nhỏ hẹp, phòng máy thường hay hư hỏng, số máy hoạt động
ít, nhiều em ngồi trên một máy, thiết bị chiếu sáng thường bị hư hao, không
khí trong phòng máy không thoáng làm cho học sinh không tập trung vào
bài giảng ... ảnh hưởng rất lớn trong quá trình giảng dạy và học tập.
- Học sinh trên địa bàn chủ yếu là con em các gia đình còn khó khăn, sự
quan tâm của phụ huynh đến việc học tập của con em còn nhiều hạn chế,

điều kiện để các em có máy vi tính ở nhà là rất khó, hầu hết các em chỉ
được tiếp xúc, làm quen với máy tính trong giờ học dẫn đến việc sử dụng
Giáo viên: Biện Hồng Quân


Trường THCS Vĩnh Tân

Sáng kiến kinh nghiệm

máy của học sinh còn lúng túng, chất lượng giờ thực hành chưa cao. Một bộ
phận học sinh chưa coi trọng môn học, xem đây là một môn phụ nên chưa
có sự đầu tư thời gian cho việc học.
2.2. Mục tiêu
- Tìm ra những phương pháp, các bước giải bài toán trên máy vi tính trong
chương trình môn Tin học 8 phù hợp nhất với học sinh.
- Tạo cho học sinh rất hứng thú học môn Tin học nhất là tiết thực hành và rèn
luyện cho học sinh tính tư duy, tính sáng tạo trong quá trình lập trình.
- Trên cơ sở nghiên cứu tính tích cực cảu học sinh trong giờ học môn tin học 8,
đề xuất một số ý kiến nhằm nâng cao chất lượng dạy và học.
2.3. Mô tả giải pháp
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 1 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ừ hai yếu tố cơ bản: Thông tin vào (Input) và thông tin ra
(Output). 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 các bước :
1. Xác định bài toán.
2. Xây dựng thuật toán.
3. Viết chương trình.
4. Chạy thử, sửa đổi chương trình.
2.3.1. Xác định bài toán:

* Khái niệm bài toán
Trong quá trình học người học sinh hay bất kỳ một cá nhân nào luôn phải liên tục
giải quyết các bài toán. Trong cuộc sống là 1 chuỗi các bài toán mà ta phải đối đầu
giải quyết không một chút đơn giản mà nhiều lúc phải bực mình. Song đối với học
sinh lớp 8 do chương trình học toán của các em chỉ mới đến giải phương trình bậc
nhất là cao nhất. Nên việc đưa các lớp bài toán vào giải cho các em đang còn một
phần nào bị hạn chế. Nhưng bất kỳ một bài toán nào thì chúng ta cũng đọc đề rồi
xác định nó : A → B.
Trong đó: - A là giả thiết : điều kiện ban đầu hoặc cái đã cho khi bắt đầu giải bài
toán.
- B là kết luận: mục tiêu cần đạt được hay cái phải tìm khi kết thúc bài toán .
→ Là suy luận: giải pháp cần xác định hay chuỗi các thao tác thực hiện từ A đến B.
* Bài toán trên máy vi tính:
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 cách khác.
- A: là đưa thông tin vào (Input )
- 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.
Giáo viên: Biện Hồng Quân


Trường THCS Vĩnh Tân

Sáng kiến kinh nghiệm

* Một số ví dụ:
Ví dụ 1: Tính diện tích hình chữ nhật.
Ta cần xác định cho bài toán:
+ Thông tin vào: Chiều dài là cạnh a, chiều rộng là cạnh b

+ 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ư:
- 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.
Ví dụ 2: Cho 2 số tự nhiên a, b .Tìm ước số chung lớn nhất của chúng.
Các bước các định bài toán:
+ Xác định thông tin vào: hai số tự nhiên a, b
+ Xác định thông tin ra: số tự nhiên d thoả mãn:
d là ước của a và d là ước của b
d là số lớn nhất trong tập các ước chung của a, b
+ Xác định các thao tác chế biến thông tin
Xây dựng hữu hạn các thao tác cho phép tính được d từ a và b.
Nhập a =16 b= 24 -> d =8
Ví dụ 3: Tìm tất cả các số nguyên tố trong các số nguyên N được nhập vào từ bàn
phím:
+ Xác định thông tin vào: Nhập số nguyên N
+ Xác định thông tin ra: Các số nguyên tố (chia hết cho nó và số 1)
2.3.2. 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 bài toán .
Một bài toán ta có 4 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, ngôn ngữ phỏng trình, dùng một ngôn ngữ lập trình (Pascal).
Ví dụ: Tìm ước số chung lớn nhất của 2 số nguyên dương a,b . Ta có thể giải bằng
các cách trên
Cách 1: Các bước xác định bài toán bằng lời:
- Bước 1: Nhập 2 số nguyên dương là a,b
- Bước 2: So sánh giá trị a và b . Nếu a bằng b thì sang bước 3, ngược lại a
khác b thì sang bước 4

- Bước 3: Tìm được ước số chung là a và kết thúc chương trình
- Bước 4: Nếu a lớn hơn b thì ước số chung lớn nhất là a:=a-b và quay trở lại
bước 2. Ngược lại ước số chung là b:=b-a và quay trở lại bước 2
Cách 2: Giải bài toán bằng sơ đồ
- Có hình thoi  thể hiện các thao tác so sánh
Giáo viên: Biện Hồng Quân


Trường THCS Vĩnh Tân

Sáng kiến kinh nghiệm

- Hình chữ nhật thể hiện các phép tính toán, các câu lệnh
- Hình ôvan thể hiện bắt đầu và kết thúc
Begin
- Các mũi tên quy định trình tự các thao tác
a, b

a=b

đúng

sai
đúng
a:= b - a

a>b

UCLN là a


END

sai
b:= b - a

Cách 3: Dùng ngôn ngữ phỏng trình
Bắt đầu
Nhập a, b
While a khác b
IF a>b then thay a :=a -b
Else thay b:=b-a;
Kết thúc in ra USCLN (a,b) .
Cách 4: Viết chương trình hoàn chỉnh (dùng ngôn ngữ pascal)
PROGRAM USCLN;
USES CRT;
VAR
a,b, :integer;
BEGIN
CLRSCR;
WRITE('nhap 2 gia tri a,b=');READLN(a,b);
WHILE a<>b DO
IF a>b THEN a:=a –b
else b:=b-a;
WRITELN('uoc so chung lon nhat cua 2 so’,a:5);
READLN
END.
2.3.3. Viết chương trình:
Lập trình là dùng ngôn ngữ máy vi tính cụ thể nào (ngôn ngữ Pascal) để diễn tả
thuật toán, cấu trúc dữ liệu thành câu lệnh để máy tính có thể thực hiện được và giải
quyết đúng bài toán mà người lập trình mong muốn.

Giáo viên: Biện Hồng Quân


Trường THCS Vĩnh Tân

Sáng kiến kinh nghiệm

* Kỹ năng lập trình
- Rèn luyện được cho học sinh kỹ năng cài đặt thành công các thuật toán bằng một
ngôn ngữ lập trình.
- Đã gọi là kỹ năng thì chỉ có thể có được thông qua rèn luyện tích cực.
- Kinh nghiệm cho thấy một thuật toán do sắp đặt vụng về, lộn xộn thì khi chạy trên
máy tính có thể cho kết qủa tồi tệ.
* Phát triển chương trình bằng cách tinh chế từng bước
Một bài toán ta có thể đưa ra nhiều cách giải khác nhau, song là một giáo viên
thì chúng ta cần giúp học sinh viết chương trình làm sao người xem nhìn vào có thể
dễ hiểu được bài toán đó là gì ? Do đó việc tinh chỉnh các bước cho bài toán trong
máy tính là phương pháp khoa học, có hệ thống giúp ta phân tích các thuật toán và
cấu trúc dữ liệu từ đó thành một chương trình . Muốn lập trình giỏi không phải chỉ
cần nắm ngôn ngữ lập trình là đủ. Mà vấn đề cốt yếu là biết phương pháp phát triển
dần dần để chuyển các ý tưởng ra thành chương trình hoàn chỉnh.
* Phương pháp tinh chế từng bước
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. Song ngôn ngữ lập trình pascal người lập trình có thể đưa ra phương
pháp tinh chỉnh từng bước là thể hiện tư duy giải quyết vấn đề bài toán từ trên xuống
trong đó các bước là hướng về ngôn ngữ lập trình làm sao cho bài toán đưa ra được
phương pháp lập trình tối ưu, sáng sủa.

* Ví dụ
Tìm tất cả các số nguyên tố trong các số nguyên N được nhập vào từ bàn phím
a. Tinh chế lần 1
- Lấy 2 tập
NT= [ ] (để chứa các số nguyên tố tìm được)
S = [2,..N] (tập các số cần xét )
- Tìm số đầu tiên trong S đưa vào NT
- Loại bỏ khỏi S các bội số của số nguyên tố vừa tìm được
- Số đầu tiên còn lại của S là số nguyên tố. Tiếp tục quá trình cho đến khi S=[]
- Xuất NT
b. Tinh chế lần 2
Bắt đầu
NT: = [ ]
S = [2,..N]
Repeat
Tìm số đầu tiên trong S

NT:= NT+ [S0]
Loại khỏi S các bội số của S0
Until S=[ ];
Xuất NT;
Kết thúc;

c. Tinh chế lấn 3 ( chương trình hoàn chỉnh)
Program nguyen_to;
Const
Giáo viên: Biện Hồng Quân


Trường THCS Vĩnh Tân


N=100;
Type
nguyen=1..N;
var
NT, S:set of nguyen;
S0,I:integer;
begin
NT:=[]; S:=[2..N];S0:=2;
repeat
while not (S0 in S) do

Sáng kiến kinh nghiệm

S0:=S0+1; NT:=NT+[S0];I:=S0;
While I<=N do
Begin
s:=S-[i];I:=I+S0;
End;
until S=[];
for I:= 1 to n do
If I in Nt then Write(I:4);
readln
end.

d. Tinh chế lần 4. Rõ ràng cấu trúc dữ liệu tập hợp “Set of nguyen” tuy dễ hiểu nhưng rất cồng kềnh và làm máy chạy chậm chạp, ta có thể dùng mảng Boolean linh hoạt
hơn như sau:
Program nguyen_to;
for i:= 2 to N div 2 do
Const

for j:= 2 to N div i do
N=100;
a[i*j]:=false;
var
for i:= 1 to N do
a:array[1..N] of boolean;
if a[i] then
i,j:integer;
write(i:3);
begin
readln
a[1]:=false;
end.
for i:=2 to N do a[i]:=true;
e. Tinh chế lần 5
Trong ngôn ngữ pascal nếu dùng mảng boolean thì ta bị giới hạn N<10000. Để
có thể chạy với số lớn hơn ta không dùng mảng , tập hợp mà dùng như sau:
Program nguyen_to;
begin
uses crt;
k:=0;
var
for j:= 2 to trunc(sqrt(i)) do
i,j,k,n:integer;
if i mod j=0 then k:= 1;
begin
if k=0 then write(i:3);
repeat
end;
write('nhap n=');readln(n);

readln
until n>= 2;
end.
for i:= 2 to n do
Như vậy. Là kỹ năng lập trình, người lập trình có thể tinh chỉnh chương trình
từng bước làm sao đưa ra một phương án tối ưu cho người xem dễ tiếp thu và đạt
được tốc độ tính toán cao nhất cũng như chiếm bộ nhớ của máy tính càng ít càng tốt.
2.3.4. Chạy Thử, thay đổi, kiểm tra chương trình:
a. Chạy thử:
Một chương trình đã viết xong chưa chắc đã chạy được trên máy vi tính để cho
kết quả mong muốn.
Giáo viên: Biện Hồng Quân


Trường THCS Vĩnh Tân

Sáng kiến kinh nghiệm

Ví du 1: Tìm số lớn nhất trong 3 số a,b,c nguyên dương được nhập vào từ bàn phím.
Lần 1: Program tim_so;
uses crt;
var
a,b,c:integer;
begin
clrscr;

write('nhap 3 so=');readln(a,b,c);
if aelse if awrite('so lon nhat la ',a);

readln
End.

Với chương trình này cũng chạy được song đáp số có lúc đúng, có lúc sai tuỳ
thuộc vào lúc nhập giá trị a,b,c {nếu ta nhập thứ tự a=5,b=7,c=9. Thì sẽ cho ta kết
quả số lớn nhất là 7. Vậy thì sai hoàn toàn}
Do đó người lập trình cần phải biết cách tìm lỗi. Sữa lỗi, điều chỉnh viết lại
chương trình cũng là kỹ năng quan trọng của người lập trình. Vậy với ví dụ trên để
kết quả luôn đúng thì ta có thể viết lại chương trình
Lần 2: Program tim_so;
uses crt;
var
a,b,c,t:integer;
begin
clrscr;
write('nhap 3 so=');readln(a,b,c);
Nếu nhập:
Lần nhập
1
2
3

A
5
5
9

t:=a;
if tif t

write('so lon nhat la ',t);
readln
End.

B
4
7
3

C
7
9
5

Kết quả
7
9
9

Ví dụ 2: Viết chương trình in ra màn hình hình chữ nhật toàn dấu * với chiều dài và
chiều rộng nhập từ bàn phím.
Lần 1: Program hcn;
Ues crt;
Var i, cd,cr:integer;
Begin
Clrscr;
Write(‘ Nhap chieu dai hinh chu nhat’); readln(cd);
Write(‘ Nhap chieu rong hinh chu nhat’); readln(cr);
For i = 1 to cd*cr do writeln(‘*’);
Readln

Giáo viên: Biện Hồng Quân


Trường THCS Vĩnh Tân

Sáng kiến kinh nghiệm

End.
Với chương trình này cũng chạy được song kết quả sai (in ra màn hình một cột
toàn dấu * với chiều dài là diện tích hinh chữ nhật).
Với ví dụ trên để kết quả luôn đúng thì ta có thể viết lại chương trình.
Lần 2: Program hcn;
For i = 1 to cr
Ues crt;
do
Var i,j, cd,cr:integer;
Begin
Begin
for j = 1 to cd do
Clrscr;
write(‘*’);
Write(‘ Nhap chieu dai hinh chu nhat’);
Writeln;
readln(cd);
End;
Write(‘ Nhap chieu rong hinh chu nhat’);
Readln
readln(cr);
End.
b. Phân loại lỗi và cách sửa lỗi:

- Lỗi về thuật toán: Điều chỉnh lại thuật toán, thêm vị trí có thể, loại bỏ thuật
toán sai, tìm thuật toán khác nghĩa là làm lại từ đầu.
1
2

1
3

Ví dụ 1: viết chương trình tính tổng S= 1 + + + .... +

1
(n được nhập vào từ bàn phím)
n

Học sinh viết chương trình khai báo biến S thuộc kiểu dữ liệu nguyên (Integer)
thì chương trình sẽ không thực hiện được phép toán tính tổng. Do vậy để thực hiện
được phép toán thì khai báo biến S là thuộc kiểu dữ liệu thực (Real).
- Lỗi về trình tự: Phải xem lại thuật toán, phân tích lại từ trên xuống dưới để
đặt lại cho đúng với thuật toán.
Ví dụ 2: 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.
program ptb1;
var
a,b:real;
begin
write('nhap cac he so=');readln(a,b);
if a<>0 then
writeln('phuong trinh vo so nghiem');
else
if b=0 then

writeln('phuong trinh co nghiem',-b/a:4:2)
else
writeln('phuong trinh vo nghiem')
readln
end.

Giáo viên: Biện Hồng Quân


Trường THCS Vĩnh Tân

Sáng kiến kinh nghiệm

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 . Do vậy ta phải sắp xếp lại thuật toán để cho một kết quả
đúng như yêu cầu :
program ptb1;
var
a,b:real;
begin
write('nhap cac he so=');readln(a,b);
if a<>0 then
if b=0 then
writeln('phuong trinh vo nghiem')
else
writeln('phuong trinh co nghiem',-b/a:4:2)
else
writeln('phuong trinh vo so nghiem');
readln
end.

- Lỗi về cú pháp: viết lại cho đúng cú pháp của ngôn ngữ lập trình mà
mình đang sử dụng.
Ví dụ 3: Lỗi sau câu lệnh ta không sử dụng dấu chấm phẩy, hay kết thúc chương
trình không có dấu chấm, hay từ khoá BEGIN nếu ta viết BE GIN thì sẽ không có
nghĩa.
c. Kiểm tra:
Có nhiều chương trình khó kiểm tra tính đúng đắn, nhất là chương trình tìm
kiếm lời giải tối ưu. Vì chúng chưa biết kết qủa nào là đúng nhất. Vì vậy việc tìm lỗi
rất là khó khăn. Trong quá trình chạy thử một chương trình ta cần lưu ý:
- Nếu khởi đầu bằng bộ chương trình (test) nhỏ nhưng các giá trị đặc biệt (đây
là dễ bị lỗi nhất).
- Làm nhiều các bộ test nhưng phải đa dạng tránh lặp đi lặp lại các bộ test
tương tự.
- Nên kết thúc bằng các bộ test có kích thước lớn để kiểm tra tính chịu đựng
của chương trình.
d. Thay đổi chương trình:
Một chương trình đã viết xong, đã chạy thử tốt , giải quyết đúng bài toán mà ta
mong muốn nhưng chưa có nghĩa là quá trình lập trình đã xong . Mà người lập trình
muốn nó ở đây ta có thể sửa đổi nó theo một hướng khác mà nó có thể đáp ứng được
một yêu cầu mới. Như phần tinh chế một chương trình là rất quan trọng cho việc sửa
chữa chương trình cũ sang chương trình mới.
Ví dụ: - Nhập 3 số a,b,c kiểm tra xem 3 số đó có thể là độ dài của các cạnh một tam
giác hay không. Từ đó ta có thể chuyển nó sang dạng là các cạnh đó thoã mãn tam
giác cân, đều hay là tính diện tích của tam giác đó.
Giáo viên: Biện Hồng Quân


Trường THCS Vĩnh Tân

Sáng kiến kinh nghiệm


- Tính tổng cho N số nguyên đầu tiên được nhập vào từ bàn phím. Từ đó ta có thể
triển khai tính giai thừa, tìm số nguyên tố, độ dài của dãy số đó, tính trung bình cộng
cho dãy số……
- Nhập vào mảng của dãy số từ bàn phím . Từ đó ta có thể tìm giá trị lớn, nhỏ của
mảng, trung bình độ dài của mảng, điểm của học sinh….
Vậy là một người lập trình bạn cần nắm được các tiêu chuẩn của một chương
trình từ giúp bài toán có một kết quả tốt.
- Tính tin cậy: có một giải thuật đúng.
- Tính uyển chuyển: chương trình có thể sửa đổi
- Tính trong sáng: dễ đọc, dễ hiểu.
- Tính hữu hiệu: chạy chương trình nhanh và tốn ít dung lượng bộ nhớ về
không gian và thời gian.
Tóm lại: Quá trình xây dựng chương trình là một chuỗi các bước tinh chế. Ở mỗi
bước được phân ra nhiều công việc con để từ đó đưa ra được phương pháp tối ưu.
Song người lập trình cần rèn luyện để có ý thức về các quyết định liên quan và biết
khảo sát nghiêm túc cũng như từ bỏ các lời giải ngay cả khi chúng đúng. Mà cần
phải cân nhắc mọi phương tiện của từng lời giải theo một tiêu chuẩn.
* Khả năng áp dụng
- Đề tài này có thể vận dụng cho tất cả học sinh mới bắt đầu làm quen ngôn
ngữ lập trình Pascal.
* Lợi ích kinh tế - xã hội
- Trong quá trình giảng dạy tôi đã áp dụng sáng kiến nêu trên, qua khảo sát
thực tế của học sinh, tôi đã thấy chất lượng bộ môn đạt kết quả cao.
- Học sinh rất hứng thú học môn Tin học nhất là tiết thực hành.
- Rèn luyện cho học sinh tính tư duy, tính sáng tạo trong quá trình lập trình.
III. HIỆU QUẢ CỦA ĐỀ TÀI.
- Trong quá trình giảng dạy tôi đã áp dụng sáng kiến nêu trên, qua khảo sát thực tế
của học sinh, tôi thấy chất lượng bộ môn đạt kết quá đáng kể.
- Học sinh rất hứng thú môn tin học nhất là tiết thực hành.

- Rèn luyện cho học sinh tính tư duy, tính sáng tạo trong quá trình lập trình.
Qua quá trình áp dụng đè tài trong giảng dạy thực hành một thời gian tôi đã khảo sát
kết quả khi thực hiện đề tài và thu được kết quả:
Câu 1: Sau mỗi giờ học thực hành môn tin học em nắm bắt được nội dung bài
học như thể nào?
Kết quả
Hiểu rõ được nội dung bài học
Hiểu rõ nội dung bài học nhưng không chắc chắn
Chưa hiểu nội dung bài học

Giáo viên: Biện Hồng Quân

Sau khi thực hiện đề tài
Số HS
Tỷ lệ
150/190
79%
30/190
15,8%
10/190
15,2%


Trường THCS Vĩnh Tân

Sáng kiến kinh nghiệm

Câu 2: Em có thích môn tin học không?
Kết quả
Yêu thích môn học

Không thích và cũng không ghét môn tin học
Không thích học môn tin học

Sau khi thực hiện đề tài
Số HS
Tỷ lệ
170/190
89,5%
18/190
9,5%
2/190
1%

Câu 3: Thông qua giờ học lý thuyết em đã nắm bắt và biết các thao tác khi thực
hành trên máy như thể nào?
Kết quả
Nắm bắt được thao tác trên máy tính
Nắm bắt được cách thực hiện thao tác nhưng chưa

Sau khi thực hiện đề tài
Số HS
Tỷ lệ
150/190
79%

rõ và không chắc
Không nắm được thao tác khi thực hành

33/190


17,4%

7/190

3,6%

Câu 4: Thái độ của em trong giờ thực hành tin học là gì?
Kết quả
Nghiêm túc tiếp thu bài
Chú ý học bài nhưng không lâu và nhàm chán
Không chú ý trong giờ học

Sau khi thực hiện đề tài
Số HS
Tỷ lệ
170/190
89,5%
20/190
10,5%
0/190
o%

Từ bảng kết quả trên cho thấy các biện pháp ứng dụng của đề tài đã trình bày ở trên
giúp các em không những nắm chắc kiến thức mà còn thấy các em học tập phấn khởi
hơn, tiếp thu bài nhanh hơn, có chất lượng thực sự.
IV. ĐỀ XUẤT, KIẾN NGHỊ KHẢ NĂNG ÁP DỤNG.
- Để đưa ra một phương pháp tối ưu cho một bài toán không đơn giản . Bởi
một bài toán chúng ta có thể đưa ra nhiều phương pháp giải khác nhau. Song trong
lập trình người giải không sử dụng đúng cách giải thì một bài toán lại đi ngược lại và
cho các kết quả khác nhau. Điều đó chứng tỏ cho thấy người lập trình cần phải nắm

được các bước giải bài toán trong lập trình.
- Bài toán cho kết quả sai là do nhiều nguyên nhân mà tôi đã trình bày ở phần trước
như:
+ Chọn kiểu dữ liệu sai
Giáo viên: Biện Hồng Quân


Trường THCS Vĩnh Tân

Sáng kiến kinh nghiệm

+ Viết kết quả in ra ở dạng có quy cách và không quy cách
+ Phép gán sai ví dụ như bài toán tính tổng ban đầu ta phải gán S:=0; nếu gán
S:= 1; thì cho kết quả sai. Hay Bài toán tính tích thì phép gán phải ngư ợc trở lại ban
đầu S:=1;
- Vậy để giải quyết được bài toán trên máy tính điện tử sử dụng ngôn ngữ lập
trình pascal nói chung và của lớp 8 nói riêng. Để nâng cao chất lượng dạy học tin ở
các trường thcs và là một giáo viên tin học tôi muốn nói rằng chúng ta không chỉ dạy
lý thuyết suông mà cần phải biết kết hợp thực hành . Để từ đó học sinh mới nhận thấy
được ưu điểm của việc học chương trình này có lợi hơn ở điểm nào.
- Tóm lại đây là chương trình học khá mới mẻ, các bài toán đưa ra để xây dựng
một chương trình chưa có gì lạ phức tạp. Bởi có nhiều bài hay thì học sinh lớp 8 chưa
học đến. Cho nên giáo viên cần phải nắm chắc các phương pháp để truyền đạt. Đồng
thời cũng phối hợp chương trình toán đã học đến những phần nào để từ đó đưa ra các
ví dụ, bài tập để học sinh có thể nắm chắc lý thuyết cũng như thực hành trên máy tính
dễ tiếp thu. Và để từ đó các em rút ra được ưu điểm của các chương trình này so với
cách tính tay ở chỗ nào.
- Đề tài này có thể vận dụng cho tất cả học sinh mới bát đầu làm quen với ngôn ngữ
lập trình Pascal.
Đề xuất:

- Tôi mong ước rằng trong tương lai, phòng máy vi tính sẽ được mở rộng, đảm
bảo số lượng máy tính tạo điều kiện cho các em học sinh được thực hành nhiều hơn.
Vì có như vậy chất lượng dạy và học của giáo viên và học sinh mỗi ngày đạt chất
lượng cao hơn.
- Trên đây là một số biện pháp mà tôi đã áp dụng vào dạy tin học khối 8. Tuy
đã được đúc rút từ kinh nghiệm giảng dạy thực tế và đã cho kết quả khả quan. Nhưng
trong quá trình thực hiện bài viết này sẽ không tránh khỏi những thiếu sót. Rất mong
nhận được sự góp ý bổ ích của các thầy cô giáo và các bạn đồng nghiệp để bài viết
được hoàn thiện hơn.
V. TÀI LIỆU THAM KHẢO.
- Sách giáo khoa tin học 8 quyển 3 nhà xuất bản giáo dục.
- Sách giáo viên tin học 8.
- Tham khảo tư liệu trên internet.
- Dạy thử nghiệm trên lớp
Xin cảm ơn!
Vĩnh Tân, ngày 10 tháng 10 năm 2013
Người viết

Biện Hồng Quân

Giáo viên: Biện Hồng Quân