Thuật toán để giải một bài toán là 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. Để nắm chi tiết hơn về Dạy bài toán và thuật toán mời các bạn cùng tham khảo sáng kiến sau.
SKKN: Dạy bài toán và thuật toán trong Tin học cho học sinh lớp 10 MỤC LỤC SKKN: Dạy bài toán và thuật toán trong Tin học cho học sinh lớp 10 CÁC KÝ HIỆU VIẾT TẮT TRONG SÁNG KIẾN KINH NGHIỆM Ký hiệu Ý nghĩa THPT Trung học phổ thông PT Phương trình VN Vơ nghiệm VSN Vơ số nghiệm GTLN Giá trị lớn nhất SNT Số ngun tố SX Sắp xếp UCLN Ước chung lớn nhất Đ Đúng S Sai B Bước NXB Nhà xuất bản Div Phép chia lấy phần ngun Mod Phép chia lấy phần dư [ … ] Làm trịn giá trị số trong dấu ngoặc SKKN: Dạy bài tốn và thuật tốn trong Tin học cho học sinh lớp 10 BÁO CÁO KẾT QUẢ NGHIÊN CỨU, ỨNG DỤNG SÁNG KIẾN I Lời giới thiệu Trong kỷ ngun cơng nghệ bùng nổ, khơng có gì bất ngờ khi cơng nghệ thơng tin ln giữ vững vị thế là một trong những ngành hàng đầu về nhu cầu nhân lực và tiềm năng phát triển. Vị thế này càng được củng cố trong bối cảnh thế giới và đất nước bước vào thời đại Cách mạng cơng nghiệp 4.0 Vì thế địi hỏi mỗi chúng ta dù là học sinh hay giáo viên đều phải tích cực học tập, nghiên cứu để có thể hội nhập được với thời đại. Mơn Tin học là mơn học giúp các em dễ dàng tiếp cận được với cơng nghệ, với thế giới. Tuy nhiên nó khá mới mẻ với học sinh THPT đặc biệt là học sinh trường THPT Nguyễn Viết Xn với phần đơng học sinh thuộc khu vực nơng thơn. Học sinh mới chỉ được làm quen với máy tính chứ chưa thực sự có khái niệm về cơng nghệ thơng tin, khái niệm về bài tốn và thuật tốn trong Tin học. Trong khi đó phần bài tốn và thuật tốn được học ở lớp 10 là phần kiến thức quan trọng nhất. Là nền tảng cho kiến thức tin học lớp 11. Là cốt lõi cho các em muốn theo học lập trình. Nên rất cần những phương pháp, cách tiếp cận bài tốn và thuật tốn sao cho học sinh khơng cảm thấy sợ dẫn đến mất gốc. SKKN: Dạy bài tốn và thuật tốn trong Tin học cho học sinh lớp 10 Bài tốn và thuật tốn trong Tin học khá là quen thuộc với giáo viên. Và thật tơi cũng đã làm một sáng kiến kinh nghiệm về phần này cách đây ba năm. Nhưng khi đó tơi thường tập trung vào những thuật tốn khó phức tạp mà qn đi việc xây dựng cái nền móng cho học sinh. Từ thực tế giảng dạy nhiều năm tơi nhận thấy học sinh của tơi có biết cách giải bài tốn nhưng gặp khó khăn trong việc trình bày bài tốn đó bằng phương pháp liệt kê hoặc phương pháp sơ đồ khối. Từ đó, tơi đúc rút được là khi dạy nên để học sinh tiếp cận với những thuật tốn dễ từ đó phát triển lên những thuật tốn khó thì học sinh dễ tiếp cận hơn và nên có mơ phỏng thuật tốn bằng các bộ test trong những trường hợp đặc biệt để học sinh hiểu rõ hơn. Khơng cần q nặng nề việc phải bám sát trình tự các ví dụ trong sách giáo khoa. Mục đích sáng kiến kinh nghiệm này của tơi là muốn học sinh làm quen dần với các thuật tốn từ đơn giản rồi nâng cao dần để học sinh hình thành kỹ năng viết thuật tốn thành thạo. Do thời gian và khả năng có hạn nên sáng kiến kinh nghiệm tơi viết vẫn cịn nhiều tồn tại. Kính mong đồng nghiệp và học sinh góp ý để sáng kiến kinh nghiệm của tơi được hồn thiện hơn. Để một phần nào đó giúp ích cho giáo viên và học sinh trong q trình giảng dạy và học tập II Tên sáng kiến: Dạy bài tốn và thuật tốn trong Tin học cho học sinh lớp 10 III Tác giả sáng kiến: Họ và tên: Nguyễn Thị Hà Địa chỉ tác giả sáng kiến: Hội Hợp – Vĩnh Yên – Vĩnh Phúc Số điện thoại: 0977 212 636 E_mail: nguyenthiha.gvnguyenvietxuan@vinhphuc.edu.vn IV Chủ đầu tư tạo sáng kiến: Nguyễn Thị Hà SKKN: Dạy bài toán và thuật toán trong Tin học cho học sinh lớp 10 V Lĩnh vực áp dụng sáng kiến: Giảng dạy cho học sinh lớp 10 và học sinh mới học lập trình VI Ngày sáng kiến áp dụng lần đầu áp dụng thử: Năm 2017 2018 VII Mô tả chất sáng kiến: Bài tốn 1.1 Khái niệm Là việc nào đó mà ta muốn máy tính thực hiện để từ thơng tin đưa vào (Input) tìm được thơng tin ra (Output) Vậy bài tốn trong tin học gồm: Thơng tin, dữ liệu vào: Input Thơng tin ra, kết quả: Output 1.2 Ví dụ xác định INPUT OUTPUT tốn sau Ví dụ 1: Cho hai số a, b. Tính tổng hai số Input: a, b Output: Tổng hai số Ví dụ 2: Cho hai số a, b, c. Tìm max của ba số SKKN: Dạy bài tốn và thuật tốn trong Tin học cho học sinh lớp 10 Input: a, b, c Output: Max (a,b,c) Ví dụ 3: Giải phương trình: ax + b = 0 Input: Hai số ngun a và b Output: Kết luận nghiệm của PT Ví dụ 4: Giải phương trình: ax2 + bx + c = 0 (a0) Input: Số ngun a, b, c với a0 Output: Kết luận nghiệm của phương trình Thuật tốn 2.1 Khái niệm Thuật tốn để giải một bài tốn là 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 tốn, ta nhận được Output cần tìm 2.2 Phương pháp Có hai phương pháp trình bày thuật tốn: * Phương pháp liệt kê: Là nêu trình tự thực hiện các bước giải một bài tốn bằng máy tính * Phương pháp sơ đồ khối: Là sử dụng các hình khối để thể hiện thuật tốn với: : Thể hiện nhập hoặc xuất dữ liệu : Phép gán, tính tốn : Phép so sánh, kiểm tra : Quy trình thực hiện các thao tác 2.3 Tính chất Tính dừng: Thuật tốn phải kết thúc sau một số hữu hạn lần thực hiện các thao tác Tính xác định: Sau khi thực hiện một thao tác thì hoặc thuật tốn kết thúc hoặc có đúng một thao tác được thực hiện tiếp theo SKKN: Dạy bài tốn và thuật tốn trong Tin học cho học sinh lớp 10 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 2.4 Ví dụ Ví dụ 1: Cho hai số a, b. Trình bày thuật tốn tính tổng hai số Lời giải * Cách xác định bài tốn Input: a, b Output: Tổng hai số * Thuật tốn Phương pháp liệt kê B1: Nhập a, b B2: S := a + b B3: Tổng là S Phương pháp sơ đồ khối * Mơ phỏng thuật tốn Với a = 2, b = 3 thì tổng S là 5 Với a = 10, b = 6 thì tổng S là 16 Ví dụ 2: Cho số ngun N. Trình bày thuật tốn kiểm tra tính chẵn lẻ của N Lời giải SKKN: Dạy bài tốn và thuật tốn trong Tin học cho học sinh lớp 10 * Cách xác định bài tốn Input: N Output: N là số chẵn hoặc N là số lẻ * Thuật tốn Phương pháp liệt kê B1: Nhập N B2: Nếu N chia hết cho 2 thì N là số chẵn B3: Ngược lại N là số lẻ Phương pháp sơ đồ khối * Mơ phỏng thuật tốn Với N = 4 thì N là số chẵn Với N = 7 thì N là số lẻ Ví dụ 3: Trình bày thuật tốn giải phương trình: ax + b = 0 Lời giải * Cách xác định bài tốn Input: a, b Output: Kết luận nghiệm của PT * Thuật tốn Phương pháp liệt kê B1: Nhập a, b B2: Nếu a = 0 B21: b = 0 kết luận PT VSN B22: Ngược lại kết luận PT VN B3: Ngược lại phương trình có 1 nghiệm x := b/a SKKN: Dạy bài tốn và thuật tốn trong Tin học cho học sinh lớp 10 Phương pháp sơ đồ khối * Mơ phỏng thuật tốn Với a = 0, b = 0 thì phương trình vơ số nghiệm Với a = 0, b = 1 thì phương trình vơ nghiệm Với a = 1, b = 1 thì phương trình có nghiệm x := 1 Ví dụ 4: Trình bày thuật tốn giải phương trình: ax2 + bx + c = 0 (a#0) Lời giải * Cách xác định bài tốn Input: a, b, c Output: Kết luận nghiệm của PT * Thuật tốn Phương pháp liệt kê B1: Nhập a, b, c B2: D:= b*b 4*a*c B3: Nếu D 6 (sai) B4: 1 > 5 (sai) B5: i := 3, quay về B3 …… Vậy GTLN là 8 Ví dụ 9: Cho số N ngun dương. Trình bày thuật tốn kiểm tra tính ngun tố của N Lời giải * Cách xác định bài tốn Input: N là 1 số ngun dương Output: N là số ngun tố hay khơng * Thuật tốn - Phương pháp liệt kê B1: Nhập N 16 SKKN: Dạy bài tốn và thuật tốn trong Tin học cho học sinh lớp 10 B2: Nếu N = 1 thì thơng báo N khơng là số ngun tố B3: Nếu N = d thì thơng báo N là số ngun tố B6: Nếu N chia hết cho i thì N khơng là số ngun tố B7: i := i + 1 quay trở lại B5 Phương pháp sơ đồ khối * Mơ phỏng Với N = 1 thì 1 khơng là số ngun tố Với N = 2 thì 2 là số ngun tố Với N = 3 thì 3 là số ngun tố Với N = 17 B1: Nhập 17 B2: 17 = 1 (sai) B3: 17 N thì M := M – N rồi quay lại B2 B4: N := N – M rồi quay lại B2 19 SKKN: Dạy bài tốn và thuật tốn trong Tin học cho học sinh lớp 10 Phương pháp sơ đồ khối * Mơ phỏng thuật tốn Với N = 8; M =8 B1: Nhập 8, 8 B2: 8=8 (đúng) UCLN là 8 Với N = 6, M = 9 B1: Nhập 6, 9 B2: 6 = 9 (sai) B3: 6 > 9 (sai) B4: N := 9 – 6 = 3, quay về B2 ……… UCLN là 3 Ví dụ 12: Cho số ngun N. Trình bày thuật tốn tính tổng các ước của N Lời giải * Cách xác định bài tốn 20 SKKN: Dạy bài tốn và thuật tốn trong Tin học cho học sinh lớp 10 Input: N Output: Tổng các ước của N * Thuật tốn - Phương pháp liệt kê B1: Nhập N B2: S := 0; i := 1; d := [N : 2] B3: Nếu i > d thì đưa ra tổng S B4: Nếu N i = 0 thì S := S + i B5: i := i + 1, quay về B3 - Phương pháp sơ đồ khối * Mô phỏng Với N = 1 B1: Nhập 1 B2: S := 0; i := 1; d := [1 : 2] = 1 B3: 1 > 1 (sai) 21 SKKN: Dạy bài toán và thuật toán trong Tin học cho học sinh lớp 10 B4: 1 1 (đúng) nên S := 0 + 1 Vậy tổng là 1 Với N = 20 B1: Nhập 20 B2: S := 0; i := 1; d := [20 : 2] = 10 B3: 10 > 1 (sai) B4: 10 1 (đúng) nên S := 0 + 1 …… Vậy tổng là 22 Ví dụ 13: Cho N ngun. Trình bày thuật tốn tính giai thừa của N * Cách xác định bài tốn Lời giải Input: N Output: N! * Thuật tốn - Phương pháp liệt kê B1: Nhập N B2: S := 1; i := 2 B3: Nếu i > N thì đưa ra giai thừa của N là S B4: S := S * i B5: i := i + 1, quay về B3 - Phương pháp sơ đồ khối 22 SKKN: Dạy bài tốn và thuật tốn trong Tin học cho học sinh lớp 10 * Mơ phỏng Với N = 1 B1: Nhập 1 B2: S := 1; i := 2 B3: 2 > 1 (đúng) Giai thừa của 1 là 1 Với N = 5 B1: Nhập 5 B2: S := 1; i := 2 B3: 2 > 5 (sai) B4 : S := 1 * 2 B5: i := 2+1 … Giai thừa của 5 là 120 Ví dụ 14: Cho N và dãy các số ngun a1, a2, … an. Trình bày thuật tốn tìm sắp xếp các phần tử của dãy theo thứ tự tăng dần * Cách xác định bài tốn Input: Dãy số ngun a1, a2, , aN Output: Dãy số đã được sắp xếp * Thuật tốn Phương pháp sơ liệt kê B1: Nhập N và dãy a1, a2, , aN B2: Gán giá trị M := N B3: Nếu M M quay lại B3 B7: Nếu ai > ai+1 thì tráo đổi ai và ai+1 cho nhau B8: quay lại bước 5 - Phương pháp sơ đồ khối * Mơ phỏng thuật tốn Với N = 1; dãy có 1 phần tử 6 B1: Nhập 1; 6 B2: M := 1 B3: 1 N thì thơng báo trong dãy khơng có K B6: Quay về B3 Phương pháp sơ đồ khối * Mơ phỏng thuật tốn Với N = 5; dãy các phần tử là 6, 7, 2, 5, 8; K =5 B1: Nhập 5; 6, 7, 2, 5, 8; 5 B2: i := 1 B3: 6 = 5 (sai) 26 SKKN: Dạy bài tốn và thuật tốn trong Tin học cho học sinh lớp 10 B4: i := 2 B5: 2 > 5 (sai) B6: Quay về B3 ………… Vị trí xuất hiện của K là 4 2.5 Bài tập vận dụng Bài 1: Cho dãy có N phần tử a1, a2, … an. Trình bày thuật tốn tính tổng các phần tử lẻ của dãy Bài 2: Cho N và dãy các số ngun a1, a2, … an. Trình bày thuật tốn tìm Min của dãy Bài 3: Cho số ngun dương N. Trình bày thuật tốn tính tích các chữ số của N Bài 4: Cho số ngun dương N. Trình bày thuật tốn tính tổng các ước ngun tố của N Bài 5: Cho số N. Trình bày thuật tốn kiểm tra N có là số chính phương hay khơng Gợi ý: Số chính phương là số bình phương số tự nhiên Ví dụ: 4 = 22; 9 = 32 …. là các số chính phương Bài 6: Cho số N. Trình bày thuật tốn kiểm tra N có là số hồn hảo hay khơng Gợi ý: N được gọi là số hồn hảo nếu N có giá trị bằng tổng các ước của nó (khơng kể chính nó). Ví dụ: N = 6; N = 28 … Bài 7: Cho N và dãy các số ngun a1, a2, … an. Trình bày thuật tốn tìm sắp xếp các phần tử của dãy theo thứ tự giảm dần Bài 8: Cho N và dãy các số ngun a1, a2, …, an và số ngun K. Trình bày thuật tốn đếm số lần xuất hiện của K trong dãy 27 SKKN: Dạy bài tốn và thuật tốn trong Tin học cho học sinh lớp 10 VIII Những thông tin cần bảo mật: Không IX Các điều kiện cần thiết để áp dụng sáng kiến: Học sinh lớp 10 hoặc học sinh mới làm quen với lập trình X Đánh giá lợi ích thu dự kiến thu áp dụng sáng kiến theo ý kiến tác giả: Học sinh được học theo nội dung trình bày trong sáng kiến sẽ có cái nhìn tồn diện hơn, tự tin hơn khi đối mặt với bài tốn trong Tin học từ đó các em sẽ thích học và chủ động tìm hiểu kiến thức. Nội dung sáng kiến được trình bày logic, phù hợp với trình độ phát triển tư duy của học sinh từ nhận biết, thơng hiểu đến vận dụng, nâng cao và sáng tạo qua đó giúp cho học sinh phát triển tư duy tổng hợp và rèn luyện các kĩ năng viết thuật tốn Bảng số liệu kết quả của học sinh lớp 10 – khối A trường THPT Nguyễn Viết Xuân năm học 2016 – 2017 khi chưa thực hiện đề tài: STT Lớp Sỉ số Đạt yêu cầu Không đạt yêu cầu 10A2 36 88% 12% 10A3 38 62.5% 37.5% 10A5 38 56% 44% Khi thực hiện thực nghiệm qua các đối tượng học sinh đã nêu trên, đa số các em tránh được các lỗi thường gặp khi trình bày thuật tốn Một số khơng ít học sinh có tiến bộ rõ rệt khi trình bày thuật tốn bằng hai phương pháp Nâng cao việc u thích học tin học đối với một bộ phận học sinh và một số em có định hướng nghề nghiệp sau này Bảng số liệu kết quả đạt được của học sinh lớp 10 – khối A trường THPT Nguyễn Viết Xn năm học 2017 – 2018 sau khi thực hiện đề tài: STT Lớp Sĩ số Đạt u cầu Không đạt yêu cầu 10A2 36 95% 05% 10A3 36 88% 22% 28 SKKN: Dạy bài tốn và thuật tốn trong Tin học cho học sinh lớp 10 10A5 36 80% 20% Bản thân tơi khi viết đề tài này đã phần nào đó rèn luyện cho mình khả năng nghiên cứu khoa học, tìm tịi và phân tích và tổng hợp tài liệu từ nhiều nguồn khác nhau, tăng cường khả năng tự học, tự bồi dưỡng chun mơn Sáng kiến kinh nghiệm sẽ là tài liệu tham khảo cơ bản về thuật tốn để trao đổi kinh nghiệm với đồng nghiệp và truyền đạt cho học sinh Mặc dù cố gắng nhiều trình viết sáng kiến kinh nghiệm này nhưng chắc chắn sẽ khơng tránh khỏi những sai sót. Kính mong q thầy cơ, đồng nghiệp và học sinh chân thành góp ý để sáng kiến kinh nghiệm: “Dạy bài tốn và thuật tốn cho học sinh lớp 10” được hồn thiện hơn và trở thành một tài liệu hay, hữu ích trong việc dạy và học thuật tốn XI Danh sách tổ chức/cá nhân tham gia áp dụng thử áp dụng sáng kiến lần đầu: STT Tên tổ chức/ Địa chỉ Cá nhân Lớp 10A2 Lớp 10A3 Lớp 10A5 Nguyễn Thị Hà Phạm vi/ Lĩnh vực áp dụng sáng kiến Trường THPT Nguyễn Lĩnh vực giáo dục – Bộ môn Viết Xuân Tin học Trường THPT Nguyễn Lĩnh vực giáo dục – Bộ môn Viết Xuân Tin học Trường THPT Nguyễn Lĩnh vực giáo dục – Bộ môn Viết Xuân Tin học Trường THPT Nguyễn Lĩnh vực giáo dục – Bộ môn Vĩnh Tường, ngày 31 tháng 01 năm 2019 Viết Xuân Tin học ………………., ngày tháng năm 201 29 Vĩnh Tường, ngày 29 tháng 01 năm 2019 SKKN: Dạy bài tốn và thuật tốn trong Tin học cho học sinh lớp 10 Thủ trưởng đơn vị/ Chính quyền địa phương (Ký tên, đóng dấu) CHỦ TỊCH HỘI ĐỒNG SÁNG KIẾN CẤP CƠ SỞ (Ký tên, đóng dấu) Tác giả sáng kiến (Ký, ghi rõ họ tên) Nguyễn Thị Hà TÀI LIỆU THAM KHẢO 1. Sách giáo khoa tin học 10 – NXB Giáo dục 2. Sách giáo khoa tin học 11 – NXB Giáo dục 3. Giải thuật và lập trình – Lê Minh Hồng 4. Một số vấn đề về thuật tốn – NXB Giáo dục – Tác giả: Nguyễn Hữu Điển 5. Giáo trình thuật tốn và kỹ thuật lập trình Pascal – NXB Sở giáo dục và đào tạo Hà Nội – Tác giả: Nguyễn Chí Trung 30 ... sáng kiến: Nguyễn Thị Hà SKKN:? ?Dạy? ?bài? ?toán? ?và? ?thuật? ?toán? ?trong? ?Tin? ?học? ?cho? ?học? ?sinh? ?lớp? ?10 V Lĩnh vực áp dụng sáng kiến: Giảng? ?dạy? ?cho? ?học? ?sinh? ?lớp? ?10? ?và? ?học? ? sinh? ?mới? ?học? ?lập trình VI Ngày sáng... kiến kinh nghiệm của tơi được hồn thiện hơn. Để một phần nào đó giúp ích cho? ?giáo viên? ?và? ?học? ?sinh? ?trong? ?q trình giảng? ?dạy? ?và? ?học? ?tập II Tên sáng kiến: Dạy? ?bài? ?tốn? ?và? ?thuật? ?tốn? ?trong? ?Tin? ?học? ?cho? ?học? ?sinh? ?lớp? ?10 III Tác giả sáng kiến: Họ? ?và? ?tên: Nguyễn Thị Hà... UCLN là 3 Ví dụ 12:? ?Cho? ?số ngun N. Trình bày? ?thuật? ?tốn tính tổng các ước của N Lời giải * Cách xác định? ?bài? ?toán 20 SKKN:? ?Dạy? ?bài? ?toán? ?và? ?thuật? ?toán? ?trong? ?Tin? ?học? ?cho? ?học? ?sinh? ?lớp? ?10 Input: N Output: Tổng các ước của N