SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HÓATRƯỜNG THPT LÊ HOÀN SÁNG KIẾN KINH NGHIỆM VẬN DỤNG HÀM UCLN CỦA HAI SỐ TRONG VIỆC GIẢI QUYẾT MỘT SỐ BÀI TOÁN LIÊN QUAN Người thực hiện: Lê Minh Thùy Chức
Trang 1SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HÓA
TRƯỜNG THPT LÊ HOÀN
SÁNG KIẾN KINH NGHIỆM
VẬN DỤNG HÀM UCLN CỦA HAI SỐ TRONG VIỆC GIẢI QUYẾT MỘT SỐ BÀI
TOÁN LIÊN QUAN
Người thực hiện: Lê Minh Thùy Chức vụ: Giáo viên
SKKN thuộc lĩnh vực: Tin học
THANH HÓA, THÁNG 7 NĂM 2020
Trang 2Phần 1 MỞ ĐẦU Trang
Phần 2 NỘI DUNG CỦA SÁNG KIẾN KINH NGHIỆM
2.2 Thực trạng vấn đề trước khi áp dụng sáng kiến nghiệm
2.2.1 Thực trạng học tin học của học sinh trường THPT Lê Hoàn 6
2.3 Các giải pháp đã sử dụng để giải quyết vấn đề 72.4 Hiệu quả của sáng kiến kinh nghiệm đối với hoạt động giáo
dục, với bản thân, đồng nghiệp, và nhà trường 18
Trang 3Phần 1 MỞ ĐẦU1.1 Lí do chọn đề tài.
Chương trình giáo dục phổ thông hiện nay được xây dựng theo định hướngnội dung, nặng về truyền thụ kiến thức, chưa chú trọng giúp học sinh vận dụngkiến thức được vào thực tiễn Các văn kiện của Đảng và Nhà nước về đổi mớichương trình sách giáo khoa giáo dục phổ thông như Nghị quyết 29, Nghị quyết
88 và Nghị định 404 đều xác định mục tiêu đổi mới chương trình giáo dục phổthông là góp phần chuyển nền giáo dục nặng nề truyền thụ kiến thức sang nềngiáo dục phát triển toàn diện phẩm chất năng lực của người học
Là một giáo viên tin bộ môn tin học 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
Trong thời đại thông tin bùng nổ như hiện nay, việc lập được các chươngtrì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
đó người 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ọithứ đều có điểm khởi đầu của nó, với học sinh việc học Pascal là khởi đầu choviệ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 trongmáy tính, các máy tự động… Qua đó giúp các em có thêm một định hướng, mộtniềm đam mê về tin học, về nghề nghiệp mà các em chọn sau này Đồng thờiPascal 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
Trong quá trình dạy tin học 10 và tin học 11, tôi nhận thấy bài toán tìm ướcchung lớn nhất được sử dụng rất nhiều trong các ví dụ và có nhiều ứng dụngtrong thực tế Vì vậy tôi muốn xây dựng một số các bài tập liên quan đến “thuậttoán ước chung lớn nhất” để học sinh có thể hiểu rõ hơn về thuật toán và thấyđược logic giữa toán học và tin học Trên đây chính là lí do để tôi chọn đề tài
viết sáng kiến kinh nghiệm: “VẬN DỤNG HÀM UCLN CỦA HAI SỐ TRONG VIỆC GIẢI QUYẾT MỘT SỐ BÀI TOÁN LIÊN QUAN.”
Trang 41.3 Đối tượng nghiên cứu
- Nghiên cứu chương trình SGK tin học 10, SGK tin học 11 Tích cực đổimới phương pháp giáo dục nhằm phát huy tính chủ động, tính tích cực sáng tạo
và rèn luyện phương pháp tự học; tăng cường kĩ năng thực hành, vận dụng kiếnthức, kĩ năng vào giải quyết các vấn đề thực tế
- Bài toán và huật toán ước chung lớn nhất được nhắc tới tại ví dụ 1 bài SGK tin học 10, phần diễn tả thuật toán bài 6- SGK tin học 10 và phần ví dụ 1cách viết và sử dụng hàm bài 18- SGK tin học 11
4-1.4 Phương pháp nghiên cứu
- Kết hợp thực tiễn giáo dục ở các lớp tôi trực tiếp giảng dạy
- Khi vận dụng các ví dụ, tôi thực hiện trực tiếp trên máy chiếu và cho họcsinh thực hiện trên máy vi tính
- Có tham khảo các tài liệu về ngôn ngữ lập trình Pascal và tài liệu về sángkiến kinh nghiệm của các đồng nghiệp khác cùng trường và trên internet
Trang 5Phần 2 NỘI DUNG SÁNG KIẾN KINH NGHIỆM 2.1 Cơ sở lí luận sáng kiến kinh nghiệm
Chương trình giáo dục phổ thông 2018 định hướng phát triển phẩm chất vànăng lực học sinh Trước khi các em học sinh bước vào lớp 10 cũng đã được làmquen với lập , mục tiêu của chương trình nhằm để trả lời cho câu hỏi: Học xong
chương trình học sinh làm được gì? Chính vì vậy phải đổi mới phương pháp daỵ
học, kiểm tra đánh giá theo hướng phát triển phẩm chất và năng lực của họcsinh Các phương pháp hình thức tổ chức dạy học cần phải gắn nọi dung bài họcvới những vấn đề thực tiễn và giáo viên tổ chức hoạt động để học sinh tìm hiểu
và giải quyết vấn đề, thông qua đó tiếp thu tri thức một cách chủ động
Trước khi các em học sinh bước vào lớp 10 cũng đã được làm quen với lậptrình trong chương trình học THCS Nhưng việc dạy và học của các em ở cáctrường THCS là không đồng đều Vì vậy các em vẫn còn nhiều bở ngỡ, thậm chínhiều em còn lạ lẫm trong việc hiểu và giải quyết các bài toán trên máy vi tính
Vì thế khi giảng dạy chương trình tin học cho các em ở trường THPT tôi cầnphải khơi dậy cho các em sự yêu thích môn tin học, một môn học mới, khô khan
và kiến thức cấp 3 ít ứng dụng vào thực tế Việc tạo hứng thú cho các em là rấtquan trọng Muốn làm được điều này tôi cần đưa vào bài học những bài toán cótính ứng dụng cao mà các em gặp thường ngày Một trong các bài toán đó là bàitoán tìm ước chung lớn nhất của hai số nguyên (bài toán các em đã được làmquen ở toán học lớp 6 và được nhắc lại trong ví dụ 1 phần khái niệm bài toán-Bài 4 Bài toán và thuật toán)
Ước chung lớn nhất của hai hay nhiều số là số lớn nhất trong tập hợp cácước chung của các số đó Trong bài viết, tôi chỉ đề cập tới bài toán tìm ướcchung lớn nhất (UCLN) của 2 số nguyên dương Trước tiên ta sẽ tìm hiểu thuật
toán tìm ước chung lớn nhất theo thuật toán Euclid Thuật toán Euclid, là
một giải thuật giúp tính ước số chung lớn nhất (UCLN) của hai số một cách hiệuquả Ở dạng đơn giản nhất, thuật toán Euclid bắt đầu với cặp số nguyên dương,
và tạo ra một cặp số nguyên dương mới bao gồm số nhỏ hơn và phần dư củaphép chia hai số ban đầu Quá trình được tiếp tục cho đến khi hai số trong cặpbằng nhau, giá trị lúc đó sẽ trở thành ước số chung lớn nhất của cặp số ban đầu
- Nguyên lý chính của thuật toán là ước số chung lớn nhất của một cặp sốkhông thay đổi với hiệu của hai số đó Ví dụ như UCLN của 252 và 105 chínhbằng UCLN của 147 (= 252 − 105) và 105 Vì số lớn hơn trong cặp số bị giảm
Trang 6giá trị nên việc lặp đi lặp lại thuật toán này giúp tạo ra những số ngày càng nhỏ
và đến một lúc nào đó quá trình này sẽ kết thúc — khi cặp số còn lại hai số bằngnhau (nếu quá trình được thực hiện thêm một bước nữa, sẽ có một trong hai sốtrở thành số 0)
Thuật toán này có rất nhiều ứng dụng lý thuyết và thực tế Nó có thể đượcdùng để tạo ra gần như tất cả các ”nhịp điệu âm nhạc” truyền thống được sửdụng trong nhiều nền văn hóa khác nhau trên toàn thế giới Nó cũng là mộtthành phần then chốt trong ”thuật toán mã hóa RSA”, một ”mật mã hóa khóacông khai” được sử dụng rộng rãi trong thương mại điện tử Thuật toán cũngđược áp dụng để giải phương trình Diophantine
Trong chương trình tin học phổ thông chúng ta chỉ cần nghiên cứu về thuậttoán tìm UCLN theo hiệu hoặc thương của 2 số nguyên dương Những kiến thứctrong sách giáo khoa tin 10 và 11 giới thiệu một số bài toán cơ bản có ứng dụngthuật toán tìm UCLN để giải quyết
2.2 Thực trạng vấn đề trước khi áp dụng sáng kiến kinh nghiệm
2.2.1 Thực trạng học tin học của học sinh trường THPT Lê Hoàn
- Trường THPT Lê Hoàn đóng trên địa bàn xã Xuân Lai, dù mới lên thị trấnnhưng dân vẫn thuần nông; Đặc biệt khu vực tuyển sinh của nhà trường gồm các
xã có nghề phụ nên phụ huynh và học sinh không chú trọng nhiều đến việc học
- Bộ môn Tin học lại là môn không được thi tốt nghiệp và kiến thức phổthông cũng không có nhiều ứng dụng trong thực tế nhất là ngôn ngữ lập trìnhPascal
- Các hình ảnh minh hoạ, hỗ trợ giảng dạy cho giáo viên còn hạn chế chưaphong phú
- Phần lớn khi giảng dạy bài thuật toán giáo viên thường dạy theo kiểu thuyếttrình, giảng giải, đặt câu hỏi để học sinh trả lời thông qua hình ảnh có sẵn trongsách giáo khoa, học sinh thường thụ động và công nhận kết quả, ít tham gia phátbiểu xây dựng bài
- Khả năng tiếp thu của học sinh không đồng đều, chưa hứng thú trong học tập
- Quá trình học chủ yếu tập trung vào người dạy, học sinh thụ động đọc –chép
Trang 7- Lên lớp 11 học sinh thường không nhớ nội dung các thuật toán đã học, dùcác thuật toán đó là những kiến thức có liên quan đến những ứng dụng trong tínhtoán hằng ngày.
Vì vậy, nếu giáo viên không thay đổi bằng cách sử dụng các đồ dùng trựcquan minh hoạ (cụ thể là có sự hỗ trợ của máy tính và máy chiếu projector) cácthuật toán này thì học sinh sẽ rất khó hiểu và nhớ lâu, một số em sẽ học theokiểu đối phó, sơ sài khi lên chương trình 11 kiến thức rất khó tiếp thu dẫn đếnhọc sinh ngại học, ngại tìm hiểu
Do đó kết quả khảo sát khảo sát sau khi học xong chương trình của nhữnglớp không được thực nghiệm như sau:
Lớp TSHS Đạt yêu cầu Không đạt yêu cầu
2.2.2 Thực trạng trường THPT Lê Hoàn
- Trước yêu cầu ngày càng cao của việc dạy và học, Bộ giáo dục và đào tạođặc biệt quan tâm đến việc ứng dụng công nghệ thông tin vào công tác dạy học
- Bản thân tôi dạy ở trường THPT Lê Hoàn 11 năm nhận thấy rằng nhàtrường đã trang bị hai phòng máy tính thực hành và một phòng có sử dụng máychiếu là phương tiện chủ yếu để giúp giáo viên ứng dụng công nghệ thông tinvào dạy học
- Đội ngũ giáo viên nhà trường đa phần còn trẻ, nhiệt tình, năng động trongcông việc nên dễ dàng nắm bắt và ứng dụng công nghệ thông tin vào giảng dạy
- Khi áp dụng các thiết bị dạy học trực quan vào trong giờ học bài giảng trởnên sinh động và dễ hiểu hơn từ đó tạo nên hứng thú cho học sinh
2.3 Giải pháp đã sử dụng để giải quyết vấn đề
- Áp dụng kĩ thuật đặt câu hỏi trong dạy học tích cực.
- Tăng cường sự tham gia của học sinh trong quá trình học tập
- Giáo viên chuẩn bị trước và đưa cho học sinh những câu hỏi cụ thể, phù
hợp với những nội dung chính của bài học.
Phần I (Giao cho học sinh) Tìm hiểu các thuật toán giải bài toán tìm ước chung lớn nhất của hai số nguyên dương M và N theo hiệu của hai số (Thuật
Trang 8toán tìm kiếm ước chung lớn nhất được giới thiệu trong phần diễn tả thuật toántrong bài 6 Giải bài toán trên máy tính - sách giáo khoa tin học 10).
Cách 1: Dưới đây là thuật toán tìm UCLN bằng cách trừ đi nhau, được trình
bày trong SGK tin học 10
Hướng dẫn giải thuật:
- Nếu M=N thì giá trị chung đó là UCLN của M và N;
- Nếu M>N thì UCLN(M, N)=UCLN(M-N, N);
- Nếu M<N thì UCLN(M, N)=UCLN(M, N-M)
Xây dựng thuật toán có hai phương pháp
Phương pháp 1: Liệt kê các bước của thuật toán.
- Bước 1: Nhập M, N;
- Bước 2: Nếu M =N thì xuất N rồi kết thúc;
- Bước 3: Nếu M>N thì M ←M-N, rồi quay lại bước 2;
- Bước 4: N←N –M, rồi quay lại bước 2;
- Bước 5: Đưa ra kết quả UCLN rồi kết thúc
Trang 9Phương pháp 2: Sơ đồ khối thể hiện thuật toán.
Ví dụ mô phỏng việc thực hiện thuật toán trên.
UCLN(10, 25)=5.
Cho học sinh tự lấy nhiều ví dụ để mô phỏng thuật toán Điều này giúp các
em ghi nhớ được thuật toán một cách dễ dàng và nhớ lâu hơn
S
Đ S
Trang 10Phần 2 Kế hoạch dạy học Bài 18 VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG THỦ TỤC, HÀM (tiết 2)
1 Mục tiêu dạy học
a) Kiến thức:
- Tìm hiểu các cách tính UCLN Khi thực hiện các bài toán nên dùng cách
nào (Kiến thức toán học)
- Hiểu rõ và xây dựng thuật toán tìm UCLN của 2 số nguyên dương theo
các phương pháp biểu diễn thuật toán
- Sử dụng hàm tìm UCLN để giải các bài toán thường gặp
b) Kỹ năng:
- Tăng cường khả năng vận dụng kiến thức toán học và kiến thức tin học
trong lập trình
- Phân tích tổng hợp, so sánh để lựa chọn thuật toán giải quyết vấn đề tốt
nhất cho bài toán
- Giải quyết vấn đề bằng cách kết hợp các thông tin với nhau theo phương
pháp đòi hỏi tư duy sáng tạo độc lập
c) Thái độ:
- Học tập tích cực, khuyến khích học sinh suy nghĩ nhằm phát hiện ra bằng
chứng cho những kiến thức mà các em đang có, áp dụng một cách chínhxác những kiến thức đó vào những tình huống cụ thể
- Tạo hứng thú và yêu thích môn học cho học sinh Cho học sinh thấy mối
liên hệ giữa Toán học và tin học
2 Chuẩn bị của giáo viên, học sinh
a) Đối với giáo viên
- Giáo án soạn tiết 2 bài 18, sách giáo khoa, sách bài tập, các slide liên quan
tới bài học
- Máy tính và máy chiếu project, phòng học máy chiếu.
b) Đối với học sinh
- Học sinh chuẩn bị đầy đủ kiến thức cần có ở phần 1 theo yêu cầu từ tiết
trước của giáo viên
- SGK, vở ghi,…
Các Slide giáo viên chuẩn bị:
Trang 11- Slide 1: Cấu trúc của CTC hàm.
- Slide 2: Ví dụ sử dụng thuật toán tìm UCLN để rút gọn phân số.
- Slide3:
Phần đưa ra hai cách để giải quyết vấn đề : Tìm UCLN theo hiệu của hai
số (học sinh đã được tìm hiểu) và tìm UCLN theo thương 2 số (còn được gọi là
thuật toán Euclice).
Trang 12- Slide 4: Lấy chương trình đã chuẩn bị sẵn mô tả thuật toán tìm UCLN
theo hai thuật toán nêu trong slide Chạy thời gian để học sinh có thể so sánh từ đó rút ra được thuật toán nào tối ưu hơn.Tuy nhiên thời gian tính thu được chỉ mang tính tương đối
Trang 13- Slide 5: Trình chiếu chương trình rút gọn phân số (đã chuẩn bị sẵn)
Slide 6 Bài tập cũng cố
Trang 14+ Điều kiện 2: là phân số tối giản.
Dữ liệu vào: từ tệp văn bản PHANSO.INP, có cấu trúc
+ Dòng 1 chứa hai số A và B
+ Dòng 2 chứa hai số C và D
(A, B, C, D là các số nguyên dương và không lớn hơn 10)
Dữ liệu ra: Kết quả đưa ra tệp văn bản PHANSO.OUT
Có một dòng chứa hai số E và F tìm được thỏa mãn hai điều kiện trên
(Các số ghi trên một dòng được cách nhau bởi một dấu cách trống)
Hướng dẫn giải thuật:
- Đối với bài toán này ta sử dụng chương trình con hàm để tìm UCLN
- Công thức cộng phân số được phân tích thành
- Phần rút gọn phân số được áp dụng cho hai số nguyên là: E và F
- Dữ liệu được lấy ra từ tệp PHANSO.INP, ghi kết quả vào tệpPHANSO.OUT
3 Tiến trình dạy học
a) ổn định tổ chức- kiểm tra bài cũ.
TG Hoạt động của giáo viên Hoạt động của học sinh Nội dung
ghi bảng
Trang 15HS lên bảng trả lời.
- 1 HS nhận xét
- Bước 1: Nhập M,N;
- Bước 2: Nếu M =Nthì xuất N rồi kết thúc;
- Bước 3: Nếu M>Nthì M ←M-N, rồi quay lạibước 2;
- Bước 4: N←N –M,rồi quay lại bước 2;
- Bước 5: Đưa ra kếtquả UCLN rồi kết thúc
b) Nội dung bài mới.
Function <tên hàm>[<danhsách tham số>]: <kiểu dữliệu>;
[khai báo các biến];
Trang 16- Quan sát mà
hình, trả lời câuhỏi
- Có một hàmUCLN
- Tính ước chunglớn nhất của hai
số x, y.
Begin [<dãy các lệnh>]
End;
- <Kiểu dữ liệu>: Kiểu dữliệu trả lại của hàm như cáckiểu integer, real, char,boolean, string
Vd: Function tong(x,y:integer): integer;
- Lệnh gọi hàm tham gia vàobiểu thức như một toán hạng
Ví dụ: A:= 8*UCLN(x,y)-3;Chú ý: Trong thân hàm phải
có ít nhất một lệnh gán giá trịcho tên hàm
<tên hàm>:= <biểu thức>;
Ví dụ 1:
- Chương trình thực hiện rútgọn một phân số, sử dụnghàm tính ước chung lớn nhấtcủa 2 số
Trang 175’
Vậy có những giải
thuật nào giải bài
toán UCLN của hai
số?
Trình chiếu slide 3.
(Điều chỉnh cho tên
của thuật toán ra
cuối cùng sau khi
chốt câu trả lời của
học sinh).
Hỏi nhanh HS trên
màn hình là hai thuật
toán đều giải bài toán
tìm UCLN của hai
số Em hãy cho biết
vào cho cùng dữ liệu
ra nhưng thời gian
chạy của mỗi chương
- UCLN:= x;
- Học sinh quansát Slide, trả lờicâu hỏi
- Thuật toán 1
là thuật toán tínhUCLN theo hiệucủa hai số
- Thuật toánthứ 2 là thuậttoán tính theothương của 2 số
- Học sinh
quan sát chươngtrình, nhận xét đểrút ra kết luậnthuật toán
- Thuật toántìm UCLN theothương có thờigian thực hiệnnhanh hơn so vớithuật toán tìmUCLN theo hiệu
2 số