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

skkn sử DỤNG PHƯƠNG PHÁP HƯỚNG dẫn các bước GIẢI bài TOÁN TRÊN máy TÍNH

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 (243.09 KB, 29 trang )

BM 01-Bia SK

PHÒNG GIÁO DỤC VÀ ĐÀO TẠO TRẢNG BOM
Đơn vị Trường THCS Đinh Tiên Hoàng
Mã số: ................................
(Do HĐTĐSK Sở GD&ĐT ghi)

SÁNG KIẾN
SỬ DỤNG PHƯƠNG PHÁP HƯỚNG DẪN CÁC BƯỚC GIẢI BÀI TOÁN
TRÊN MÁY TÍNH

Người thực hiện: Trần Văn Thọ
Lĩnh vực nghiên cứu:
- Quản lý giáo dục



- Phương pháp giáo dục



- Phương pháp dạy học bộ môn: Tin học



(Ghi rõ tên bộ môn)

- Lĩnh vực khác: ....................................................... 
(Ghi rõ tên lĩnh vực)

Có đính kèm: Các sản phẩm không thể hiện trong bản in sáng kiến


 Mô hình
 Đĩa CD (DVD)
 Phim ảnh  Hiện vật khác
(các phim, ảnh, sản phẩm phần mềm)

Năm học: 2016 - 2017


2


BM02-LLKHSK

SƠ LƯỢC LÝ LỊCH KHOA HỌC
––––––––––––––––––
I. THÔNG TIN CHUNG VỀ CÁ NHÂN
1. Họ và tên: Trần Văn Thọ
2. Ngày tháng năm sinh:06/09/1989
3. Nam, nữ: Nam
4. Địa chỉ:763 ấp Trà Cổ - Bình Minh – Trảng Bom – Đồng Nai
5. Điện thoại:01264004050
6. Fax:

E-mail:

7. Chức vụ: Giáo viên
8. Nhiệm vụ được giao (quản lý, đoàn thể, công việc hành chính, công việc chuyên
môn, giảng dạy môn, lớp, chủ nhiệm lớp,…): Tổ phó tổ Toán Tin, giảng dạy Tin khối 8,

91,92

9. Đơn vị công tác: Trường THCS Đinh Tiên Hoàng

II. TRÌNH ĐỘ ĐÀO TẠO
- Học vị (hoặc trình độ chuyên môn, nghiệp vụ) cao nhất: Đại Học
- Năm nhận bằng: 2013
- Chuyên ngành đào tạo: Sư phạm Tin học
III. KINH NGHIỆM KHOA HỌC
- Lĩnh vực chuyên môn có kinh nghiệm:
Số năm có kinh nghiệm:
- Các sáng kiến đã có trong 5 năm gần đây:

3


4


BM03-TMSK

Tên sáng kiến : SỬ DỤNG PHƯƠNG PHÁP HƯỚNG DẪN CÁC BƯỚC GIẢI
BÀI TOÁN TRÊN MÁY TÍNH
I.

LÝ DO CHỌN ĐỀ TÀI
Hiện nay nước ta cũng như các nước trên thế giới đang cạnh tranh về
nghành công nghệ chế tạo máy cũng như các sản phẩm phần mềm giúp ích cho con
người trên mọi lĩnh vực. Vậy làm thế nào để làm được điều đó : nhờ vào ngành công
nghệ thông tin. Ngày xa xưa con người không biết đọc, không biết viết đó là một nỗi
khổ vô cùng, còn ngày nay con người không biết sử dụng máy vi tính thì coi như là
không biết đọc, không biết viết. Vậy khi biết sử dụng máy vi tính rồi chúng ta sẽ làm

gì hay chỉ ngồi chơi điện tử, các trò giải trí, soạn thảo các bài văn bản mà thôi ?
Là một giáo viên Tin học một trong các mục tiêu khi đưa tin học vào trường
học 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. Những năm qua môn Tin học ở THCS chưa có sách giáo khoa cụ thể hướng
dẫn cho học sinh về cách phân tích lập trình. Vì vậy học sinh chưa có tính độc lập
sáng tạo mà phải nhờ vào giáo viên rất nhiều. Những năm nay đã có sách giáo khoa
hướng dẫn cho học sinh cụ thể qui trình lập trình như thế nào.Vì thế mà 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 thời đại thông tin bùng nổ ngày nay, việc lập được các chương trình tự
hoạt động cho máy tính, máy gia dụng là cần thiết. Và để làm được việc đó cần có
một quá trình nghiên cứu, học tập về ngôn ngữ lập trình lâu dài, qua đó nhà lập trình
có thể chọn một ngôn ngữ lập trình thích hợp. Tuy nhiên mọi thứ đều có điểm khởi
đầu của nó, với học sinh việc học Pascal là khởi đầu cho việc tiếp cận ngôn ngữ lập
trình bậc cao, qua đó giúp các em hình dung được sự ra đời, cấu tạo, hoạt động cũng
như ích lợi của các chương trình hoạt động trong máy tính, các máy tự động...Qua đó
giúp các em có thêm một định hướng, một niềm đam mê về tin học, về nghề nghiệp
mà các em chọn sau này. Đồng thời Pascal là một ngôn ngữ có cấu trúc thể hiện trên
3 yếu tố: Cấu trúc về mặt dữ liệu, cấu trúc về mặt câu lệnh, cấu trúc về mặt chương
trình.
Xuất phát từ cơ sở trên, tôi đã chọn đề tài “Sử dụng phương pháp hướng dẫn các
bước giải bài toán trên máy tính”, giúp các em nắm được cấu trúc của chương trình và
ngôn ngữ lập trình ( Lập trình đơn giản của phần I - SGK tin học 8)
II. CƠ SỞ LÝ LUẬN VÀ THỰC TIỄN
1. Về cơ sở lý luận:
Việc đổi mới chương trình sách giáo khoa đặt trọng tâm vào việc đổi mới phương
pháp dạy học. Chỉ có đổi mới căn bản phương pháp dạy học và chúng ta có thể tạo
được sự đổi mới thực sự trong giáo dục, mới có thể đào tạo được lớp người năng
động, sáng tạo có tiềm năng cạnh tranh trí tuệ trong bối cảnh nhiều nước trên thế giới

hướng tới nền kinh tế tri thức.
5


Trong vài thập kỷ gần đây, đã có sự bùng nổ về thông tin hay gọi là thời đại
thông tin. Cùng với việc sáng tạo ra hệ thống công cụ mới, con người cũng đã tập
trung trí tuệ từng bước xây dựng ngành khoa học tương ứng để đáp ứng những yêu
cầu khai thác tài nguyên thông tin. Trong bối cảnh đó, ngành Tin học được hình thành
và phát triển thành một ngành khoa học độc lập với các nội dung, mục tiêu, phương
pháp nghiên cứu riêng và ngày càng có nhiều ứng dụng trong hầu hết các lĩnh vực
hoạt động của xã hội loài người.
Tin học được đưa vào nhà trường, vào giáo dục của nước ta nhằm giúp học
sinh chúng ta theo kịp với trình độ phát triển của khu vực và thế giới. Đưa Tin học
vào nhà trường nói chung và THCS nói riêng là một việc làm cần thiết để các em làm
quen và tiếp cận với công nghệ khoa học tiên tiến.
Khi học sinh bước vào chương trình lớp 8 (Phần I lập trình đơn giản). Học sinh đã
gặp rất nhiều khó khăn và bở ngỡ trong việc để hiểu và giải các bài toán trên máy vi
tính.
Qua bốn năm giảng dạy chương trình tin học lớp 8, tôi nhận thấy rằng kĩ năng giải
bài toán trên máy tính của các em còn yếu.
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ả chương trình
đúng hay sai.
2. Về cơ sở thực tiễn:
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. Song 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à năm nay nghành giáo dục có phát động phong trào giải

toán trên mạng. Điều đó đã thúc đẩy tôi rất nhiều trong việc dạy học là làm sao đưa ra
được cho các em sự đam mê và 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 .
Ngôn ngữ lập trình PASCAL là một phần mềm có cấu trúc và rất được nhiều
độc giả quan tâm và cũng chính đó đã có nhiều cuốn sách 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 này là muốn đưa ra Sử dụng phương pháp
hướng dẫn các bước giải bài toán trên máy tính” sử dụng bằng ngôn ngữ lập trình pascal.
Qua điều tra những tiết học đầu tiên về cả lý thuyết và thực hành tôi tiến hành tổng
hợp và đã thu được kết quả như sau:

6


Lớp
81
82
83
Cộng

Tổng
số
40
40
41
121

SL
8
6
9

23

Giỏi
%
20,00%
15,00%
21,95%
19,01%

SL
15
17
13
45

Khá
TB
Yếu
%
SL
%
SL
%
37,50% 14 35,00% 3 7,50%
42,50% 13 32,50% 4 10,00%
31,71% 17 41,46% 2 4,88%
37,19% 44 36,36% 9 7,44%

Kém
SL %

0
0
0
0
0
0
0
0

III. TỔ CHỨC THỰC HIỆN CÁC GIẢI PHÁP (ĐỀ XUẤT)
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 nhiều 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 cần các bước :
1. Xác định bài toán.
2. Tìm thuật toán.
3. Viết chương trình
4. Chạy thử, sửa đổi chương trình
A. XÁC ĐỊNH BÀI TOÁN
1. 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 lớp 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ải 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, phải làm ra khi kết thúc bài
toán .
- -> Là suy luận: giải pháp cần xác định hay một chuổi thao tác thực hiện từ A đến B.
2. 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.
3. Một số ví dụ
Ví dụ 1: Tính diện tích hình chữ nhật.
7


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 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 xá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
+ Các thông tin cần chế biến như:
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)
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 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
1. 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 và quay trở lại bước
2. Ngược lại ước số chung là b và quay trở lại bước 2.
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
- 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
8


- Các mũi tên quy định trình tự các thao tác

Begin

a, b

a=b

UCLN là a

End
a<>
b
a:= b - a

b:= b - a

3. Cách 3: Dùng ngôn ngữ mô phỏng
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) .
4. Cách 4: Viết chương trình hoàn chỉnh (dùng ngôn ngữ pascal)
Program USCLN;
Var a,b: integer;
Begin
Write('nhap gia tri a =');Readln(a);
Write('nhap gia tri b =');Readln(b);
While a<>b Do
If a>b Then a:=a - b
else b:=b-a;
9



Writeln('uoc so chung lon nhat cua 2 so a va b la',a:);
Readln
END.
C- VIẾT CHƯƠNG TRÌNH
Lập trình là dùng ngôn ngữ máy vi tính cụ thể (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.
1. 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 cài đặt vụng về, lộn xộn thì khi chạy trên
máy tính có thể cho kết quả tồi tệ hoặc là không thể chạy được.
2. 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.
3. 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 rì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.

4. 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. Tính lần 1
- Lấy 2 tập
NT= [ ] (để chứa các số nguyên tố tìm được)
10


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. Tính 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. Tính lấn 3 (chương trình hoàn chỉnh)
Program nguyen_to;
Var N,S: Integer;
Begin
Write(‘Nhap vao mot so nguyen to:’); Readln(N);
If N <= 1 then Writeln (N,’ khong la so nguyen to!’)

Else
Begin
S:=2;
While (N mod S <> 0 ) do S:= S +1;
If S = N then Writeln (N,’ la so nguyen to!’)
Else
Writeln (N,’ khong phai la so nguyen to!’)
End;
Readln
End.
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 cũng như
chiếm bộ nhớ của máy tính càng ít các tốt.
D- CHẠY THỬ , THAY ĐỔI, KIỂM TRA CHƯƠNG TRÌNH:
1. Chạy thử
11


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.
Ví dụ: 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;
var
a,b,c: integer;
begin
write('nhap 3 so a, b, c=');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;
var
a,b,c,t:integer;
begin
write('nhap 3 so a, b, c=');readln(a,b,c);
t:=a;
if tif twrite('so lon nhat la ',t);
readln
End.
Nếu nhập:
Lần nhập
a
b
c
Kết quả
1
5
4
7
7
2

5
7
9
9
3
9
3
5
9
2. 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àm lại từ đầu
12


1
2

1
3

1
n

Ví dụ: viết chương trình tính tổng S= 1 + + + .... + (n được nhập vào từ bàn
phím)
Học sinh viết chương trình khai báo biến S thuộc kiểu dữ liệu nguyên 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.
- 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ụ: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('moi so deu la nghiem');
else
if b=0 then
writeln('phuong trinh co nghiem',-b/a)
else
writeln('phuong trinh vo nghiem')
readln
end.
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)

else
writeln('moi so deu la nghiem');
readln
13


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ụ : 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á DOWNTO nếu ta viết DOWN TO thì sẽ không có
nghĩa.
3. 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.
4. 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 đó.
- 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 tính . Ở 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
14


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.
IV. HIỆU QUẢ CỦA SÁNG KIẾN
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.
Việc làm này đã phát huy năng lực dạy học lập trình của giáo viên và học sinh
trong việc khắc phục những khó khăn, đáp ứng kịp thời, hiệu quả những yêu cầu dạy
học của bộ môn, giúp học sinh nắm bắt kĩ năng giải bài toán trên máy tính, hình
thành tư duy lập trình, giúp học sinh hiểu bài sâu sắc hơn và tạo hứng thú học tập bộ

môn thiết thực góp phần đổi mới phương pháp dạy học và nâng cao chất lượng bài
học tin học.
Đối với học sinh tôi nhận thấy học sinh học tập tích cực, hào hứng, chú ý hơn
và tham gia xây dựng bài sôi nổi hơn. Đặc biệt các em ghi nhớ kiến thức lâu hơn,
chất lượng đi lên rõ rệt.
Sau khi áp dụng các biện pháp trên vào các tiết dạy thể hiện chất lượng các
mức như sau.
Tổng
Lớp
số
81
40
82
40
83
41
Cộng 121

SL
11
10
9
30

Giỏi
%
27,50%
25,00%
21,95%
24,79%


SL
16
18
15
49

Khá
%
40,00%
45,00%
36,59%
40,50%

SL
10
10
15
35

TB
Yếu
%
SL
%
25,00% 3 7,50%
25,00% 2 5,00%
36,59% 2 4,88%
28,93% 7 5,79%


Kém
SL %
0
0
0
0
0
0
0
0

Qua kết quả trên thể hiện rõ việc sử cải tiến phương pháp dạy học trong các bài
giảng tin học đã có hiệu quả, chất lượng mũi nhọn và đại trà khá vững chắc

V. ĐỀ XUẤT, KHUYẾ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 là 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ư:
15


+ Chọn kiểu dữ liệu sai
+ 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 thì 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, 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 để 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.
Bản thân tôi mong muốn góp một phần nhỏ bé của mình vào sự nghiệp giáo
dục. Bởi đây là môn học khá mới mẻ với tất cả các học sinh THCS. Tóm lại các bước
giải một bài toán trên máy vi tính của tôi đưa ra đang còn nhiều thiếu sót. Mong nhận
được sự góp ý của các thầy cô giáo cùng như bạn bè để được hoàn thiện hơn./
VI. DANH MỤC TÀI LIỆU THAM KHẢO
1. Sách giáo khoa tin 8, sách bài tập tin 8.
2. Sách giáo viên tin 8.
3. Hướng dẫn thực hiện chuẩn kiến thức, kĩ năng môn Tin THCS.

16


VII. PHỤ LỤC
GIÁO ÁN THỰC NGHIỆM SƯ PHẠM

Tiết 22
Bài :

BÀI TẬP


I. MỤC TIÊU
1. Kiến thức
- Biết cách xác định bài toán.
- Các bước để mô tả thuật toán.
2. Kỹ năng
- Hiểu được thuật toán, quá trình giải toán trên máy tính.
- Mô tả thành thạo các thuật toán đơn giản.
Thái độ
- Nghiêm túc trong học tập, có tinh thần học hỏi, sáng tạo .
II. CHUẨN BỊ
1. Nội dung:
- Bài toán liên quan đến chương trình học của học sinh.
2. Đồ dùng:
- Giáo viên: Sách giáo khoa, giáo án, đồ dùng dạy học.
- Học sinh:Sách giáo khoa, vở, viết, thước kẻ. Xem bài mới trước khi lên lớp.
III. HOẠT ĐỘNG DẠY HỌC
1. Tổ chức lớp
- Ổn định tổ chức.
- Kiểm tra sĩ số học sinh.
- Phân nhóm học tập.
2. Kiểm tra bài cũ
* Câu hỏi:
- CH1: Nêu khái niệm thuật toán.
* Trả lời:
CH1: * Khái niệm thuật toán:
- Thuật toán là dãy hữu hạn các thao tác cần thực hiện theo một trình tự xác định để
thu được kết quả cần thiết từ những điều kiện cho trước.
3. Bài mới:
* Giới thiệu bài:

Để tìm hiểu kỹ hơn về thuật toán và cách xây dựng thuật toán, tiết học này ta sẽ tìm
hiểu kỹ hơn nữa qua một số bài tập.
* Tiến trình bài dạy:

17


Hoạt động giáo viên
Hoạt động học sinh
Hoạt động 1: Tìm hiểu một số ví dụ
Ví dụ 1: Tính diện tích hình chữ
nhật.
Bước 1
Xác định INPUT và OUTPUT
+ Thông tin vào: Chiều dài là Hs trả lời.
cạnh cd, chiều rộng là cạnh cr
+ Thông tin ra: Kết quả diện
tích
Bước 2
Xây dựng thuật toán
Để tính diện tích hình chữ nhật
ta cần dữ kiện gì?
Hs trả lời.
Công thức tính diện tích hình
Chiều dài, chiều rộng
chữ nhật?
Hs trả lời.
S=chiều dài * chiều
In kết quả ra màn hình ?
rộng

Hs trả lời
Write(‘dien tich hcn’,
Hs hình thành thuật toán qua
S);
các câu hỏi gợi ý
Xây dựng thuật toán bằng lời
Hs xây dựng thuật toán
B1: nhập chiều dài cd, chiều
rộng cr
B2: tính diện tích hình chữ nhật
B3: in kết quả
Xây dựng thuật toán qua sơ
đồ
Lưu ý
- Có hình thoi  thể hiện các
thao tác so sánh
- 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
- Các mũi tên quy định trình tự
các thao tác
Sơ đồ

Nội dung
1. Bài tập 1:
Xác định INPUT và
OUTPUT
+ Thông tin vào: Chiều dài
là cạnh cd, chiều rộng là

cạnh cr
+ Thông tin ra: Kết quả
diện tích

B1: nhập chiều dài cd, chiều
rộng cr
B2: tính diện tích hình chữ
nhật
B3: in kết quả
Sơ đồ

Hs vẽ sơ đồ

18


4. Dặn dò:
- Làm toàn bộ bài tập trong sách giáo khoa, để chuẩn bị cho tiết bài tập hôm sau.
- Cho bài tập về nhà.
* Nội dung:
- Bài tập 1: tính diện tích tam giác.
Hướng dẫn: xác định input, output; xây dựng thuật toán (bằng lời, sơ đồ, sử dụng ngôn
ngữ phỏng trình); viết chương trình.

19


Tiết 23
Bài :


BÀI TẬP

I. MỤC TIÊU
1. Kiến thức
- Biết cách xác định bài toán.
- Các bước để mô tả thuật toán.
2. Kỹ năng
- Hiểu được thuật toán, quá trình giải toán trên máy tính.
- Mô tả thành thạo các thuật toán đơn giản.
Thái độ
- Nghiêm túc trong học tập, có tinh thần học hỏi, sáng tạo .
II. CHUẨN BỊ
1. Nội dung:
- Bài toán liên quan đến chương trình học của học sinh.
2. Đồ dùng:
- Giáo viên: Sách giáo khoa, giáo án, đồ dùng dạy học.
- Học sinh:Sách giáo khoa, vở, viết, thước kẻ. Xem bài mới trước khi lên lớp.
III. HOẠT ĐỘNG DẠY HỌC
1. Tổ chức lớp
- Ổn định tổ chức.
- Kiểm tra sĩ số học sinh.
- Phân nhóm học tập.
2. Kiểm tra bài cũ : Trong quá trình giảng dạy
3. Bài mới:
* Giới thiệu bài:
Để tìm hiểu kỹ hơn về thuật toán và cách xây dựng thuật toán, tiết học này ta sẽ tìm
hiểu kỹ hơn nữa qua một số bài tập.
* Tiến trình bài dạy:

20



Hoạt động giáo viên
Bài tập: Tìm số lớn nhất trong
dãy A các số a1,a2,…,an cho
trước.
Bước 1: Xác định input và
output
- Input: dãy A các số a1,a2,…an
(n>=1).
- Output: Giá trị lớn nhất.
Bước 2 : xây dựng thuật toán
- Muốn so sánh giá trị lớn nhất
của một dãy số ta làm thế nào?
- Nhận xét, đánh giá.
Gợi ý: sử dụng biến max, so
sánh biến max với các số trong
dãy. Nếu số trong dãy lớn hơn
max thì gán max bằng số đó
- Hướng dẫn hs thể hiện thuật
toán này.
- Cho một bộ dữ liệu, yêu cầu
học sinh mô phỏng dựa theo
thuật toán trên. (1,10,6);
Bước A
B
C
Max
1
1

10 6
2
1
10 6
1
3
1
10 6
10
4
1
10 6
10
5
1
10 6
10
- Bộ dữ liệu: 15,13, 20
* Bài giải:
Bước a
b
c
Max
1
15 13 20
2
15 13 20 15
3
15 13 20 15
4

15 13 20 20
5
15 13 20 20

Hoạt động học sinh

Hs xác định.

Nội dung
Xác định bài toán

- Input: dãy A các số a1,a2,
…an (n>=1).
- Output: Giá trị lớn nhất.

Hs trả lời

Hs lắng nghe.

Hs quan sát và giải
thích bảng mô phỏng

Hs tự hoàn thiện bảng.

Hs hình thành thuật
* Thuật toán
toán.
B1: Max ¬ a1 ; i ¬ 1 .
B2: i ¬ i + 1 .
B3: Nếu 1>n, chuyển đến bước

5.
B4:Nếu ai > Max,Max ¬ ai .
Quay lại bước 2
B5: Kết thúc thuật toán.
Cho hs bộ dữ liệu (23;45;24;77) Hs thực hiện
sử dụng thuật toán chạy bảng
mô phỏng
Hoạt động: củng cố
- Hệ thống nội dung toàn bộ bài - Lắng nghe.
giảng.
- Nhắc lại một số khuyết điểm
hs còn thiếu trong quá trình mô
tả thuật toán.

* Thuật toán
B1: Max ¬ a1 ; i ¬ 1 .
B2: i ¬ i + 1 .
B3: Nếu 1>n, chuyển đến
bước 5.
B4:Nếu ai > Max,Max ¬ ai .
Quay lại bước 2
B5: Kết thúc thuật toán.

21


4. Dặn dò:
- Mô tả thuật toán tìm số nhỏ nhất trong dãy số A={a1,a2,…,an}.
+ hướng dẫn: tương tự thuật toán tìm số lớn nhất thay thế bằng phép so sánh a i < Min.
- Đọc bài 6: Câu lệnh điều kiện.

- Tìm một số ví dụ về dạng câu “nếu … thì”.

22


NGƯỜI THỰC HIỆN
(Ký tên và ghi rõ họ tên)

23


BM01b-CĐCN
PHÒNG GD&ĐT ĐỒNG NAI
Đơn vị Trường THCS Đinh Tiên Hoàng
–––––––––––

CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
––––––––––––––––––––––––
Bình Minh , ngày
tháng
năm

PHIẾU ĐÁNH GIÁ, CHẤM ĐIỂM, XẾP LOẠI SÁNG KIẾN
Năm học:2016 - 2017
Phiếu đánh giá của giám khảo thứ nhất
–––––––––––––––––
Tên sáng kiến: ...................................................................................................................................
...........................................................................................................................................................
Họ và tên tác giả: ................................................................ Chức vụ: .............................................

Đơn vị: ..............................................................................................................................................
Họ và tên giám khảo 1: ............................................................ Chức vụ: ........................................
Đơn vị: ..............................................................................................................................................
Số điện thoại của giám khảo: ............................................................................................................
* Nhận xét, đánh giá, cho điểm và xếp loại sáng kiến:
1. Tính mới
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
Điểm: …………./6,0.
2. Hiệu quả
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
Điểm: …………./8,0.
3. Khả năng áp dụng
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
Điểm: …………./6,0.
Nhận xét khác (nếu có): ......................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
Tổng số điểm: ....................../20. Xếp loại: ........................................................................
Phiếu này được giám khảo 1 của đơn vị đánh giá, chấm điểm, xếp loại theo quy định của Sở Giáo dục và Đào
tạo; ghi đầy đủ, rõ ràng các thông tin, có ký tên xác nhận của giám khảo 1 và đóng kèm vào mỗi cuốn sáng kiến liền
trước Phiếu đánh giá, chấm điểm, xếp loại sáng kiến của giám khảo 2.

GIÁM KHẢO 1


24


(Ký tên, ghi rõ họ và tên)

25