1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Giải pháp giúp dạy tốt và học tốt bài bài toán và thuật toán cho giáo viên và học sinh trường THPT hà văn mao

16 19 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 16
Dung lượng 168 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trong đó, các kĩ năng tư duy có thể kể đến như biết cách suy luận, phát hiện, giải quyết vấn đề, biết cách học, cách tự học, có tư duy sáng tạo, ...Vì vậy, mục tiêu quan trọng bậc nhất c

Trang 1

PHẦN 1 MỞ ĐẦU 1.1 Lí do chọn đề tài

Mục tiêu của bậc học phổ thông là hình thành và phát triển được nền tảng

tư duy của học sinh trong thời đại mới, bao gồm nhóm kiến thức, kĩ năng cơ bản của các môn học phổ thông; nhóm các kĩ năng tư duy và nhóm các phẩm chất nhân cách và đạo đức Trong đó, các kĩ năng tư duy có thể kể đến như biết cách suy luận, phát hiện, giải quyết vấn đề, biết cách học, cách tự học, có tư duy sáng tạo, Vì vậy, mục tiêu quan trọng bậc nhất của quá trình dạy và học là giúp cho học sinh phát triển được tư duy

Việc rèn luyện và phát triển tư duy cho học sinh đặc biệt thích hợp đối với dạy học môn Tin học ở bậc phổ thông Môn tin học ở bậc phổ thông “nhằm cung cấp cho học sinh những kiến thức phổ thông về ngành khoa học tin học, hình thành và phát triển khả năng tư duy thuật toán, năng lực sử dụng các thành tựu của ngành khoa học này trong học tập và trong thực tiễn "

Xuất phát từ thực tiễn của việc giảng dạy môn Tin học tại trường THPT Hà

Văn Mao tôi gặp không ít khó khăn khi giảng dạy bài:“Bài toán và thuật toán”,

cũng như học sinh, đa số các em cảm thấy khó hiểu, khó tiếp thu hoặc chỉ có thể tìm được input và output của bài toán mà không thể xây dựng được thuật toán cho những bài toán đó

Để giúp cho giáo viên, học sinh dễ dàng hơn trong quá trình dạy và học,

qua khảo sát, nghiên cứu và đúc kết kinh nghiệm tôi đã lựa chọn đề tài “ Giải

pháp giúp dạy tốt và học tốt bài - Bài toán và thuật toán cho giáo viên và học sinh trường THPT Hà Văn Mao”

1.2 Mục đích nghiên cứu

Theo quan điểm truyền thống dạy học là truyền thụ những kiến thức, kinh nghiệm, kỹ năng kỹ xảo cho người học, còn theo quan điểm dạy học tích cực thì dạy học lấy học sinh làm đối tượng trung tâm Với đặc thù là một trường miền núi cao, với những khó khăn về cơ sở vật chất và chất lượng đầu vào của học sinh còn hạn chế nên người giáo viên cần phải tìm tòi những cách giảng dạy cho các đối tượng học sinh một cách phù hợp Từ những suy nghĩ đó tôi cũng luôn

trăn trở tìm tòi, suy nghĩ làm thế nào? để các em học và tiếp thu tốt bài “Bài

Toán và Thuật Toán” trang 32 SGK tin học 10 Nhà xuất bản Giáo dục năm

2006

Với đề tài này tôi mong muốn sẽ tháo gỡ được những khó khăn vướng mắc trên, làm sáng tỏ được bản chất của vấn đề nghiên cứu Để từ đó các em hiểu rõ hơn khái niệm bài toán và thuật toán, giúp học sinh có cái nhìn trực quan sinh động hơn về môn tin học, rèn luyện cho học sinh khả năng tư duy sáng tạo và sự hứng thú với môn học

Trang 2

1.3 Đối tượng nghiên cứu

Đối tượng nghiên cứu của đề tài là học sinh các lớp 10A1, 10A2 trường THPT Hà Văn Mao

1.4 Phương pháp nghiên cứu

+ Đề tài nghiên sử dụng một số phương pháp sau:

- Phương pháp tiếp cận đối tượng điều tra tìm hiểu thực trạng học sinh và tìm biện pháp thiết thực để giải quyết thực trạng đó

- Phương pháp kiểm tra đánh giá điều chỉnh, bổ sung

- Phương pháp phân tích, tổng hợp kết quả để thấy được hiệu quả của đề tài

1.5 Những điểm mới của sáng kiến kinh nghiệm

Sau khi tìm hiểu chủ yếu qua kênh internet tôi thấy sáng kiến kinh nghiệm của mình đề cập vấn đề không còn mới cũng có những sáng kiến kinh nghiệm trùng về ý tưởng đã thực hiện Vì vậy thông qua đề tài này đã giúp học sinh phát triển được tư duy một cách hệ thống, xác định và giải quyết được những vấn đề cốt lõi của đề tài Tuy nhiên trong quý trình thực hiện đề tài này có thể sẽ không tránh khỏi những thiếu sót và hạn chế, kính mong sự đóng góp ý kiến của các đồng chí đồng nghiệp, của các đồng chí lãnh đạo và các chuyên gia

Trang 3

PHẦN 2 NỘI DUNG 2.1 Cơ sở lý luận

2.1.1 Khái niệm bài toán

“Trong phạm vi tin học, bài toán là một việc nào đó ta muốn máy tính thực

hiện” Trong toán học, bài toán được xác định thông qua giả thiết và kết luận, còn trong tin học, bài toán được xác định thông qua input và output

Theo các nghiên cứu khoa học thì mọi bài toán đều có thể diễn đạt theo một

sơ đồ chung: A→B

Trong đó

- A: Là giả thiết điều kiện ban đầu đã cho khi bắt đầu giải toán

- B: Là kết luận, mục tiêu cần đạt khi kết thúc bài toán

- →: Là suy luận, là một chuỗi các thao tác cần thực hiện để có được cái phải tìm B từ cái đã cho A

2.1.2 Khái niệm thuật toán

“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 các thao tác ấy, từ

thông tin vào (Input) của bài toán, ta nhận được thông tin ra (Output)”.

Khái niệm thuật toán trên đây hàm ý nhấn mạnh việc chỉ ra tường minh cách tìm Output của bài toán Cách tìm ra Output đó không nhất thiết phải thể

hiện như một bài làm chứng minh chặt chẽ tính đúng đắn của lời giải bài toán vì

vậy ta có thể coi thuật toán như một lời giải (của một bài toán) đã được lược bỏ

đi rất nhiều giải thích chi tiết về tính đúng đắn của nó

2.1.3 Xác định bài toán

Theo sơ đồ trên thì xác định bài toán có nghĩa là xác định A,B và nếu có

thể được thì xác định luôn các thao tác được phép sử dụng để từ A đi đến B.

Cụ thể:

- A: là “INPUT” hay còn gọi là dữ liệu vào

- B: là “OUTPUT” hay còn gọi là dữ liệu ra

- →: Là một dãy các thao tác được sắp xếp theo một trình tự xác định

2.1.4 Những khó khăn thường gặp khi xác định: INPUT/OUTPUT

- Để xác định được dữ liệu vào/ra của một bài toán thì người học thường gặp những khó khăn sau:

- Xác định dữ liệu vào và dữ liệu ra không đầy đủ, không rõ ràng, thường bị che khuất bởi một thông tin “làm nhiễu” nào đó mà người học chưa nhận ra nhưng phải mất một quá trình tư duy, suy luận logic

- Xác định về các điều kiện đặt ra cho cách giải thường không được nêu ra một cách minh bạch

Trang 4

- Học sinh thường lúng túng, mơ hồ, khó hiểu với các tên đại diện cho các đại lượng xác định trong thuật toán

2.1.5 Ý nghĩa của việc xây dựng được giải thuật

Trong việc giải toán trên máy tính, việc viết được thuật toán bằng một trong hai cách liệt kê hoặc bằng sơ đồ khối là vô cùng quan trọng, để từ đó các hoạt động tư duy sáng tạo của học sinh ở mức cao nhất khi tư duy về thuật toán giúp các em học tốt các môn khoa học tự nhiên và khoa học kỹ thuật đặc biệt là khoa học lập trình bằng ngôn ngữ cụ thể trên máy tính

2.1.6 Các tính chất của thuật toán.

a Tính phổ dụng: Thuật toán không chỉ để giải một bài toán riêng lẻ mà còn

được dùng để giải quyết một lớp các bài toán cùng loại

b Tính hữu hạn: Thuật toán phải được kết thúc sau một số hữu hạn lần thực

hiện các thao tác

c Tính xác định: Thuật toán đòi hỏi mỗi bước thao tác phải rõ ràng và xác định

được một đơn vị các bước tiếp theo

d Tính hiệu quả: thể hiện các yêu câu sau đây:

- Tính đúng đắn

- Tính tối ưu: Tiết kiệm thời gian thực hiện, tiết kiệm bộ nhớ

2.1.7 Các đại lượng của thuật toán

a Đại lượng vào: Là những đại lượng cho trước và đưa vào máy tính (Input), là

cơ sở cho việc hình thành và xác định đại lượng ra

b.Đại lượng ra: Thường là kết quả sau khi thực hiện xong thuật toán (Output)

và đó cũng là yêu cầu của bài toán

c Đại lượng trung gian: Là các đại lượng tham gia vào quá trình để giải các

bài toán nhưng không phải là đại lượng vào mà cũng chẳng là các đại lượng ra

d Hằng, biến, kiểu: Để biểu diễn các đại lượng nêu trên ta sử dụng các hằng,

biến và phải có kiểu dữ liệu nhất định

- Hằng: Là đại lượng không thay đổi trong quá trình thực hiện thuật toán.

- Biến: Là đại lượng có thể thay đổi giá trị trong quá trình thực hiện thuật toán.

- Kiểu: Là tập hợp các giá trị mà các đại lượng có thể nhận, đồng thời quy định

các phép toán tác động lên nó

2.1.8 Biểu diễn của thuật toán

a.Các dạng biểu diễn của thuật toán: Thuật toán có thể biểu diễn bằng 2 dạng

sau:

- Liệt kê từng bước tuần tự

- Bằng sơ đồ khối

b Biểu diễn thuật toán bằng sơ đồ khối: Đây là một dạng biểu diễn có cấu

trúc trực quan rõ ràng

- Các kí hiệu dùng để biểu diễn thuật toán:

Trang 5

Dùng để thể hiện các thao tác nhập, xuất dữ liệu

Dùng để thể hiện các phép tính toán

Dùng để thể hiện các thao tác so sánh

Dùng để chỉ trình tự thực hiện các thao tác của thuật toán Ngoài ra còn sử dụng kí hiệu := để biểu diễn gán giá trị cho biến

2.2 Thực trạng của vấn đề

2.2.1 Vì sao tôi chọn đề tài này

Đây là một bài học khó trong sách giáo khoa tin học 10 Đa số học sinh cảm thất rất khó hiểu bài hay có hiểu thì cũng rất mơ hồ Do đó tôi thấy rằng cần đưa ra những bài toán từ nhỏ đến bài toán tổng quát, từ dễ đến khó để có thể

tăng hiệu quả khi giảng dạy bài học “Bài toán và thuật toán” Và từ đó, tuỳ

theo mức độ tiếp thu bài giảng của học sinh mà chuyển sang bài toán khó dần hơn để giảng dạy

2.2.2 Thực trạng qua khảo sát bài kiểm tra 1 tiết và học kỳ I

Thực trạng của vấn đề trước khi áp dụng sáng kiến kinh nghiệm được thể hiện qua bảng dữ liệu kết quả khảo sát sau:

2.3 Giải pháp thực hiện để giải quyết vấn đề

2.3.1 Từ các bài toán

Chúng ta đưa ra hai lớp bài toán theo hai chủ đề, mỗi một chủ đề là một bài toán và ta chia nhỏ mỗi chủ đề thành các bài toán từ dễ đến khó để giải quyết

Chủ đề 1:

Bài toán: Viết thuật toán nhập vào hai số nguyên a,b tính diện tích hình chữ

nhật có chiều dài = a, chiều rộng = b

Chủ đề 2: Bài toán tìm giá trị lớn nhất.

Bài 1: Viết thuật toán tìm giá trị lớn nhất trong 2 số nguyên a1, a2 nhập từ bàn phím

Trang 6

Bài 2: Viết thuật toán tìm giá trị lớn nhất trong 3 số nguyên a1, a2, a3 nhập từ

bàn phím

Bài 3: Viết thuật toán tìm giá trị lớn nhất trong 4 số nguyên a1, a2, a3, a4 nhập từ bàn phím

Bài 4: Viết thuật toán tìm giá trị lớn nhất của một dãy số nguyên a1, a2, a3, …an

nhập từ bàn phím

2.3.2 Giải pháp để giải quyết các bái toán trên.

- Sử dụng máy chiếu Projector, bảng, phấn, NNLT Pascal

+ Giải quyết các bài toán trên như sau:

Chủ đề 1:

+ Xác định bài toán

+ Ý tưởng

- Sử dụng công thức tính diện tích S:= a * b của toán học đã biết

- Sử dụng một biến tạm S để chứa giá trị kết quả diện tích

* Thuật toán mô tả bằng Liệt kê từng bước.

Bước 1: Nhập a,b nguyên

Bước 2: S:= a*b;

Bước 3: In ra S

*Thuật toán bằng sơ đồ khối:

Bảng mô tả việc thực hiện thuật toán:

* Nhận xét:

Nhập a,b

Đưa ra S

S:= a*b

Trang 7

- Thuật toán sẽ thực hiện với những cặp a,b khác nhau thì sẽ cho kết quả S khác nhau

- Cặp giá trị a,b cuối cùng không phải là độ dài hai cạnh của hình chữ nhật

=> để giải quyết tình huống này thuật toán sẽ được tinh chỉnh như sau:

Chủ đề 2: Giải quyết bài toán tìm số lớn nhất.

Bài 1:

+ Xác định bài toán

+ Ý tưởng

- Sử dụng phép so sánh của toán học đã biết để so ánh hai số nguyên

- Sử dụng một biến tạm max để chứa giá trị lớn nhất

* Thuật toán mô tả bằng Liệt kê từng bước

Bước 1: Nhập a1, a2 nguyên

Bước 2: Nếu a1 >= a2 Nếu đúng thì gán Max: =a1 rồi sang bước 3

Nếu sai thì gán Max: =a2 rồi sang bước 3

Bước 3: In ra màn hình giá trị lớn nhất Max và kết thúc

Đưa ra S

F S:= a*b

T

a,b không là hai cạnh của HCN a<=0, hoặc b<=0

Nhập a,b

Trang 8

Thuật toán mô tả bằng sơ đồ khối

* Ta nhận thấy: Học sinh vẫn không hiểu, hoặc hiểu một cách mơ hồ với các

đại lượng được viết trong thuật toán như a1, a2, Max Tại sao lúc thì max := a1 lúc

Thực chất ta cần hiểu các đại lượng này như thế nào?

* Cách giải quyết:

- Nhắc lại khái niệm về biến: Biến là một đại lượng có giá trị thay đổi trong quá trình thực hiện chương trình

- Chúng ta có thể hiểu: Biến là một vùng bộ nhớ được cấp phát dùng để

lưu trữ giá trị cho một kiểu dữ liệu nào đó tại một thời điểm nhất định và nó

được truy xuất thông qua một tên đã được khai báo cho biến đó.

- Trong thuật toán trên, a1, a2 là hai biến để nhận giá trị vào cho bài toán (tức là các cặp hai số nguyên cụ thể) Max là biến để nhận giá trị ra của bài toán

đang chứa trong biến a1, hoặc giá trị chứa trong biến a2

- Sử dụng ngôn ngữ lập trình Pascal để viết chương trình và trình chiếu việc thực hiện chương trình đó để học sinh quan sát kết quả để từ đó các em hiểu

rõ hơn về biến

- Chương trình:

Program so_lon_nhat;

Var a1, a2, max:Longint;

{mặc định khi mới khai báo thì các biến này = rỗng}

Begin

Readln(a1, a2);

If a1 > a2 then max:= a1

Else max:= a2;

Nhập

a1,a2

Đưa ra Max

T

Trang 9

Writeln(‘so lon nhat la:’, max);

Readln;

End

trong biến a2

Bài 2:

+ Xác định bài toán

Output: Giá trị Max lớn nhất trong ba số a1, a2, a3

+ Ý tưởng

- Sử dụng phép so sánh của toán học đã biết để so sánh lần lượt các số

- Sử dụng một biến tạm max để chứa giá trị lớn nhất

* Thuật toán mô tả bằng liệt kê từng bước.

Bước 1: Nhập a1, a2, a3 và biến tạm Max

Bước 2: Nếu (a1 >= a2) và (a1>= a3) đúng thì Max:= a1 rồi sang bước 3

Nếu sai ta xét: Nếu (a2>= a3) đúng Max:= a2 rồi sang bước 3 Nếu sai Max:= a3 rồi sang bước 3

Bước 3: In ra màn hình Max và kết thúc

* Thuật toán mô tả bằng sơ đồ khối.

Bài 3:

+ Xác định bài toán

Input: Nhập 4 số nguyên a1, a2, a3, a4

Nhập a1,a2,a3

Đưa ra Max

T

a1 > a3

T

T

2

F

F

Trang 10

+ Ý tưởng

- Sử dụng phép so sánh của toán học đã biết để so sánh lần lượt các số

- Sử dụng một biến tạm max để chứa giá trị lớn nhất

Thuật toán mô tả bằng Liệt kê từng bước.

Bước 1: Nhập a1, a2, a3, a4 nguyên

Bước 2: Nếu a1>= a2 thì

nếu a1>= a3 thì

nếu a1>= a4 thì đưa ra Max:=a1 rồi sang bước 3

ngược lại, nếu a3>= a4 thì đưa ra Max:=a3 rồi sang bước 3

ngược lại, nếu a2>= a3 thì nếu a2>= a4 thì đưa Max:=a2 rồi sang bước 3

ngược lại, nếu a3>= a4 thì đưa ra Max:=a3 rồi sang bước 3

Bước 3: In ra màn hình giá trị lớn nhất Max và kết thúc

Thuật toán mô tả bằng sơ đồ khối.

- Với bài toán tìm số lớn nhất của từ 4 số trở lên thì việc viết thuật toán đã trở nên phức tạp dần, và còn sẽ phức tạp hơn đến việc khó có thể thực hiện nếu số các chữ số ngày càng lớn Vậy đối với bài toán là một dãy N số thì chúng ta sẽ phải giải quyết như thế nào?

Nhập a1,a2,a3,a4

a2>=

a

3

F

T

a

1>=

a3

a1>=

a

2

T F

F T

a

3>=

a4

a2>=

a

4

a

1>=

a4 F

T

F

T

Đưa ra

Trang 11

Bài 4:

+ Xác định bài toán

+ Ý tưởng

- Khởi tạo giá trị Max: =a1, i:=2;

gán lại giá trị max cho số lớn hơn đó

- Sử dụng một biến tạm i, với i nhận giá trị từ 2 -> N Vậy việc so sánh

với i = 2,3… N

* Thuật toán mô tả bằng Liệt kê từng bước.

Bước 1: Nhập N nguyên dương và dãy số nguyên a1, a2, a3….aN

Bước 2: Max:= a1, i:=2;

Bước 3: Nếu i >N thì đưa ra giá trị Max rồi kết thúc;

Bước 4:

Bước 4.1 Nếu ai >Max thì Max:=ai:

Bước 4.2 i:= i +1 rồi quay lại bước 3

* Thuật toán mô tả bằng sơ đồ khối.

Nhập N và dãy

số a1, a2, a3 aN

Max:=a1, i:= 2

i>

N F

T

ai>Ma x

i:= i+1

F

T

In ra Max

Trang 12

- Với việc học sinh đã hiểu được vai trò của các biến i, N, ai, và max thì chúng ta chỉ cần giải thích cho học sinh hiểu hai điểm mấu chốt trong thuật toán này đó là: Xác định điều kiện kết thúc thuật toán và lặp lại từ bước 3 cho tới bước 4.2 với n – 1 lần

- Để giúp học sinh hiểu và nắm chắc được vấn đề, chúng ta có thể đặt ra

việc hiệu chỉnh lại thuật toán Sau khi học sinh giải quyết được việc hiệu chỉnh này một cách độc lập thì học sinh sẽ chủ động và dễ hiểu hơn khi tiếp cận và xây dựng thuật toán cho bài toán mới

trường hợp gán biến i bằng các giá trị khác nhau

2.4 Hiệu quả của sáng kiến kinh nghiệm

- Với việc tiếp cận và giải quyết bài toán theo hướng giải quyết từ bài toán nhỏ đến bài toán tổng quát đã thu được kết quả đáng khích lệ Giúp cho học sinh hiểu được một cách sâu sắc hơn về khái niệm bài toán và thuật toán,các yếu tố tạo nên thuật toán Xác định được bài toán một cách rõ ràng và đầy đủ, xây dựng được thuật toán cho một số bài toán nhất định, tiếp cận và xử lý được các bài

toán còn lại trong bài học “Bài Toán và Thuật Toán” trang 32 SGK tin học 10

Nhập N và dãy

số a1, a2, a3 aN

F

T

ai>Ma x

i:= …

F

T

In ra Max

Ngày đăng: 25/05/2021, 20:00

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w