Tải bản đầy đủ (.pdf) (20 trang)

(SKKN mới NHẤT) SKKN một số kinh nghiệm hướng dẫn học sinh lập trình tốt

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 (295.85 KB, 20 trang )

Một số kinh nghiệm hướng dẫn học sinh lập trình tốt

I. LÝ DO CHỌN SÁNG KIẾN.
Ngày nay, công nghệ thông tin được ứng dụng rộng rãi trong thực tế ở nhiều
lĩnh vực. Để đáp ứng nhu cầu đó của xã hội, môn Tin học đã được đưa vào
trường trung học phổ thông nhằm bước đầu cung cấp cho các em học sinh những
kiến thức cơ bản. Tuy nhiên, do đặc trưng của mơn học có những khái niệm trừu
tượng nên các em gặp nhiều khó khăn trong q trình tiếp thu bài. Đặc biệt trong
chương trình Tin học 11, khi học phần lập trình địi hỏi phải tư duy thì khó khăn
nhất đối với các em là bước “Lựa chọn và thiết kế thuật toán”.
Việc lựa chọn và thiết kế thuật tốn để giải bài tốn trên máy tính là một
bước rất quan trọng. Bởi vì nếu bỏ qua bước này thì đơi khi việc lập trình cho ra
kết quả không tối ưu. Cũng giống như khi giải một bài tập tốn, vật lý,... để tìm
ra kết quả chính xác thì buộc học sinh phải xác định cơng thức cần áp dụng là
công thức nào.
Khi nắm vững cách lựa chọn và thiết kế thuật tốn, các em học sinh có thể
dễ dàng viết chương trình để giải bài tốn trên máy tính bằng bất kỳ ngơn ngữ
bậc cao nào. Làm được việc này sẽ kích thích sự hứng thú học môn Tin học hơn.
Điều quan trọng hơn, việc lựa chọn và thiết kế thuật toán để giải bài toán
trên máy tính giúp rèn luyện cho học sinh khả năng tư duy, sáng tạo, biết phân
tích và giải quyết tình huống. Đây là những kỹ năng rất cần thiết để sau này các
em hoà nhập vào thực tế cuộc sống.
Từ những lý do nêu trên, qua thực tế giảng dạy bản thân tôi thấy cần đưa ra
một số kinh nghiệm để trao đổi với các đồng nghiệp nhằm giúp học sinh bước
đầu hiểu rõ và tiếp cận với thuật toán giải bài tốn để việc lập trình đạt kết quả tốt
hơn. Vì thời gian có hạn, tơi chỉ trình bày cách xây dựng thuật toán để giải bài
toán bằng cách lập sơ đồ khối.
II.THỰC TRẠNG TRƯỚC KHI THỰC HIỆN CÁC GIẢI PHÁP CỦA
SÁNG KIẾN
1) Thuận lợi:
 Toàn ngành, toàn xã hội đang đề cao việc ứng dụng công nghệ thông


tin vào tất cả các lĩnh vực.
 Môn Tin học là môn chính khố trong trường phổ thơng.
 Các em học sinh thích được thực hành trên máy tính để nghiên cúu
tìm tòi.
Giáo viên: Nguyễn Phạm Bảo Dung – Trường THPT Chuyên Tiền Giang
Trang: 1

download by :


Một số kinh nghiệm hướng dẫn học sinh lập trình tốt

 Ngôn ngữ bậc cao trong môn Tin học gần gũi với ngơn ngữ giao tiếp
trong cuộc sống.
2) Khó khăn:
 Máy vi tính và các thiết bị hỗ trợ cịn hạn chế
 Phần lập trình hồn tồn xa lạ với học sinh.
3) Số liệu thống kê
Qua các lớp tôi đã dạy, khi học đến phần lập trình Pascal đa số các em
học sinh còn lúng túng khi viết một chương trình. Đặc biệt là khái niệm
về bài tốn và thuật toán, các em chưa nắm vững và hay bỏ quên bước
này. Do đó khi viết chương trình, sản phẩm thu được chưa đảm bảo tính
tối ưu.
III. NỘI DUNG ĐỀ TÀI
1) Cơ sở lý luận
 Đa số các câu nói hàng ngày của con người như: “Các bước để vá một
ruột xe bị lủng”, “Nếu….thì…”, “Nếu…thì…ngược lại…”, “Trong khi
….thì làm….” đều có thể diển đạt bằng ngơn ngữ Sơ đồ khối .
 Điều quan trọng là khi đã xây dựng được thuật tốn bằng sơ đồ khối thì
ta có thể sử dụng bất kỳ một ngôn ngữ bậc cao nào cũng viết được

chương trình một cách rất thuận tiện và đảm bảo tính tối ưu.

2). Nội dung,biện pháp thực hiện các giải pháp của sáng kiến.

TĨM TẮT LÝ THUYẾT
A) BÀI TỐN.
 Trong phạm vi tin học, có thể quan niệm bài tốn là một việc nào đó mà ta
muốn máy tính thực hiện.
 Khi dùng máy tính giải bài tốn, ta cần quan tâm đến hai yếu tố:
o Đưa vào máy thơng tin gì (Input)
o Cần lấy ra thơng tin gì (Output).
B) THUẬT TOÁN
Giáo viên: Nguyễn Phạm Bảo Dung – Trường THPT Chuyên Tiền Giang
Trang: 2

download by :


Một số kinh nghiệm hướng dẫn học sinh lập trình tốt

a). Thuật toán để giải một bài toán là một dãy hữu hạn các thao tác được
sắp xếp theo một trình tự xác định sao cho sau khi thực hiện dãy thao tác ấy ,
từ Input của bài toán , ta nhận được Output cần tìm.
Những đặc trưng cơ bản của thuật tốn:
 Tính tổng qt: Thuật tốn khơng đề cập chỉ một bài toán riêng lẽ mà
bao hàm một lớp bài tốn cùng một kiểu,
 Có giới hạn: Q trình biến đổi từ thơng tin ban đầu đến kết quả cuối
cùng qua một số giới hạn các biến đổi.
 Tính duy nhất: Tồn bộ q trình biến đổi, cũng như trình tự thực
hiện phải được xác định và là duy nhất. Như vậy khi dùng thuật toán

cùng một tin tức ban đầu phải có cùng một kết quả.Trong thuật tốn ở
mỗi giai đoạn phải nêu chính xác các bước tiếp theo, có nghĩa là thứ
tự thực hiện, các thao tác và quyết định phải được quy định rõ ràng.
 Tính đúng đắn: Sau khi thuật tốn kết thúc, ta phải nhận được Output
cần tìm.
Thuật tốn có thể phân loại như sau:
 Thuật tốn khơng phân nhánh
 Thuật tốn có phân nhánh
 Thuật tốn theo chu trình có bước lặp xác định và có bước lặp khơng
xác định.
Thuật tốn khơng phân nhánh là thuật toán đơn giản nhất. Trong thực
tế thường gặp thuật toán phân nhánh theo các điều kiện so sánh đúng
hoặc sai. Phổ biến nhất trong các bài tốn thực tế là thuật tốn gồm nhiều
chu trình , theo nhiều nhánh, đó là đặc trưng của thuật tốn giải các bài
tốn khoa học kỹ thuật
b). Các kí hiệu để diễn tả thuật toán bằng sơ đồ khối.

Thể hiện thao tác so sánh

Giáo viên: Nguyễn Phạm Bảo Dung – Trường THPT Chuyên Tiền Giang
Trang: 3

download by :


Một số kinh nghiệm hướng dẫn học sinh lập trình tốt

Thể hiện các phép tính tốn

Thể hiện các thao tác nhập, xuất dữ liệu


Quy định trình tự thực hiện các phép tốn
Lưu ý:
 Với hình ơ van thì chỉ có một hướng mũi tên đi ra cho trường hợp
thao tác nhập dữ liệu và chỉ có một hướng đi vào cho thao tác xuất
dữ liệu
 Với hình chữ nhật thì có một hướng mũi tên vào và một hướng mũi
tên ra
 Với hình thoi thì có một hướng mũi tên vào và hai hướng mũi tên ra

Giáo viên: Nguyễn Phạm Bảo Dung – Trường THPT Chuyên Tiền Giang
Trang: 4

download by :


Một số kinh nghiệm hướng dẫn học sinh lập trình tốt

MỘT SỐ VÍ DỤ
VỀ LỰA CHỌN VÀ THIẾT KẾ THUẬT TỐN
. Thuật tốn khơng phân nhánh
VD1:
Cho A=x2+y2;
B=x+y+3A;
C=xy+A-2B2;
x,y R. Hãy mơ tả thuật toán giải bài toán bằng sơ đồ khối để tính C

* Xác định bài tốn
 Input: x,y
 Output: C

Lưu ý: Muốn tính được C thì đầu tiên ta phải tính A và B
Sơ đồ khối

Nhập x, y

Ax*x+y*y

Bx+y+3*A
Cx*y+A-2*B*B

Thơng báo C
rồi kết thúc

Giáo viên: Nguyễn Phạm Bảo Dung – Trường THPT Chuyên Tiền Giang
Trang: 5

download by :


Một số kinh nghiệm hướng dẫn học sinh lập trình tốt

VD2:
Tí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= 2 gh , trong
đó g là gia tốc rơi tự do và g = 9.8 m/s2. Độ cao h được nhập từ bàn phím. Hãy mơ tả
thuật tốn giải bài tốn bằng sơ đồ khối.
* Xác định bài toán
 Input: h
 Output: v
Lưu ý: Ta có thể khai báo g là hằng số hoặc không là hằng số
Sơ đồ khối


Nhập h

v  sqrt(2*9.8*h)

Thông báo v
rồi kết thúc

BÀI TẬP ĐỀ NGHỊ
Hãy mô tả thuật toán giải các bài toán sau bằng sơ đồ khối:
Bài 1:
Nhập từ bàn phím độ dài 3 cạnh của tam giác ABC, rồi tính chu vi, diện tích và
các đường cao của tam giác.
Hướng dẫn:
- Input: độ dài 3 cạnh a,b,c
- Output: chuvi, dientich, các đường cao ha,hb,hc
- Sử dụng các cơng thức:
Chu vi:
2p=a+b+c;
Diện tích: s = p(p-a)(p-b)(p-c) ;
Giáo viên: Nguyễn Phạm Bảo Dung – Trường THPT Chuyên Tiền Giang
Trang: 6

download by :


Một số kinh nghiệm hướng dẫn học sinh lập trình tốt

Các đường cao:


ha=

2s
;
a

,

hb=

2s
;
b

hc=

2s
;
c

Bài 2
Nhập từ bàn phím toạ độ 3 điểm A,B,C. Tính tích vơ hướng của hai vectơ AB
và AC .
Hướng dẫn:
- Input: Toạ độ 3 điểm A, B và C;
- Output: Tích vơ hướng AB. AC ;
- Sử dụng các công thức: 
vectơ:
AB=(x B -x A ;y B -y A ) ;


AC=(x C -x A ;yC -y A ) ;
 

Tích vơ hướng: AB.AC=(x B -x A ).(x C -x A )+(y B -y A ).(yC -y A ) ;
Bài 3
Nhập từ bàn phím toạ độ 3 điểm A,B,C. Tính độ dài các đoạn thẳng AB,AC và
BC.
Hướng dẫn:
- Input: Toạ độ 3 điểm A, B và C;
- Output: Độ dài các đoạn thẳng AB,AC và BC
- Sử dụng các công thức:


AB= AB = (x B -x A ) 2 +(y B -y A ) 2 ;
Bài 4
Giải tam giác khi biết góc B, cạnh a và góc C.
Hướng dẫn
- Input: Góc B , C và cạnh a;
- Output: Góc A, cạnh b và c
- Sử dụng các cơng thức:
* Đổi độ ra rad :

 .
;
180

* A+B+C=1800;
*

a

b
c
=
=
;
sinA sinB sinC

Giáo viên: Nguyễn Phạm Bảo Dung – Trường THPT Chuyên Tiền Giang
Trang: 7

download by :


Một số kinh nghiệm hướng dẫn học sinh lập trình tốt

. Thuật tốn có phân nhánh
Sơ đồ:
Dạng thiếu

Điều
kiện

Đúng

Câu lệnh

Sai

Dạng đủ


Câu lệnh
2

Sai

Điều
kiện

Đúng

Câu lệnh
1

Chú ý:
 Ta có thể sử dụng cấu trúc rẽ nhánh lồng nhau

Giáo viên: Nguyễn Phạm Bảo Dung – Trường THPT Chuyên Tiền Giang
Trang: 8

download by :


Một số kinh nghiệm hướng dẫn học sinh lập trình tốt

VD3:
Tìm số lớn nhất trong hai số thực A và B
Hãy mơ tả thuật tốn giải bài tốn bằng sơ đồ khối
* Xác định bài toán
 Input: A,B
 Output: Số lớn nhất trong hai số


Sơ đồ khối

Nhập A,B

A>=B

S

Lớn nhất là B
và kết thúc

Đ

Lớn nhất là A
và kết thúc

Giáo viên: Nguyễn Phạm Bảo Dung – Trường THPT Chuyên Tiền Giang
Trang: 9

download by :


Một số kinh nghiệm hướng dẫn học sinh lập trình tốt

VD4:
Tìm số lớn nhất trong ba số thực A , B và C
Hãy mơ tả thuật tốn giải bài tốn bằng sơ đồ khối
* Xác định bài toán
 Input: ba số thực A,B,C

 Output: Số lớn nhất trong ba số

Sơ đồ khối
Nhập A,B,C

Đ

A>C

A>B

S

S

S

B>C

Đ

Đ

Max  A

Max  C

Max  B

Thông báo Max

và kết thúc

Giáo viên: Nguyễn Phạm Bảo Dung – Trường THPT Chuyên Tiền Giang
Trang: 10

download by :


Một số kinh nghiệm hướng dẫn học sinh lập trình tốt

VD5:

Cho phương trình bậc hai ax2+bx+c=0
Hãy mơ tả thuật tốn giải bài toán bằng sơ đồ khối
* Xác định bài tốn
 Input: a,b,c (a<>0)
 Output: Nghiệm x thoả phương trình ax2+bx+c=0
Sơ đồ khối

Nhập a,b,c
(a<>0)

Db*b-4*a*c

D<0

Thông báo PT
vô nghiệm rồi
kết thúc


Đ

S

D=0

Đ

x-b/(2*a)

Thông báo PT
có nghiệm kép
x rồi kết thúc

S

x1(-b+sqrt(D))/(2*a)
x2(-b-sqrt(D))/(2*a)

Thơng báo PT có
2 nghiệm x1 và x2
rồi kết thúc

Giáo viên: Nguyễn Phạm Bảo Dung – Trường THPT Chuyên Tiền Giang
Trang: 11

download by :


Một số kinh nghiệm hướng dẫn học sinh lập trình tốt


BÀI TẬP ĐỀ NGHỊ
Hãy mơ tả thuật tốn giải các bài toán sau bằng sơ đồ khối:
Bài 1: Nhập dữ liệu là tháng trong năm
Hướng dẫn
- Tháng trong năm phải từ 1 đến 12
- Nếu thỏa thì thơng báo là tháng, ngược lại thì thơng báo khơng
phải là tháng trong năm
Bài 2: Nhập vào một năm cho ra số ngày của năm đó
Hướng dẫn
- Có hai loại ngày là 365 ngày và 366 ngày
- Năm nhuận là 365 ngày, không nhuận là 366 ngày
- Năm nhuận là năm chia hết cho 400 hoặc chia hết cho 4 nhưng
không chia hết cho 100
Bài 3: Tính căn bậc hai của một số
Hướng dẫn
- Sử dụng hàm Sqrt(x)
- Nếu nhập vào số âm thì thơng báo số đó khơng có căn bậc hai
Bài 4: Giải bất phương trình ax+b> 0
Hướng dẫn
- Sử dụng thuật toán như các bài đã gặp
Bài 5: Nhập một điểm thi của học sinh và phân loại nếu điểm thấp hơn 5 thì khơng
đạt, từ 5 đến < 6.5 thì trung bình, từ 6.5 đến <8 thì khá, từ 8 đến < 9 thì giỏi, >=9
đến 10 thì xuất sắc.
Hướng dẫn
- Sử dụng If lồng nhau

Giáo viên: Nguyễn Phạm Bảo Dung – Trường THPT Chuyên Tiền Giang
Trang: 12


download by :


Một số kinh nghiệm hướng dẫn học sinh lập trình tốt

. Thuật tốn theo chu trình có bước lặp xác định.

Sơ đồ:

Câu lệnh

Điều kiện

Sai

Đúng

Giáo viên: Nguyễn Phạm Bảo Dung – Trường THPT Chuyên Tiền Giang
Trang: 13

download by :


Một số kinh nghiệm hướng dẫn học sinh lập trình tốt

VD6:
n

Tính tổng S  x1  x 2  ...  x n ;(S   x k )
k 1


Hãy mơ tả thuật tốn giải bài tốn bằng sơ đồ khối
* Xác định bài toán
 Input: Số nguyên dương n và x1,x2,…,xn;
 Output: Tổng S
Sơ đồ khối

Nhập n và
x1,x2,…,xn

S0
i1
SS+xi
ii+1

Đ

i <= n
S

Thông báo S
rồi kết thúc

Giáo viên: Nguyễn Phạm Bảo Dung – Trường THPT Chuyên Tiền Giang
Trang: 14

download by :


Một số kinh nghiệm hướng dẫn học sinh lập trình tốt


VD7:
Tính giai thừa của một số nguyên dương n (n!=1.2.......(n-1).n.
Hãy mơ tả thuật tốn giải bài tốn bằng sơ đồ khối
* Xác định bài toán
 Input: Số nguyên dương n;
 Output: Giai thừa của n (GT)

Sơ đồ khối

Nhập n

GT1
i1
GTGT*i
ii+1

Đ

in
S

Thông báo GT
rồi kết thúc

Giáo viên: Nguyễn Phạm Bảo Dung – Trường THPT Chuyên Tiền Giang
Trang: 15

download by :



Một số kinh nghiệm hướng dẫn học sinh lập trình tốt

BÀI TẬP ĐỀ NGHỊ
Hãy mơ tả thuật tốn giải các bài tốn sau bằng sơ đồ khối:
Bài 1: Tính tổng
S= 1 + 2 + 3 + ………..+ n
với n nhập từ bàn phím
Bài 2: Tính tổng
1 1
1
S  1    ....... 
2 3
n
với n nhập từ bàn phím
Bài 3: Tính tổng
S= 12 + 22 + 32 + ………..+ n2
với n nhập từ bàn phím
Bài 4: Tính tổng

S  1

1 1
1
  ....... 
1! 2!
n!

với n nhập từ bàn phím
Bài 5: Tính tích

n

P  x 1*x 2 *...* x n ;(P   x i )
i 1

với n nhập từ bàn phím

. Thuật tốn theo chu trình có bước lặp không xác định.
Sơ đồ:

Điều
kiện

Sai

Đúng

lệnhTHPT Chuyên Tiền Giang
Giáo viên: Nguyễn Phạm Bảo Dung Câu
– Trường
Trang: 16

download by :


Một số kinh nghiệm hướng dẫn học sinh lập trình tốt

VD8:
Tìm ước số chung lớn nhất của hai số nguyên dương a và b
Hãy mơ tả thuật tốn giải bài toán bằng sơ đồ khối

* Xác định bài toán
 Input: Số nguyên dương a,b;
 Output: UCLN(a,b)
Sơ đồ khối
Nhập a, b

a <> b
S

Thông báo UCLN
là a, kết thúc

Đ

a>b

S

Đ

aa - b

Giáo viên: Nguyễn Phạm Bảo Dung – Trường THPT Chuyên Tiền Giang
Trang: 17

download by :

bb - a



Một số kinh nghiệm hướng dẫn học sinh lập trình tốt

VD9:
1
1 1
1
 e với e là lượng nhập khá nhỏ
 ... 
cho đến khi
1! 2!
n!
(n  1)!

Tính S  1  

Hãy mơ tả thuật tốn giải bài tốn bằng sơ đồ khối
* Xác định bài toán
 Input: Số thực dương e;
 Output: Tổng S;
Sơ đồ khối
Nhập e

S1

i1

gt  1

sh  1/gt


sh>=e

S

Thông báo S
và kết thúc

Đ

S  S + sh
ii+1
gt  gt*i
sh  1/gt
Giáo viên: Nguyễn Phạm Bảo Dung – Trường THPT Chuyên Tiền Giang
Trang: 18

download by :


Một số kinh nghiệm hướng dẫn học sinh lập trình tốt

BÀI TẬP ĐỀ NGHỊ
Hãy mơ tả thuật tốn giải các bài toán sau bằng sơ đồ khối:
Bài 1 :
x x2
xn
x n 1
Nhập vào x. Tính e  1    ... 
cho đến khi
 e với e là lượng

1! 2!
n!
(n  1)!
x

nhập khá nhỏ
Hướng dẫn
- Tương tự VD11.

Bài 2:
Tính tổng các số dương và trung bình cộng các số âm của các số nhập vào từ
bàn phím cho đến khi số nhập vào bằng 0.
Hướng dẫn
- Công việc lặp phải có sử dụng cấu trúc If để tính tổng các số
dương và trung bình các số âm.

Bài 3: Kiểm tra xem khi nhập một số tự nhiên vào có phải là số nguyên tố hay không.
Hướng dẫn
- Nhập vào số tự nhiên N
- Chú ý: N<=1 thì thơng báo “Không xét”
- Lấy N chia cho các số tự nhiên lớn hơn 1 và nhỏ hơn nó. Nếu N
là số ngun tố thì các phép chia có số dư khác 0. Nếu N khơng
là số ngun tố thì sẽ có một phép chia có dư bằng 0

IV. KẾT QUẢ
Nói chung, thông qua một môn học, giáo viên không chỉ truyền đạt cho học
sinh những kiến thức tối thiểu mà còn kích thích cho các em sự hứng thú học tập, sự
tìm tịi sáng tạo. Từ đó các em sẽ mang những điều đã học vận dụng vào thực tế cuộc
sống. Riêng bộ mơn Tin học, người giáo viên càng có nhiểu thuận lợi để thực hiện
điều đó. Thực tế sau khi áp dụng sáng kiến kinh nghiệm này vào giảng dạy môn Tin

học lớp 11 ở trường tôi nhận thấy chất lượng bộ môn được nâng cao đáng kể:
 Kỹ năng tư duy, sáng tạo, biết phân tích và giải quyết tình huống của các em
học sinh ngày càng tốt hơn.
 Các em có thể tự viết được những chương trình để giải các bài tập Tốn, Lý,
Hố của bậc phổ thông.
Giáo viên: Nguyễn Phạm Bảo Dung – Trường THPT Chuyên Tiền Giang
Trang: 19

download by :


Một số kinh nghiệm hướng dẫn học sinh lập trình tốt

 Vì nhận thấy được những ứng dụng rất hữu ích của môn Tin học thông qua việc
lựa chọn và thiết kế thuật tốn để viết một chương trình nên các em học sinh
càng yêu thích và say mê học hơn, kết quả học tập của các em tốt hơn.
V. BÀI HỌC KINH NGHIỆM

Sau khi thực hiện sáng kiến tôi rút ra những kinh nghiệm sau:
 Vì “lựa chọn và thiết kế thuật tốn” nằm trong chương trình Tin học lớp 10
nhưng được ứng dụng vào chương trình Tin học lớp 11, nên khi giáo viên yêu
cầu viết chương trình để giải một bài tốn thì học sinh hay bỏ qua bước này.
 Trong q trình dạy ln phát huy tính tích cực, chủ động, sáng tạo của học
sinh.
 Tổ chức hoạt động nhóm để các em thảo luận và xây dựng ý tưởng trước khi
thiết kế thuật toán.
 Hướng dẫn để giúp các em học sinh biết lựa chọn thuật tốn tối ưu nhất.
 Tạo khơng khí học tập thân thiện.
VI. TÀI LIỆU THAM KHẢO


- Tin học lớp 10 – Nhà xuất bản giáo dục
- Tin học lớp 10 – Sách giáo viên– Nhà xuất bản giáo dục
- Tin học lớp 11 – Nhà xuất bản giáo dục
- Tin học lớp 11 – Sách giáo viên– Nhà xuất bản giáo dục

Giáo viên: Nguyễn Phạm Bảo Dung – Trường THPT Chuyên Tiền Giang
Trang: 20

download by :



×