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

Sáng kiến kinh nghiệm phân bậc hệ thống bài tập xây dựng thuật toán 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 (540.37 KB, 22 trang )

      SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HỐ

      TRƯỜNG THPT BA ĐÌNH NGA SƠN

     SÁNG KIẾN KINH NGHIỆM
  

PHÂN BẬC HỆ THỐNG BÀI TẬP
      XÂY DỰNG THUẬT TỐN GIẢI BÀI TỐN TRÊN MÁY TÍNH

Họ và tên: Vũ Thị Huệ
                  
Chức vụ: Giáo Viên 
                      
Đơn vị cơng tác: Trường THPT Ba Đình  Nga Sơn
                             SKKN thuộc mơn: Tin Học
                         
 

    
    


THANH HOÁ NĂM  2016


Mục lục
I.  Mở đầu.........................................................................................................1
1. Lý do chọn đề tài......................................................................................1
2. Mục đích nghiên cứu.................................................................................1
3. Đối tượng nghiên cứu...............................................................................1


4. Phương pháp nghiên cứu..........................................................................2
II. Nội dung sáng kiến kinh nghiệm..............................................................2
     1. Cơ sở lý luận của vấn đề.........................................................................2
     2. Thực trạng của vấn đề trước khi áp dụng sáng kiến kinh nghiệm........2
     3. Giải pháp và tổ chức thực hiện................................................................3
     4.  Hiệu quả của đề  tài nghiên cứu“ Phân bậc hệ thống bài tập xây dựng  
thuật tốn giải bài tốn trên máy tính”...............................................................17
III . Kết luận và đề xuất………………………………………………………
17
1.
 
 
Kết
 
……………………………..17

luận……………………….…………..

2.
 
Đề
 
………………………………………………………………….18

Xuất 


I.

  Mở đầu

1. Lý do chọn đề tài.

Xây dựng thuật tốn là định hướng và hình thành cho học sinh ý tưởng 
lập trình giải các bài tốn trên máy tính. Trong chương trình Tin Học lớp 10,  
bài học số  4 “BÀI TỐN VÀ THUẬT TỐN” các em bước đầu được làm 
quen và hình thành xây dựng các thuật tốn đơn giản để giải các bài tốn trong 
chương trình phổ thơng. Qua thực tế  giảng dạy cho các em cá nhân tơi nhận  
thấy các em biết đưa ra các bài tốn, hiểu khái niệm bài tốn, biết xác định rõ 
INPUT, OUTPUT và đưa ra các ý tưởng để giải các bài tốn đó rất tốt. 
Tuy nhiên, “ Thuật tốn” hiểu mơn na là thủ thuật để giải một bài tốn,  
mà cịn rộng hơn là thuật giải, là sáng tạo và tư  duy của con người, khơng  
phải của máy tính. Đó là một khái niệm mới và tương đối khó với các em học  
sinh. Các em hãy cịn nhiều lúng túng và khó khăn khi xây dựng thuật tốn 
cũng như mơ tả cho thuật tốn.
Trăn trở với những vấn đề  này bản thân tơi đã tích cực nghiên cứu nội 
dung sách giáo khoa, các tài liệu tập huấn dạy học, tham gia các chun đề 
đổi mới phương pháp dạy học, đặc biệt tích cực dự  giờ  các đồng nghiệp 
cùng mơn và đúc rút kinh nghiệm, tơi lấy các ví dụ  gần gũi với các em trong 
cuộc sống, tích hợp kiến thức từ  các mơn học như  vật lý, tốn học…từ  các  
bài tốn dễ  đến các bài tốn khó và bám sát theo ba dạng cấu trúc lập trình: 
Tuần tự, rẽ nhánh và lặp. Tơi đã mạnh dạn ứng dụng sáng kiến kinh nghiệm  
“ Phân bậc hệ thống bài tập xây dựng thuật tốn giải bài tốn trên máy 
tính”  vào giảng dạy và đã thu được các tiết học thực sự  lý thú và có hiệu 
quả.
2. Mục đích nghiên cứu
Đứng trước một bài tốn cần giải trên máy tính, tơi muốn cho các em 
hiểu việc  xác định bài tốn, đặt vấn đề cho bài tốn rồi tìm và xây dựng thuật  
tốn là vấn đề quan trọng, chủ chốt để viết lên chương trình. Các em sẽ phải  
biết đưa ra các thuật tốn với một tập hữu hạn các thao tác, phép tốn…được 
đặt tên, được thực hiện theo một trình tự  thích hợp đối với một đối tượng  

nào đó để  đạt được điều mong muốn – Đó là một thuật tốn tối  ưu. Các em 
biết mơ tả thuật tốn đối với một số bài tốn trong chuẩn kiến thức. Như vậy  
việc lựa chọn ngơn ngữ viết chương trình để diễn tả thuật tốn khơng cịn là 
vấn đề  khó khăn. Các em sẽ  thấy hứng thú và u thích mơn học hơn. Giúp  
các em có kiến thức về lập trình.
3. Đối tượng nghiên cứu
­  Là các thuật tốn cho các bài tốn có tính phân bậc từ dễ  đến khó và 

theo ba cấu trúc lập trình: Tuần tự, rẽ nhánh và cấu trúc lặp, phù hợp với nội 
dung chương trình và đối tượng dạy học Tin Học lớp 10.
1


­ Tơi đã áp dụng với các em  học sinh khối 10 trường THPT Ba Đình – 
Nga Sơn – Thanh Hóa, dạy cho các em biết và thấy được việc xây dựng thuật  
tốn giải bài tốn trên máy tính khơng phải là khó, các em thực sự u thích và  
đam mê lập trình Tin Học. 
4. Phương pháp nghiên cứu
Đề tài sử dụng phương pháp nghiên cứu xây dựng cơ sở lý thuyết, phân 
tích tổng hợp, điều tra khảo sát thực tế và xử lý số liệu.
II.
Nội dung sáng kiến kinh nghiệm 
1. Cơ sở lý luận của vấn đề
Để  học tốt lập trình, dù là ngơn ngữ  nào thì xác định bài tốn và trình 
bày thuật tốn là điều đầu tiên học sinh cần phải nắm vững.
Thuật tốn để  giải một bài tốn là một khái niệm mới mẻ  và khó đối  
với các em học sinh. Các em cịn nhiều lúng túng, khơng tìm ra cách giải quyết 
cũng như trình bầy một thuật tốn, chưa hình dung được các bước thực hiện 
theo trình tự để máy tính thực hiện, chưa mơ tả được thuật tốn bằng những 
ví dụ. Các em chưa biết thực hiện hay lựa chọn được thuật tốn tối ưu cũng 

như chỉ ra ba tính chất của thuật tốn là tính đúng đắn, tính chính xác và tính  
dừng. Điều này sẽ   ảnh hưởng tới khả  năng tiếp thu về  kiến thức lập trình 
của các em lại càng khó khăn hơn, dẫn đến các em có tâm lí học chán nản,  
khơng thích học mơn lập trình.
Hiện nay trong các tài liệu về các ngơn ngữ lập trình, các ví dụ về thuật 
tốn cịn hạn chế, rất ít, các tài liệu tham khảo về thuật tốn cho các em học 
sinh chưa có nhiều. Việc đưa ra hệ thống các bài tập có tính phân bậc cho các  
em hoc sinh giúp các em dễ  dàng nắm bắt nội dung của bài học mà cịn định  
hướng và phát triển tư  duy cho các em về  khả  năng ngơn ngữ  lập trình, linh  
hoạt và hình thành năng lực tích cực, thiết thực cho các em. Xây dựng cơ  sở 
cả về lý thuyết lẫn vận dụng, đem lại hiệu quả cao cho người học và người  
dạy.  
2. Thực   trạng   của   vấn   đề   trước   khi   áp   dụng   sáng   kiến   kinh 
nghiệm
­ Thực trạng việc dạy nội dung  “Bài tốn và thuật tốn”.
Các ví dụ về bài tốn và thuật tốn như trong sách giáo khoa Tin Học 10, sách  
bài tập, đó là các bài tốn rất điển hình, hay và cũng rất khó với các em học  
sinh.  Để các em có thể  tiếp thu được, mặc dù sách giáo khoa đã trình bầy rất 
cụ  thể  từ  ý tưởng giải bài tốn, thuật tốn thực hiện, các ví dụ  mơ tả  thuật 
tốn. Thế nhưng  làm thế nào để học sinh có thể hiểu, nắm vững và ghi nhớ 
các thuật tốn này, nhiều giáo viên vẫn chưa tìm ra cách giảng dạy phù hợp  
với khả năng tiếp thu của các em, cịn lúng túng trong cách truyền đạt, áp đặt 
2


như  trong sách giáo khoa dẫn đến các em chỉ  nhớ  thuật tốn máy móc chứ 
khơng hiểu bản chất của thuật tốn. Việc tiếp thu kiến thức của các em 
khơng sâu và nhanh qn.
­ Thực trạng của việc học nội dung “ Bài tốn và thuật tốn”.
 Các em cịn gặp nhiều khó khăn trong q trình nắm bắt cũng như việc mơ tả 

thuật tốn nếu như tơi lấy ví dụ  bằng các bộ  INPUT khác. Rất ít các em tìm  
được các bước để giải một bài tốn, nếu có tìm được các em cũng khơng nhớ 
lâu và nhớ  theo kiểu máy móc. Các em chưa hình dung ra được trình tự  thực  
hiện các bước theo các chu trình khi điều kiện được thỏa mãn hay chưa, hay 
q trình thực hiện lặp đi lặp lại để thực hiện cơng việc. Hay nói đúng hơn là  
các em chưa biết thể hiện theo các bước của thuật tốn, lựa chọn thuật tốn  
tối ưu, chỉ ra được ba tính chất của thuật tốn. Chính vì các hạn chế trên dẫn 
tới chất lượng học sinh mắn bắt được thuật tốn và mơ tả  thuật tốn cịn ít, 
làm cho kết quả mơn học thấp. Cũng vì những kết quả  như  trên  nên khi lên 
lớp 11 các em  rất bỡ ngỡ và cảm thấy xa lạ với mơn học lập trình., khó khăn 
để áp dụng các câu lệnh đã được  học để viết một chương trình cụ thể.
­ Kết quả. 
Qua khảo sát  ở  các em khối 10 năm học 2014 – 2015, sau khi học xong bài 
học số 4 “ Bài tốn và thuật tốn” khi chưa áp dụng những giải pháp phân bậc 
hệ thống bài tập xây dựng thuật tốn giải bài tốn hướng tới lập trình giải các 
bài tốn trên máy tính, qua bài kiểm tra 15 phút với câu hỏi và kết quả  thu  
được như sau.
Câu 1. Hãy trình bầy thuật tốn và mơ tả cho thuật tốn giải bài tốn sau 
bằng cách liệt kê hoặc bằng sơ đồ khối.
a. Tính giá trị của  Y=

5
n 1

n
n 1

.

Đa số các em chưa hình dung và biểu diễn được chu trình lặp của biến 

điều khiển, cịn lúng túng khi mơ tả  thuật tốn, hiểu về  bản chất của thuật  
tốn chưa sâu. Cụ thể kết quả thu được .
Lớp

Số HS

10A
10B
10G

45
45
45

Nắm vững thuật tốn

Chưa nắm vững thụât tốn

Số lượng
25
18
12

Số lượng
20
27
33

%
56

40
27

%
44
60
73

Vậy nên tơi đã đưa ra các bài tốn trong cuộc sống, gần với chương  
trình học của các em như bài tốn vo gạo, tính giá trị biểu thức, chuyển động 
ném ngang, tính gia tốc của vật rơi tự do, giải phương trình bậc nhất một ẩn  
hay đơn giản là bài tốn tính chu vi, diện tích của hình chữ nhật, hình vng, 
khi biết trước các cạnh. Các em đã tiếp cận nhẹ  nhàng, làm rất tốt, từ  từ và 
dần dần hiểu rõ về thuật tốn, biết trình bày thuật tốn từ dễ đến khó sau đó 
hình dung và hiểu được cách giải  một bài tốn  trên máy tính thực hiện. 
3


 sau đây là hệ thống các bài tập có tính phân bậc từ mức độ dễ đến khó 
theo ba cấu trúc tuần tự, rẽ nhánh và cấu trúc lặp, dẫn dắt cho các em trước 
khi làm quen tiếp thu với các ví dụ về thuật tốn như trong sách giáo khoa Tin 
Học lớp 10.
3. Giải pháp và tổ chức thực hiện
a. Phân bậc hệ thống bài tập thuật tốn theo cấu trúc tuần tự
Các bài tốn thực hiện theo cấu trúc tuần tự  các em dễ  hiểu, dễ  nắm  
bắt hơn nhất, gần với các bài tốn tự nhiên. Các em đưa ra ý tưởng và nhanh 
chóng trình bày được các bước của bài tốn. Từ đó ta dễ dàng dẫn dắt tới các  
bước của thuật tốn để giải các bài tốn đó cho các em ở mức độ cao hơn.
Bài tốn 1: Thuật tốn nấu cơm ( là cơng việc hàng ngày của các em)
INPUT: Gạo, nước, nồi.

OUTPUT: Cơm chín ngon.
B1. Lấy gạo theo định lượng cần thiết;
B2. Vo gạo rồi đổ gạo, nước vào nồi;
B3. Đun sơi cạn nước;
B4. Giữ nhỏ lửa;
B5. Cách 5 phút một: Nếm cơm chín chưa?
+ Nếu chưa chín, quay lại B5;
+ Nếu cơm chín chuyển sang B6;
B6. Tắt lửa và bắc nồi cơm ra, kết thúc;
Bài tốn 2: Bài tốn luộc rau muống
INPUT: Rau muống, nước, muối, nồi, chanh, mì chính.
OUTPUT: Rau chín tới, nước xanh ngon.
B1. Nhặt rau, rửa rau, rửa nồi, đổ nước vào nồi vừa đủ ăn;
B2. Bắc nồi lên bếp, vắt 5 giọt nước chanh vào nồi, đun sơi nước;
B3. Cho rau vào nồi khoảng 1 phút đảo rau một lần đến khi sơi đều, rau 
mềm vừa tới thì tắt bếp;
B4. Vớt rau ra đĩa, pha mì chính, muối, chanh vừa đủ vào nước rau;    
Bài tốn 3. Thuật tốn tính tổng của hai số a và b nhập vào từ bàn phím.
­ INPUT: Hai số a, b.
­ OUTPUT: Tổng S.
B1. Nhập a, b;
B2. S←a+b;
B3. Đưa ra S;

Nhập   a,b

B1

S   ←  a+b


B2

S

B3

Ví dụ:         
B1.    7    9;

7       9
S      ← 7+9
         16

4


B2.    S←7+9;
B3.    16;

Bài tốn 4: Xây dựng thuật tốn tính giá trị  biểu thức y= (3x 2+7x)/5, Với x 
nhập vào từ bàn phím.
­ INPUT: x.
­ OUTPUT: Giá trị y.
B1: Nhập x;
B2: y ← (3*x*x+7*x)/5;

Nhập   x

B1


Y←  (3*x*x+7*x)/5;

B2

Y

B3

B3: Hiển thị y và kết thúc;

Bài tốn 5  : Thuật tốn tính diện tích, chu vi của hình vng có chiều dài các 
cạnh là a nhập vào từ bàn phím.
­ INPUT: Độ dài các cạnh hình vng là a. 
­ OUTPUT: S, C.
B1. Bắt đầu;
B2. Nhập độ dài cạnh là a;

Bắt đầu

Nhập   a
S←  a*a, C← a+a+a+a;

B3. Tính  S ← a*a, C← a+a+a+a;
          B4. Hiển thị S, C ;

S,   C

          B5. kết thúc;

Kết thúc


Mơ tả cho thuật tốn

Bắt đầu

B1. Bắt đầu;
B2.   7;
B3. S←  7*7,  C← 7+7+7+7;
B4.   49    28;

B1

B2
B3
B4
B5

7

S←  7*7,  C← 7+7+7+7;
49   28
Kết thúc

5


B5. Kết thúc;

Bài tốn 6: Xây dựng thuật tốn tính và đưa ra màn hình diện tích phần được  
gạch chéo trong hình sau, với a(a>0) nhập vào từ bàn phím.

Ý  tưởng:  Tính  diện  tích  hình  trịn  có  bán  kính  a, 
diện  tích  phần  gạch  chéo  bằng  1/2  diện  tích  hình 
trịn.
­  INTPUT: Số a >0.
     ­  OUTPUT:  Diện tích phần gạch chéo Sgc
Hình vẽ

Nhập   a

B1

Sgc←π*a*a/2

B2

Sgc

B3

B1. Nhập a>0;
B2. Sgc←π*a*a/2;
B3. Hiển thi Sgc và kết thúc;

Bài tốn 7. Xây dựng thuật tốn 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 =  2 gh , trong đó g là gia tốc rơi 
tự do và g=9,8m/s2. Độ cao h (m) được nhập từ bàn phím.
­ INPUT: Độ cao h.

B1


Bắt đầu

­ OUTPUT: Vận tốc v.
B1. Bắt đầu;
B2: Nhập h;

B2

Nhập h

B3

v← ;

B3: Tính v←  2 * g * h ;
B4: Hiển thị v ;
B5. Kết thúc;

B4

v

B5

Kết thúc

6


Bài tốn 8: Xây dựng thuật tốn hốn đổi gía trị của hai biến a và c qua biến 

trung gian b
­ Ý tưởng: Chuyển gía trị của biến a sang biến b, chuyển gía trị của biến  
c sang biến a sau cùng chuyển gía trị của biến b sang biến c.
­ INPUT: a,b,c.
­ OUTPUT: Giá trị của a và c đã được hốn đổi cho nhau.
B1.  Nhập giá trị a, b;
B2. b ← a;
B3. a← c;
B4. c←b;
B5. Đưa ra giá trị mới của a và c rồi kết thúc;

x

Nhập a, b

B1

x

Ban đầu

b ← a

B2

x

b lấy gía  trị của a

a ← c


B3

x

a lấy giá  trị của c

c ← b

B4
c  lấy giá  trị của b

Đưa ra giá trị mới của 
a và c rồi kết thúc

x
x
x

B5

b. Phân bậc hệ thống bài tập Thuật tốn theo cấu trúc rẽ nhánh
Với cấu trúc rẽ  nhánh giúp cho học sinh biết lựa chọn thực hiện cơng  
việc khi điều kiện được thoả mãn hay khơng thoả mãn, ban đầu tơi đưa ra bài 
7


tốn tìm giá trị lớn nhất của hai số a, b sau đó dẫn dắt tới bài tốn tìm giá trị 
lớn nhất của dãy số  ngun, các em đã nắm bài rất tốt. Các ví dụ  sau đó sát 
với cấu trúc lập trình rẽ nhánh chương trình Tin Học 11. Phần lớn tơi hướng  

dẫn, gợi ý cho học sinh làm bằng hai cách liệt kê và sơ đồ khối.
Bài tốn 1: Xây dựng thuật tốn tìm gía trị lớn nhất trong hai số ngun a và b 
được nhập vào từ bàn phím.
­ INPUT:  a, b là hai số ngun.
­ OUTPUT: Đưa ra số Max là số lớn nhất trong hai số a, b.
B1. Nhập a, b;
B2. Nếu a>b thì Max← a;

Nhập a, b

B3. Nếu b>a thì Max← b;
B4. Kết luận Max là số cần tìm và kết thúc; Sai
Mơ tả cho thuật tốn
B1. a=8,   b=5 ; 

a  > 
b

Đúng

Max ← a

Max ← b

Đúng  

B2. a>b               Max ← 8 ; 
Kết luận 
Max cần tìm


B4  Hiển thị Max = 8 và kết thúc ; 

Bài tốn 2. Xây dựng thuật tốn kiểm tra một số được nhập vào từ bàn phím  
là số âm hay số dương.
­ INPUT:   a.
­ OUTPUT: Kết luận a âm hoặc dương.
B1

Nhập a

  B1. Nhập số  a;
B2. Nếu a>0  Kết luận a dương, đến B4;
B3.  Kết luận a là số âm, đến B4 ;

Sai

B4. Kết thúc;

a  > 
0

Đúng

a là số 
dương

a là số
 âm

Kết thúc 


B2

B3

B4

8


Mơ tả cho thuật tốn
B1.  36;
B2.  36>0 số vừa nhập là một số dương; 
B4. Kết thúc;
Bài tốn 3.  Xây dựng thuật tốn giải phương trình bậc nhất ax+b= 0 với a, b  
nhập từ bàn phím.
­ INPUT:  Hai số a, b.
­ OUTPUT: Kết luận về nghiệm của phương trình ax+b=0.
B1. Nhập a, b;
B2. Nếu a=0, b# 0 thơng báo phương trình vơ nghiệm và kết thúc;
B3. Nếu a=0, b=0 thơng báo phương trình có vơ số nghiệm và kết 
thúc;
B4. a#0, x← ­b/a thơng báo có nghiệm rồi kết thúc;
B1

Nhập a,b,c

B2

a = 0

b # 0

Đúng

Phương trình 
vơ  nghiệm

Đúng

Phương trình 

vơ số nghiệm

Sai

B3

a = 0
b =  0
Sai

B4

a  ≠  0

Đúng

x  ← ­b/a

Kết thúc


B5

9


Bài tốn 4. Xây dựng thuật tốn nhập ba số bất kỳ a, b, c. Hãy kiểm tra ba số 
đó có thể là độ dài của một tam giác hay khơng? Nếu đúng hãy tính và hiển thị 
chu vi của tam giác đó.
­ Ý tưởng: Ba số  a, b, c là ba cạnh của một tam giác khi thoả  mãn điều 
kiện
     (a+b>c) và (b+c>a) và (a+c>b) , chu vi Cv = a+b+c.
­ INPUT: Ba số a,b,c.
­ OUTPUT: Kết luận ba số đó có phải ba cạnh của 1 tam giác, nếu phải  
tính chu vi Cv.
  B1. Nhập ba số a,b,c;
B2. Nếu (a+b>c) và (b+c>a) và (a+c>b) thơng báo ba số là ba cạnh của một  
tam giác, Cv  ← (a+b+c), đến B4;
B3. Kết luận ba số khơng là ba cạnh của một tam giác, đến B4;
B4. Kết thúc; 
Bài tốn 5: Xây dựng thuật tốn tính giá trị của biểu thức 
           x

y  nếu điểm (x,y) thuộc hình trịn bán kính r(r>0), tâm (a,b)
B1

Nhập x, y, r

Z = 
           x+y trong trường hợp cịn lại

B2

B1. Nhập x, y, r;

x2+y2  <= 
r2

B2. Nếu x2+y2 <= r2, Z ← |x| + |y|;

Sai

B3. Z ← x + y;

B3

Z ← x + y

Đúng

Z ← |x| + |y|

Đưa ra Z và 
kết thúc
B4

10


B4. Đưa ra Z và kết thúc;


c.  Phân bậc hệ thống bài tập thuật tốn theo cấu trúc lặp.
Với dạng cấu trúc này học sinh khó nắm bắt hơn cả, các em khó hình 
dung ra cơng việc khi biến điều khiển tăng lên và thực hiện q trình lặp, các  
ví dụ  mà tơi đã đưa ra sát với các bài tốn tìm kiếm, kiểm tra số  như  trong  
sách giáo khoa đã trình bầy, giúp cho các em nhanh chóng tiếp cận các bài tốn 
điển hình theo chuẩn kiến thức, kỹ năng.
Các em làm quen với dãy số  lặp có quy luật và lặp khơng có quy luật.  
Biến điều khiển có thể tăng từ giá trị  đầu đến giá trị  cuối hoặc có thể  giảm 
từ giá trị cuối đến giá trị đầu.
Bài tốn 1. Xây dựng thuật tốn tính tổng của 5 số tự nhiên đầu tiên.
­  Ý tưởng: Cộng lần lượt các số từ 0 đến 5,  gán kết quả cho biến S.
­ INPUT. Các số ngun 0,1,2,3,4,5.
­ OUTPUT. Tổng S.
B1. Nhập N;
B2. i←1, S←0;
B3. Nếu i> 5 thì đưa ra S và kết thúc;
B4.  thì S ← S+ i;
B5. Gán  i←i+1 quay lại B3;
Ví dụ  mơ tả quy trình thực hiện cho thuật tốn trên 
B1. Nhập  N=5;
B2. i← 1, S← 0;
B3. i=1<5; 
B4. S← S+i= 0+1=1;
11


B5. i←i+1=1+1=2  quay lại B3;
B3. i=2<5;
B4. S←S+i=1+2=3;
B5. i←i+1= 2+1=3 quay lại B3;

B3. i=3<5;
B4. S←S+i=3+3=6;
B5. i←i+1=3+1=4 quay lại B3;
B3. i=4<5;
B4. S←S+i=6+4=10;
B5. i←i+1=4+1=5 quay lại B3;
B3. i=5; { chưa lớn hơn 5}
B4. S←S+i=10+5=15;
B5. i←i+1=5+1=6 quay lại B3;
B3. i=6 >5 thuật tốn kết thúc và đưa ra S=15; 
  Bài tốn 2. Xây dựng thuật tốn tính tổng các phần tử có giá trị dương trong 
dãy số N phần tử a1, a2, a3…,aN.
­ Ý tưởng: So sánh lần lượt các phần tử trong dãy số  với 0, nếu a i>0 thì 
cộng giá trị của  ai vào tổng d
­ INPUT: Số ngun dương N và các a1, a2, a3,….aN.
­ OUTPUT: Tổng các số dương trong dãy d.
B1. Nhập N, a1, a2, a3…,aN;
B2.  i← 1, d← 0;
B3. Nếu  i>N  thì đưa ra d và kết thúc;
B4. Nếu ai>0 thì d←d+ai;
B5 i←i+1 quay lại B3;
Ví dụ: Cho dãy số có N=5 các phần tử a1=6, a2 = ­3, a3=45, a4=12, a5=­13
12


B1. Nhập N = 5     6    ­3    45  12    ­13 
B2. i ← 1, d←0;
B3. i=1<5;
B4. a1=6>0, d←d+a1=0+6=6;
B5. i←i+1=1+1=2 quay lại B3;

B3. i=2<5;
B4. a2= ­3<0; { Khơng tính d}
B5. i←i+1=2+1=3 quay lại B3;
B3. i=3<5; 
B4. a3=45>0, d←d+a3=6+45=51;
B5. i←i+1=3+1=4 quay lại B3;
B3. i=4<5;
B4. a4= 12>0, d←d+a4=51+12=63;
B5. i←i+1=4+1=5 quay lại B3;
B3. i=5;{ chưa lớn hơn 5}
B4. a5=­13<0; {khơng tính d}
B5. i←i+1=5+1=6 quay lại B3;
B3. i=6>5 Thuật tốn dừng lại và đưa ra tổng các phần tử có giá  
trị dương  trong dãy đã cho là d= 63.
Bài tốn 3. Xây dựng thuật tốn tìm vị  trí các phần tử có giá trị  dương trong 
dãy số N phần tử a1, a2, a3…,aN.
­ Ý tưởng: So sánh lần lượt các phần tử ai của dãy số  với 0, nếu  ai  > 0 
thì đưa ra i.
­ INPUT: Số ngun dương N và N số a1, a2, a3…,aN.
­ OUTPUT: Vị trí các số dương trong dãy số aN.
B1. Nhập N, a1, a2, a3…,aN;
13


B2. i← 1;
B3. Nếu i>N thì kết thúc;
B4. Nếu ai > 0 thì đưa ra i;
B5 i← i+1 quay lại B3;
Ví dụ: Cho dãy số có 4 phần tử N=4, a1=­7, a2=12, a3= 56, a4=­43.
Mơ tả thuật tốn cho dãy số trên

B1. N=4, ­7   12   56   ­43;
B2. i←1;
B3. i =1B4. a1= ­7<0;{khơng đưa ra chỉ số i =1}
B5. i←i+1=1+1=2 quay lại B3;
B3. i =2B4. a2=12>0 Hiển thị i =2;
B5. i←i+1=2+1=3 quay lại B3;
B3. i=3<4;
B4. a3=56>0 Hiển thị i=3;
B5. i←i+1=3+1=4 quay lại B3;
B3. i=4 ;{ i chưa nhỏ hơn 4}
B4. a4= ­43<0; { khơng đưa ra chỉ số i=4}
B5. i←i+1=4+1=5 quay lại B3;
B3. i=5>4 Thuật tốn dừng lại. Hiển thị kết quả  2  3;
Bài tốn 4. Xây dựng thuật tốn đếm các số  âm trong dãy số  A={ a1,a2,,..,an} 
cho trước.
­ Ý tưởng: So sánh các phần tử trong  dãy với 0, nếu ai<0 thì biến đếm d 
tăng lên một đơn vị.
­ INPUT: Số ngun dương N và N số a1, a2,,.., aN  của dãy A.
14


­ OUTPUT: Số các số âm trong dãy d.
B1. Nhâp số ngun dương N và N số a1,a2,,..,aN;
B2. i←1, d←0;
B3. Nếu i> N thì đưa ra d rồi kết thúc;
B4. Nếu ai <0 thì d←d+1;
B5. i←i+1, rồi quay lai B3;
Thuật tốn thể hiện tính dừng khi i >N sẽ kết thúc.

Ví dụ: Cho dãy số có 6 phần tử N=6 gồm các giá trị a1= 12, a2=­22, a3=36, a4=­
15, a5=­67, a6=32. Mơ tả thuật tốn cho dãy số trên.
B1. N=6, 12  ­22  36  ­15  ­67  32;
B2.i←1, d←0;
B3. i=1B4. a1=12>0 ; {khơng tăng d}
B5. i←i+1=1+1=2 quay lai B3;
B3. i=2B4. a2=­22<0 , d←d+1=0+1=1;
B5. i←i+1=2+1=3 quay lại B3;
B3. i=3B4. a3=36>; { khơng tăng d}
B5. i←i+1=3+1=4 quay lai B3;
B3. i=4B4. a4=­15<0, d←d+1=1+1=2;
B5. i←i+1=4+1=5 quay lại B3;
B3. i=5B4. a5=­67<0, d←d+1=2+1=3;
B5. i←i+1=5+1=6 quay lai B3;
15


B3. i=6;{ chưa lớn hơn N=6}
B4. a6=32>0; { khơng tăng d}
B5. i←i+1=6+1=7 quay lại B3;
B3. i=7>N=6  Thuật tốn dừng lại và đưa ra số phần tử âm trong 
dãy số là 3 ; 
Bài tốn 5:  Xây dựng thuật tốn  tính S= 1+3+5+…+ (2n­1) với N nhập vào 
từ bàn phím.
­ INPUT: N

­ OUTPUT: Tổng S
­ Thuật tốn có thể thực hiện với biến điều khiển tăng hoặc giảm hoặc theo 
quy luật gán cho i.
Cách 1.                                                                Cách 2
B1. Nhập N;
B1. Nhập N;
B2. i ← N, S←0;
B2. i ← 1, S←0;
B3. S← S+ (2*i­1);
B3. S← S+ (2*i­1);
B4. i←i­1;
B4. i←i+1;
B5. Nếu  i<=0đưa ra S 
B5. Nếu  i>N  đưa ra S 
và kết thúc;
và kết thúc;
B6. Quay lại B3
B6. Quay lại B3
Với cấu trúc lặp có quy luật như ví dụ bài tốn 5 trên đây, tơi muốn học  
B1. Nh
sinh khai thác được quy luật tăng hay giảm c
ủa biậ
ếp N;
n điều khiển, đó là những 
mấu chốt của bài tốn và tính tổng S theo biến điều khiển. Điều này hướng  
← 2*N­1, S←0;
học sinh tới cấu trúc lặp trong các ngơn ngữB2. i
 lập trình nói chung.
B3. S← S+ i;
B4. i←i­2;

Cách 3                                                               Cách 4 
B1. Nhập N;
B2. i←1, S←0;

B5. Nếu  i>0 Quay lại B3 
B6. Đưa ra S và kết thúc;

16


B3. S← S+i;
B4. i←i+2;
B5. Nếu  i> 2*N­1  Đưa ra S 
và kết thúc;
B6: Quay lại B3
­  Ví dụ mơ tả cho thuật tốn
Theo cách 2                                                      Theo cách 4 
B1. N=3;

B1. N=3;

B2. i←3, S←0;

B2. i←(2*N­1)=(2*3­1)=5, S←0;

B3. S← S+ (2*i­1)= 0+(2*3­1)=5;

B3. S←S+i=0+ 5=5;

B4. i←i­1=3­1=2;


B4. i←i­2=5­2=3;

B5. i=2>0; { đúng}

B5. i=3>0; { đúng}

B3. S← S+ (2*i­1)= 5+(2*2­1)=5+3=8;

B3. S←S+i=5+3=8;

B4. i←i­1=2­1=1;

B4. i←i­2=3­2=1;

B5. i=1>0; {đúng}

B5. i=1>0; {đúng}

B3. S← S+ (2*i­1)= 8+(2*1­1)=8+1=9;

B3. S←S+i=8 +1=9;

B4. i←i­1=0 ;

B4.  i←i­2=1­2=­1 ;

B5. i=0<1 đưa ra S= 9, Kết thúc;

B5. i<=0 đưa ra S= 9, Kết thúc;


Một số các bài tốn các em có thể tìm hiểu nâng cao hơn. 
 Xây dựng và mơ tả  thuật tốn giải các bài tốn sau:
a.   Kiểm tra một số  nhập vào từ  bàn phím có phải   một số  hồn hảo hay  
khơng ? b. Tính   S1= 2 2 .... 2
c. Tính   S2= 1+ 1/2! +1/3!+…+1/n!
4.   Hiệu quả  của đề  tài nghiên cứu“ Phân bậc hệ  thống bài tập xây 
dựng thuật tốn giải bài tốn trên máy tính” 

17


Sau khi áp dụng đề  tài nghiên cứu trong các năm giảng dạy với các giải 
pháp đã nêu tơi đã thu được kết quả.
­ Hầu hết các em đã biết cách tìm ra thuật tốn và mơ tả thuật tốn bằng cách 
liệt kê hoặc bằng sơ đồ khối theo chuẩn kiến thức, kỹ năng. Hiểu rõ về  bản 
chất của thuật tốn đặc biệt là các thuật tốn điển hình như  trong sách giáo 
khoa và sách bài tập, các em  biết vận dụng linh hoạt xây dựng các thuật tốn 
cho các bài tốn tơi đã đưa ra ở mức độ tương tự và nâng cao hơn. 
­ Điều đáng nói hơn về  kết quả thu được là khi dạy các em lên lớp 11, làm 
quen với ngơn ngữ lập trình, từ kiến thức hiểu rõ về thuật tốn các em đã biết 
vận dụng viết các câu lệnh tuần tự  , rẽ nhánh và lặp, lập chương trình hồn 
thiện, cho kết quả chính xác cho các bài tốn được học.
­ Bản thân tơi đã có thêm nhiều kinh nghiệm và kỹ  năng để  giảng dạy và 
truyền đạt cho các em những bài học bổ ích và lý thú. Được các đồng nghiệp 
ủng hộ. 
­ Tơi đã khảo sát lại kỹ năng của các em sau khi được áp dụng giải pháp của 
đề tài sáng kiến này trong năm học 2015 – 2016 qua bài kiểm tra 15 phút ở các  
lớp như sau.
Câu 1. Hãy trình bầy thuật tốn và mơ tả cho thuật tốn giải bài tốn sau 

bằng cách liệt kê hoặc bằng sơ đồ khối.
a. Tính giá trị của  Y=

5
n 1

n
n 1

.

Các em đã làm rất tốt, thành thạo, tỷ lệ học sinh nắm vững thuật tốn tăng lên 
nhiều so với năm trước ở cả lớp mũi nhọn và lớp đại trà. 
Lớp

Số HS

10A
10B
10G

45
45
45

Nắm vững thuật tốn

Chưa nắm vững thụât tốn

Số lượng

45
38
35

Số lượng
0
7
10

%
100
84
78

%
0
16
22

III . Kết luận và đề xuất
1. Kết luận.
Qua thực tế  giảng dạy tại các lớp 10A, 10B, 10D, 10G, 10M trường  
THPT Ba Đình, sau khi tơi truyền tải ch o các em hệ thống các bài tập có tính 
phân bậc như trên các em đã hình thành được kỹ năng xây dựng thuật tốn rất 
tốt, thể hiện qua cách hiểu là các em đã tự  lấy ví dụ, mơ tả  được thuật tốn  
bằng các bộ dữ liệu khác nhau, kiểm tra kết quả có đúng với u cầu của bài 
18


tốn hay khơng. Các em được rèn luyện, thuần thục về  các thuật tốn theo  

chuẩn kiến thức như trong  sách giáo khoa  Tin Học lớp 10.
Với chủ đề  này cá nhân tơi vẫn đang tiếp tục nghiên cứu, áp dụng sâu  
và rộng cho các thuật tốn tiếp theo  ở  mức độ  nâng cao hơn. Mục đích để 
mang lại cho các em học sinh của tơi những tiết học bổ  ích, khai thác tính  
sáng tạo, tạo hứng thú cho các em u thích và say mê  học mơn lập trình Tin  
Học nói riêng và mơn Tin Học nói chung.
2. Đề xuất
Để  việc dạy và học được tốt hơn cá nhân tơi kính đề  nghị  các cấp có 
liên quan nghiên cứu, chỉnh lý đổi mới chương trình về thuật tốn ở cấp phổ 
thơng trung học phù hợp với trình độ của học sinh lớp 10, các em dễ nắm bắt 
hơn, thân thiện và trực quan hơn, qua đó người dạy cũng dễ  phân loại khả 
năng tiếp thu của học sinh.
Nhà trường cần có sự  đầu tư nâng cấp thêm cho phịng máy thực hành  
của học sinh, bổ  xung thêm   tài liệu, tranh minh hoạ, mơ hình dạy học lập 
trình trong nhà trường, để các em có thêm tài liệu tham khảo, giáo viên nghiên 
cứu bài dạy. 
Đề  tài sáng kiến trên tơi đã áp dụng cho kết quả  rất khả  quan trong 
cơng tác giảng dạy của mình, tuy nhiên sáng kiến này khơng thể  tránh khỏi 
những thiếu sót, hạn chế  của cá nhân tơi. Vậy tơi kính mong nhận được sự 
đóng góp của các q đồng nghiệp, những người quan tâm nội dung này để 
sáng kiến  hồn thiện hơn.
Tơi xin chân thành cảm ơn sâu sắc!
Nga sơn, ngày 28  tháng 5 năm 2016
Tơi xin cam đoan đây là sáng kiến  
kinh nghiệm của mình viết, độc lập  
nghiên cứu, khơng sao chép nội dung  
của người khác.
Người thực hiện

Xác nhận của thủ trưởng đơn vị 


Vũ Thị Huệ
    

19



×