MỤC LỤC PHẦN MỞ ĐẦU 2 I. ĐẶT VẤN ĐỀ : 2 1. Thực trạng của vấn đề đòi hỏi phải có giải pháp mới để giải quyết: 2 2. Ý nghĩa và tác dụng của giải pháp mới: 4 3. Phạm vi nghiên cứu của đề tài: 4 II. PHƯƠNG PHÁP TIẾN HÀNH: 4 1. Cơ sở lý luận và thực tiễn có tính định hướng cho việc nghiên cứu, tìm giải pháp của đề tài: 4 2. Các biện pháp tiến hành, thời gian tạo ra giải pháp: 6 PHẦN NỘI DUNG 7 I. MỤC TIÊU: 7 II. MÔ TẢ GIẢI PHÁP CỦA ĐỀ TÀI: 7 1. Thuyết minh tính mới: 7 1.1 Kiểm tra học kỳ 1 năm học 20152016 môn Tin học: 7 1.2 Giải quyết vấn đề: 8 1.2.1 Xác định bài toán: 8 1.2.2 Tìm cấu trúc dữ liệu biểu diễn thuật toán: 10 1.2.3 Xây dựng thuật toán: 11 1.2.4 : Viết chương trình 17 1.2.5 : Kiểm thử chương trình (Testing program) 21 1.2.6 Tối ưu chương trình (optimization program) 24 2. Khả năng áp dụng: 29 3. Lợi ích kinh tế xã hội: 30 PHẦN KẾT LUẬN 31
Sáng kiến kinh nghiệm TH&THCS Tân Lĩnh MỤC LỤC GV: Nguyễn Việt Hưng Năm học 2016-2017 Sáng kiến kinh nghiệm TH&THCS Tân Lĩnh PHẦN MỞ ĐẦU I ĐẶT VẤN ĐỀ : Thực trạng vấn đề đòi hỏi phải có giải pháp để giải quyết: - Nhu cầu xã hội ngày lớn với phát triển khoa học kỹ thuật kéo theo phát triển vũ bão tin học Sự phát triển tin học đem lại hiệu to lớn cho hầu hết lĩnh vực xã hội, sâu vào đời sống người - Nền tin học quốc gia xem phát triển đóng góp phần đáng kể vào kinh tế quốc dân vào kho tàng tri thức chung giới - Lịch sử nhân loại chứng kiến cách mạng công nghệ thông tin với trợ giúp máy tính hệ thống máy tính, người nâng cao suất tự động hóa ngày hiệu ứng dụng không nhắc đến ứng dụng phần mềm máy tính với công nghệ thông tin Phần mềm máy tính ngày lên phát triển với ngôn ngữ lập trình khác cụ thể ngôn ngữ lập trình Pascal Pascal ngôn ngữ lập trình có cú pháp chặt chẽ, đơn giản dễ hiểu - Do vậy, Việt Nam nói chung ngành giáo dục đào tạo nói riêng phải đầu tư phát triển mặt Đặc biệt nguồn nhân lực tri thức tức phải đào tạo hệ trẻ động, thông minh, độc lập, sáng tạo, nắm vững tri thức khoa học công nghệ để làm chủ hoàn cảnh công tác hoạt động xã hội nhằm đáp ứng nhu cầu thời kì công nghiệp hoá, đại hoá đất nước - Để đáp ứng yêu cầu trên, môn Tin học đưa vào giảng dạy trường phổ thông với vai trò môn học khóa với thời lượng tiết/tuần cho tất lớp cấp học - Đặc trưng môn Tin học lớp kiến thức lập trình Ngôn ngữ lập trình dường xa lạ kiến thức lập trình mà em học - Qua giảng dạy môn Tin học trường TH&THCS Tân Lĩnh, thân nhận thấy nhiều học sinh lớp thấy môn lập trình Pascal khó, khô khan loằng ngoằng Mới đầu em sợ thấy giải toán đơn giản vòng vài giây nhẩm kết lập trình toán mà phải làm đến hàng chục phút mà cho kết sai Pascal trở GV: Nguyễn Việt Hưng Năm học 2016-2017 Sáng kiến kinh nghiệm TH&THCS Tân Lĩnh nên xa lạ khó khăn người sử dụng học sinh THCS người trực tiếp ứng dụng ngôn ngữ lập trình - Tâm lý em cho môn Tin học môn học Do không cần phải để tâm đến "nó" Những tiết học lý thuyết ghi chép qua loa cho xong chuyện không ghi chép "giả vờ" để thầy cô khỏi ý hay nhắc nhở lúc giảng Trong tiết thực hành vài học sinh thật tâm suy nghĩ xây dựng thuật toán, viết chương trình đa số lại tranh thủ chơi game làm việc riêng Buồn thay cho số học sinh kiểm tra thời điểm kết thúc học kỳ mà ghi bảy trang cho chương trình dài Tin Học - Xét góc độ Lập trình môn học khó học sinh THCS Khó tính phức tạp môn học hay phạm vi kiến thức rộng lớn Nếu đem so sánh môn học Lập trình phân môn Toán học trường THCS Lập trình Pascal gọn nhỏ nhiều lần - Lập trình Pascal "khó" học sinh THCS chỗ: môi trường lập trình Pascal có giao diện từ khóa tiếng Anh, dòng thông báo hay trợ giúp Bình diện chung học sinh THCS vốn tiếng Anh không nhiều, đa số em yếu tiếng Anh Lấy đơn vị lớp để tính lớp có vài em gọi "thông thạo" tiếng Anh qua học Hầu hết số lại nằm trạng thái "mù tịt" Đây khó khăn cho việc hiểu Pascal - Một vấn đề rào cản việc học sinh THCS tiếp cận với lập trình Pascal là: tư Toán em dừng lại mức độ Sách Giáo Khoa Toán THCS kỹ phân tích, tổng hợp, xây dựng thuật toán cho toán hay vấn đề cần lập trình chưa tốt Các em thụ động việc tiếp cận toán, xếp tư duy, xây dựng thuật giải - Từ thực tế trên, trình dạy học băn khoăn trăn trở làm nâng cao chất lượng kỹ lập trình cho học sinh lớp Việc tiếp cận với môn học khó khăn, phải làm nhiều lần thực hành nhiều tiết em hiểu việc nhập xuất liệu Do khó khăn để em hình thành kỹ viết chương trình… Điều thúc đẩy trình giảng dạy phải nghiên cứu tìm tòi biện pháp, kinh nghiệm để giúp cho em có đam mê học tập lập GV: Nguyễn Việt Hưng Năm học 2016-2017 Sáng kiến kinh nghiệm TH&THCS Tân Lĩnh trình, giúp em biết quy trình lập trình định hướng cho học sinh cách để trở thành nhà lập trình cần phải biết kỹ để giải toán máy tính ngôn ngữ lập trình Pascal Giúp em yêu thích lập trình học lập trình hứng thú Ý nghĩa tác dụng giải pháp mới: Việc thực nội dung góp thêm phương pháp việc giảng dạy học sinh lớp có kỹ để giải toán máy tính ngôn ngữ lập trình Pascal Tạo cho học sinh thích thú nhằm nâng cao tính tích cực, độc lập, sáng tạo kỹ chuyên nghiệp học sinh trình sử dụng máy vi tính Bên cạnh học sinh hỗ trợ lẫn thúc đẩy học tập, tiến Những đối tượng khác có niềm đam mê lập trình, đam mê nghiên cứu viết phần mềm tin học ngày hứng thú khám phá trình thực hành máy tính Hạt nhân chương trình máy tính lưu trữ xử lý thông tin Việc tổ chức liệu có ảnh hưởng lớn đến cách thức xử lý liệu đó, tốc độ thực thi chiếm dụng nhớ chương trình Do mục đích viết cung cấp hiểu biết tảng việc thiết kế chương trình máy tính để thấy rõ cần thiết việc phân tích, lựa chọn cấu trúc liệu phù hợp cho toán cụ thể Phạm vi nghiên cứu đề tài: Học sinh khối 8, nhà trường TH&THCS Tân Lĩnh II PHƯƠNG PHÁP TIẾN HÀNH: Cơ sở lý luận thực tiễn có tính định hướng cho việc nghiên cứu, tìm giải pháp đề tài: Chúng ta sống thời đại khoa học điện tử, thời đại bùng nổ thông tin mạng máy tính Công nghệ thông tin tập hợp phương pháp khoa học, phương tiện công cụ kỹ thuật đại nhằm tổ chức khai thác sử dụng có hiệu nguồn tài nguyên thông tin phong phú tiềm lĩnh vực hoạt động người xã hội Bộ GD&ĐT rõ: Nâng cao nhận thức vai trò CNTT; ứng dụng phát triển CNTT giáo dục đào tạo tạo bước chuyển trình đổi nội dung, chương trình, phương pháp giảng dạy, học tập quản lí giáo dục GV: Nguyễn Việt Hưng Năm học 2016-2017 Sáng kiến kinh nghiệm TH&THCS Tân Lĩnh Đặc trưng môn Tin học môn khoa học gắn liền với công nghệ đại, dạy học Tin học nhà trường nhằm trang bị cho học sinh kiến thức khoa học Tin học, phát triển tư thuật toán, kỹ lập trình tiếp cận công nghệ Tin học phục vụ học tập đời sống Nội dung chương trình môn Tin học hành trường THCS đáp ứng yêu cầu * Thuận lợi: - Được quan tâm Ngành giáo dục công đổi phương pháp dạy học - Được quan tâm BGH nhà trường việc đầu tư sở vật chất, trang thiết bị dạy học tương đối đầy đủ đảm bảo phục vụ giảng dạy môn Tin học - Giáo viên giảng dạy đào tạo theo chuyên ngành bồi dưỡng chuyên môn hàng năm - Phần lớn em học sinh có ý thức tự học cao, tìm tòi học hỏi kiến thức học tập hứng thú với môn Tin học * Khó khăn: - Một phận học sinh lớp chưa ý thức việc học Tin - Số lượng học sinh lớp học đông 30 học sinh lớp, diện tích phòng máy nhỏ hẹp, phòng máy có 15 máy máy cũ nên thường hay hư hỏng, thiết bị hỗ trợ thường bị hư hao, không khí phòng máy không thoáng mát làm cho học sinh không tập trung vào giảng ảnh hưởng lớn trình giảng dạy học tập - Vẫn số em học sinh tiếp thu kiến thức chậm, đặc biệt kĩ để giải toán máy tính ngôn ngữ lập trình Pascal môn học (một môn ngoại ngữ mới) - Trường TH&THCS Tân Lĩnh nằm xã Tân Lĩnh, địa phương nghèo nàn, đa số em gia đình làm nghề nông, trình độ học vấn có nhiều hạn chế nên GV: Nguyễn Việt Hưng Năm học 2016-2017 Sáng kiến kinh nghiệm TH&THCS Tân Lĩnh quan tâm phụ huynh đến việc học tập em hạn chế Ít có điều kiện chăm sóc, giáo dục định hướng cho em việc học tập - Một số học sinh chưa coi trọng môn học, xem môn phụ nên chưa có đầu tư thời gian cho việc học Ngoài ra, chương trình Tin học 8, em phải làm quen, tiếp cận với ngôn ngữ lập trình Pascal phần mềm có cấu trúc phức tạp, ngôn ngữ lập trình tiếng anh Mặc khác để thực chương trình em phải có kiến thức toán học định Các biện pháp tiến hành, thời gian tạo giải pháp: Qua trình học tập, nghiên cứu hướng dẫn, cộng với thực tiễn công tác giảng dạy Các phương pháp giúp cho tập trung vào nghiên cứu chính, là: - Phương pháp điều tra - Phương pháp quan sát - Phương pháp phân tích tổng hợp - Phương pháp thống kê GV: Nguyễn Việt Hưng Năm học 2016-2017 Sáng kiến kinh nghiệm TH&THCS Tân Lĩnh PHẦN NỘI DUNG I MỤC TIÊU: Kinh qua năm trực tiếp giảng dạy môn trao đổi với đồng nghiệp nhận thấy: học sinh yêu thích hứng thú với môn Tin học Tuy nhiên, chất lượng môn Tin học lớp qua năm học chưa cao, đặc biệt kĩ lập trình hạn chế Mục đích giúp đỡ học sinh lớp nắm kĩ để giải toán máy tính ngôn ngữ lập trình Pascal Tạo cho học sinh niềm hứng thú say mê lập trình để từ giúp cho em phát huy tính tích cực, tự giác, chủ động, sáng tạo, rèn luyện thói quen làm việc độc lập kỹ lập trình Bên cạnh đó, học sinh biết vận dụng để giải toán thường gặp thực tế; gây hứng thú học tập, làm cho “học” trình kiến tạo; niềm say mê để từ học sinh biết khai thác xử lý thông tin, tự hình thành hiểu biết, lực phẩm chất Khi thực nội dung thân giáo viên tin học thấy trở nên động, sáng tạo, phát huy chuyên môn II MÔ TẢ GIẢI PHÁP CỦA ĐỀ TÀI: Thuyết minh tính mới: 1.1 Kiểm tra học kỳ năm học 2015-2016 môn Tin học: Qua kiểm tra chất lượng học kỳ năm học 2015-2016, thấy kỹ để giải toán máy tính ngôn ngữ lập trình Pascal học sinh lớp yếu Khi giải toán máy tính học sinh quan tâm đến công thức để tính toán kết toán mà quên bước xác định thông tin vào, thông tin ra; xây dựng thuật toán; chạy chương trình học sinh chưa nhận biết kết chương trình hay sai Vì thế, kết kiểm tra học kỳ thấp Kết khảo học kỳ năm học 2015-2016 T T Lớp Sĩ số Giỏi SL % Khá SL % Kết kiểm tra TB Yếu SL % SL % Kém SL % Trên TB SL % 8A1 36 13.9 19.4 25.0 19.4 22.3 21 8A2 38 10.5 21.1 15.8 10 26.3 10 26.3 18 8A3 37 5.4 16.2 18.9 12 32.4 10 27.0 15 GV: Nguyễn Việt Hưng Năm học 2016-2017 58 47 40 Sáng kiến kinh nghiệm Tổng cộng 11 TH&THCS Tân Lĩnh 9.9 21 18.9 22 19.8 29 26.1 28 25.2 54 48 1.2 Giải vấn đề: Pascal ngôn ngữ lập trình cho máy tính thuộc dạng mệnh lệnh, Niklaus Wirth phát triển vào năm 1970, ngôn ngữ đặc biệt thích hợp cho nhiều hệ học sinh, ngôn ngữ vỡ lòng chương trình học Ở môi trường này, học sinh sở hữu lượng tài nguyên kiểu liệu đơn giản, với câu lệnh rõ ràng, sáng, quán dễ thuộc Tuy nhiên, đòi hỏi người lập trình tài bố cục, thiết kế thuật toán cho đắn, hiệu tối ưu, vận dụng quy tắc cú pháp để viết câu lệnh phù hợp Vì kỹ để giải toán máy tính ngôn ngữ lập trình Pascal cần bước sau : - Xác định toán - Tìm cấu trúc liệu biểu diễn thuật toán - Xây dựng thuật toán - Viết chương trình - Kiểm thử chương trình - Tối ưu chương trình 1.2.1 Xác định toán: a Khái niệm toán: Đã học sinh thường xuyên gặp toán nhiều dạng khác cấp học Tuy nhiên toán dễ dàng để thực cho kết tốt Nhưng toán học sinh giáo viên hướng dẫn phải đọc kỹ đề xác định : A B Trong đó: A giả thiết : Điều kiện ban đầu hay cho bắt đầu giải toán B kết luận : Mục tiêu cần đạt hay phải tìm, phải làm kết thúc toán suy luận : Giải pháp cần xác định hay chuỗi bước cần thực từ A đến B b Bài toán máy vi tính : Bài toán máy mang đầy đủ tính chất toán tổng quát trên, lại diễn đạt theo khác - A : đưa thông tin vào – thông tin trước xử lý (Input ) - B: đưa thông tin – kết sau xử lý (Output) GV: Nguyễn Việt Hưng Năm học 2016-2017 Sáng kiến kinh nghiệm TH&THCS Tân Lĩnh - : chương trình tạo từ câu lệnh máy tính cho phép xử lý từ A đến B c Xác định toán: Việc xác định toán xác định xem ta phải giải vấn đề gì? Với giả thiết cho với lời giải cần đạt yêu cầu Khác với toán túy toán học cần xác định rõ giả thiết kết luận không cần xác định yêu cầu lời giải, toán tin học thực tế cần tìm lời giải tốt tới mức đó, chí mức chấp nhận (nếu lời giải tốt đòi hỏi nhiều thời gian chi phí) Input Process Output (Dữ liệu vào Xử lý Kết ra) d Một số ví dụ : Ví dụ 1: Tính diện tích hình vuông Các bước xác định cho toán: + Thông tin vào (Input) : Cạnh hình vuông a + Thông tin (Output) : Kết diện tích đưa a vào + Các liệu cần xử lý để chế biến thông tin như: Lần lượt đưa giá trị a vào (cho a = 4) Áp dụng công thức tính diện tích hình vuông: a*a Kết in 16 Ví dụ 2: Nhập vào xâu ký tự in hình xâu đổi thành in hoa Các bước xác định cho toán: + Input : Xâu ký tự + Output : Xâu ký tự đổi thành in hoa + Các liệu cần xử lý để chế biến thông tin như: Lần lượt đưa xây ký tự vào ( S = abcd) Áp dụng công thức : Xác định chiều dài xâu ký tự hàm Length(s) For i:=1 to length(St) St[i]:=Upcase(St[i]); Kết in ABCD Ví dụ 3: Giải phương trình bậc dạng tổng quát bx + c =0 Các bước xác định cho toán: GV: Nguyễn Việt Hưng Năm học 2016-2017 Sáng kiến kinh nghiệm TH&THCS Tân Lĩnh + Input : Các số b, c + Output : Nghiệm phương trình bậc + Các liệu cần xử lý để chế biến thông tin như: Lần lượt đưa giá trị b, c vào ( b = ; c= - 6) Áp dụng công thức : - Nếu b = c = phương trình có vô số nghiệm - Nếu b = c ≠ phương trình vô nghiệm - Nếu b ≠ phương trình có nghiệm x = -c/b; Kết in x = Ví dụ 4: Tìm giá trị lớn dãy số nguyên Các bước xác định cho toán: + Input : số nguyên dương N dãy N số nguyên a1, …., aN N = ; (7, 5, 9, 4, 10) + Output : Giá trị lớn Max dãy số + Các liệu cần xử lý để chế biến thông tin như: Khởi tạo giá trị Max = a1 Lần lượt với i từ đến N, so sánh giá trị số hạng với giá trị Max, > Max Max nhận giá trị Kết in Max = 10 1.2.2 Tìm cấu trúc liệu biểu diễn thuật toán: * Cấu trúc liệu (data structure) : Là kiểu liệu mà bên có chứa nhiều thành phần liệu thành phần liệu tổ chức theo cấu trúc Nó dùng để biểu diễn cho thông tin có cấu trúc toán Cấu trúc liệu thể khía cạnh logic liệu Ví dụ cấu trúc liệu đơn giản chương trình tin học lớp mảng Còn liệu cấu trúc gọi liệu vô hướng hay liệu đơn giản VD: kiểu liệu số nguyên (integer), số thực (real), logic (boolean) kiểu liệu đơn giản * Khi giải toán, ta cần phải định nghĩa tập hợp liệu để biểu diễn tình trạng cụ thể Việc lựa chọn tùy thuộc vào vấn đề cần giải thao tác tiến hành liệu vào Có thuật toán thích ứng với cách tổ chức GV: Nguyễn Việt Hưng Năm học 2016-2017 10 Sáng kiến kinh nghiệm TH&THCS Tân Lĩnh học sinh phải nắm cấu trúc chung chương trình Pascal cần có thành phần Một chương trình Pascal có phần: PROGRAM Tên_chương_Trình ; - Tên chương trình USES - Thư viện …… LABEL …… Phần khai báo - Nhãn CONST …… - Hằng TYPE …… - Kiểu - Biến VAR …… PROCEDURE …… Phần mô tả thủ tục / hàm chương FUNCTION …… BEGIN Bắt đầu thân chương trình …… Các câu lệnh chương trình Kết thúc thân chương trình END GV: Nguyễn Việt Hưng Năm học 2016-2017 17 trình Sáng kiến kinh nghiệm TH&THCS Tân Lĩnh * Phần khai báo : - Phần khóa Program tiếp đến tên chương trình chấm dứt dấu chấm phẩy (;).Tên chương trình phải đặt theo qui cách danh hiệu tự đặt (thỏa mãn quy ước đặt tên Pascal) Phần có hay không Ví dụ: Program Phuong_trinh_bac2 ; Program Vidu ; - Tiếp đến khai báo thư viện từ khóa Uses Mỗi ngôn ngữ lập trình thường có sẵn số thư viện cung cấp số chương trình lệnh thông dụng lập sẵn.Ví dụ thư viện crt, graph……Và để sử dụng chương trình phải khai báo thư viện chứa Ví dụ: Uses crt ; {khai báo thư viện crt } Thư viện crt Pascal cung cấp chương trình có sẵn để làm việc với hình bàn phím Ví dụ muốn xóa có hình kết ta dùng lệnh Clrscr (Nếu ta sử dụng lệnh mà không khai báo thư viện Crt máy tính báo lỗi) - Trình tự chương trình Pascal có số tất khai báo liệu sau: LABEL : khai báo nhãn CONST : khai báo TYPE : định nghĩa kiểu liệu VAR : khai báo biến có dùng chương trình + Khai báo thường sử dụng cho giá trị xuất nhiều lần chương trình (có nghĩa giá trị thường xuyên xuất chương trình ta cần khai báo hằng) Ví dụ : Khai báo Const MaxN = 1000 ; Pi = 3.1416 ; KQ = ‘Ketqua’ ; GV: Nguyễn Việt Hưng Năm học 2016-2017 18 Sáng kiến kinh nghiệm TH&THCS Tân Lĩnh Và viết chương trình thay ghi giá trị cụ thể ta sử dụng tên khai báo (đã khai báo MaxN = 1000 trình viết chương trình cần sử dụng MaxN thay cho giá trị 1000) + Trong trình lập trình phát sinh kiểu liệu cần sử dụng phải khai báo từ khóa Type Ví dụ 1: Khai báo kiểu mảng chiều Type Kmang = array [1 100] of integer ; Ví dụ 2: Khai báo kiểu ghi Type Hocsinh = record Hoten : string [30] ; Ngaysinh : string [10] ; Tin, toan, ly : real ; End; + Tất biến dùng chương trình phải đặt tên phải khai báo (sử dụng từ khóa Var) cho chương trình dịch biết để lưu trữ xử lí Biến nhận giá trị thời điểm thực chương trình Tên biến dùng để xác lập quan hệ biến với địa nhớ nơi lưu trữ giá trị biến biến khai báo lần Var < danh sách biến > : < kiểu liệu> ; Trong : Danh sách biến hay nhiều tên biến, tên biến viết cách dấu phẩy (,) Kiểu liệu thường kiểu liệu chuẩn hay kiểu liệu người lập trình định nghĩa Ví dụ : Var x , y : real ; N : Kmang ; { Kmang định nghĩa } +Phần khai báo chương trình (thủ tục Procedure hàm Function): Phần mô tả nhóm lệnh đặt tên chung chương trình để thân chương trình gọi đến nhóm lệnh thi hành Phần có không tùy theo nhu cầu Và chương trình tin học lớp không nên đặt nặng vấn đề cho học sinh, để học sinh cảm thấy đơn giản GV: Nguyễn Việt Hưng Năm học 2016-2017 19 Sáng kiến kinh nghiệm TH&THCS Tân Lĩnh để việc lập trình toán đơn giản em trở nên gần gủi thân em tự viết chương trình đơn giản Lưu ý : Phần khai báo có không tùy theo chương trình cụ thể * Phần thân chương trình: Phần thân chương trình phần đặc biệt quan trọng bắt buộc phải có, phần nằm từ khoá BEGIN END Ở lệnh mà chương trình cần thực Đề yêu cầu viết chương trình thực công việc phần thân phải có câu lệnh dùng để thực công việc Sau từ khóa END dấu chấm (.) để báo kết thúc chương trình Các lệnh sau dấu chấm ý nghĩa * Lưu ý : Dấu chấm phẩy (;): Dấu ; dùng để ngăn cách câu lệnh Pascal thiếu trình viết câu lệnh * Lời thích: Lời thích dùng để giải cho người sử dụng chương trình nhớ nhằm trao đổi thông tin người người, máy tính không để ý đến lời thích Lời thích nằm ký hiệu: { } (* *) Ví dụ 2: PROGRAM CT_Dau_tien ; {Dòng tiêu đề, khai báo tên chương trình } USES Crt; VAR x : integer ; BEGIN { Khai báo sử dụng thư viện Crt } { Khai báo biến } { Thân chương trình } Clrscr ; { Xóa hình } Writeln (‘Nhap gia tri cua x =’) ; Readln (x) ; x:= ; x:= x + 10 ; Writeln (‘Gia tri cua x la’ , x ); Readln; END GV: Nguyễn Việt Hưng { Kết thúc chương trình} Năm học 2016-2017 20 Sáng kiến kinh nghiệm TH&THCS Tân Lĩnh 1.2.5 : Kiểm thử chương trình (Testing program) Chạy thử tìm lỗi công việc mà người lập trình cần phải làm viết xong chương trình để kiểm tra chương trình Chương trình người viết ra, khó tránh khỏi nhầm lẫn Một chương trình viết xong chưa chạy máy tính kết mong muốn Kỹ tìm lỗi, sửa lỗi, điều chỉnh lại chương trình kỹ quan trọng người lập trình Kỹ có kinh nghiệm tìm sửa lỗi Có loại lỗi thường gặp lập trình: + Lỗi thuật toán: Lỗi gặp nguy hiểm Nếu nhẹ phải điều chỉnh lại thuật toán, nặng có phải viết lại thuật toán từ đầu + Lỗi cú pháp: lỗi hay gặp lỗi dễ sửa Chỉ cần nắm vững ngôn ngữ lập trình đủ Một người coi lập trình sửa lỗi cú pháp Và lỗi thường gặp học sinh bắt đầu học lập trình Ví du 1: Tìm số lớn số a,b,c nguyên nhập vào từ bàn phím Lần 1: Program tim_so_lon_nhat ; uses crt; var a,b,c:integer; begin clrscr; write('nhap so=');readln(a,b,c); if a N If M > N then M:= M – N else N:= N – M ; Writeln (‘UCLN =’, M) ; Readln ; End Ví dụ 3: Viết chương trình “Tìm phần tử lớn dãy số nguyên” Bước 1: Xác định toán : - Input : Số nguyên dương N (N đưa giá trị Max kết thúc ; - Bước 4: Nếu Ai > Max Max Ai ; ii+1 ; quay lại bước Bước : Viết chương trình Program TimMax ; Uses crt ; Const Nmax = 250 ; Type arrInt = array[1 Nmax] of integer ; Var N, i , Max , csmax : integer ; A : arrInt ; Begin Clrscr ; Write (‘Nhap so luong phan tu cua day so, N =’) ; Readln (N) ; For i:= to N Begin Write (‘phan tu thu ‘, i,’=’) ; Readln(A[i]) ; End ; Max:= A[1] ; Csmax := ; For i:=2 to N If A[i] > Max then Begin Max:= A[i] ; Csmax:=i ; End; Writeln (‘gia tri cua phan tu Max:’ , Max) ; Writeln (‘chi so cua phan tu Max:’ , csmax) ; Readln End Khả áp dụng: Với kinh nghiệm qua học kỳ năm học 2015-2016 vận dụng so với học kỳ năm học 2015-2016 đạt kết đáng mừng Qua điều tra nhỏ tính hứng thú học tập học sinh, số liệu thể sau: GV: Nguyễn Việt Hưng Năm học 2016-2017 28 Sáng kiến kinh nghiệm TH&THCS Tân Lĩnh - Khối lớp năm học 2015-2016 lên lớp năm học 2016-2017 số lượng học sinh hứng thú, thích học tin học tăng vượt bậc, kỹ lập trình trở nên chuyên nghiệp xác - Khối lớp năm học 2015-2016 lên lớp năm học 2016-2017 mạnh dạn tham gia kì thi tổ chức Internet đăng kí dự thi tin học trẻ không chuyên dành khối trung học sở Qua thời gian triển khai áp dụng phương pháp, nhận thấy học lập trình ngôn ngữ lập trình Pascal thực thu hút đối tượng học sinh không học đối tượng học sinh giỏi Học sinh hoạt động tích cực hơn, khả phân tích, tư toán học trở nên nhạy bén phát huy tính tích cực, sáng tạo tạo niềm đam mê môn Tin học Các đối tượng học sinh hỗ trợ cho để học, tiến Học sinh mạnh dạn đăng kí tham gia kì thi lập trình Đặc biệt học sinh trường tiến rõ rệch môn toán hứng thú học toán nhiều Kỹ lập trình em không lúng túng mà trở nên chuyên nghiệp Qua nhiều em định hướng cho công việc tương lai có tác động tích cực đến nhận thức em Tạo cho em ngày yêu, đam mê công nghệ phần mềm giúp em có tảng để tiếp cận ngôn ngữ lập trình khác GV: Nguyễn Việt Hưng Năm học 2016-2017 29 Sáng kiến kinh nghiệm TH&THCS Tân Lĩnh Kết kiểm tra học kì II lớp năm học 2015-2016 (lập trình) T T Lớp Sĩ số Giỏi SL % Khá SL % Kết kiểm tra TB Yếu SL % SL % Kém SL % Trên TB SL % 8A1 36 22.2 12 33.3 11 30.5 14.0 8A2 38 15.8 14 36.8 12 31.6 10.5 5.3 32 8A3 37 18.9 14 37.8 10 27.0 13.5 2.8 31 21 14.3 40 27.2 33 22.4 14 9.5 2.0 94 Tổng cộng 31 86 84 83 84 Lợi ích kinh tế - xã hội: Tạo cho học sinh trung học sở kĩ cần thiết, tảng vững trình lập trình Giúp cho em có động, nắm bắt khoa học kĩ thuật tiên tiến thời đại đồng thời tạo cho hệ trẻ tương lại ngày nhạy bén chuyên nghiệp công việc Xây dựng đội ngũ hệ trẻ tương lai kỹ lập trình vững vàng sáng tạo nhằm tạo phát triển nguồn nhân lực trí thức công nghệ phần mềm góp phần đưa nước nhà trở thành nước công nghiệp hóa – đại hóa Thế giới ngày đại với nhiều công nghệ tiên tiến phục vụ cho người cho xã hội GV: Nguyễn Việt Hưng Năm học 2016-2017 30 Sáng kiến kinh nghiệm TH&THCS Tân Lĩnh PHẦN KẾT LUẬN Tin học môn học học sinh phổ thông Để tạo hứng thú học tập cho học sinh bước nâng cao chất lượng môn đòi hỏi người giáo viên phải tìm tòi, đổi phương pháp dạy học phù hợp, hiệu Trong trình dạy học sinh lập trình, vận dụng kỹ để giải toán máy tính ngôn ngữ lập trình Pascal tạo cho học sinh niềm đam mê, hứng thú, sáng tạo đặc biệt học không nỗi ám ảnh học sinh em trường tiến rõ rệch kỹ lập trình từ toán đơn giản đến nâng cao Trên số kinh nghiệm thân rút trình hướng dẫn dạy học sinh kỹ lập trình Rất mong nhận góp ý quý thầy cô, bạn bè đồng nghiệp để hoàn chỉnh kinh nghiệm này, góp phần nâng cao kỹ chất lượng dạy học lập trình cho học sinh lớp Tân Lĩnh, ngày tháng 11 năm 2016 Người viết Nguyễn Việt Hưng GV: Nguyễn Việt Hưng Năm học 2016-2017 31 [...]... ptb1; var a,b:real; begin write('nhap cac he so='); readln(a,b); GV: Nguyễn Việt Hưng Năm học 2016-2017 23 Sáng kiến kinh nghiệm TH&THCS Tân Lĩnh if a0 then writeln('phuong trinh vo so nghiem' ); else if b=0 then writeln('phuong trinh co nghiem' ,-b/a:4:2) else writeln('phuong trinh vo nghiem' ) readln end Với chương trình trên hoàn toàn có thể chạy được song kết quả sẽ không đúng khi nhập dữ liệu a,... Thuật toán “Tìm ước số chung lớn nhất của 2 số nguyên dương a,b - Bước 1: Nhập 2 số nguyên dương là a,b - Bước 2: So sánh giá trị a và b Nếu a bằng b thì sang bước 3, ngược lại a khác b thì sang bước 4 GV: Nguyễn Việt Hưng Năm học 2016-2017 12 Sáng kiến kinh nghiệm TH&THCS Tân Lĩnh - Bước 3: Tìm được ước số chung là a và kết thúc chương trình - Bước 4: Nếu a lớn hơn b thì ước số chung lớn nhất là a:=a-b... cho một kết quả đúng như yêu cầu : program ptb1; var a,b:real; begin write('nhap cac he so=');readln(a,b); if a0 then if b=0 then writeln('phuong trinh vo nghiem' ) else writeln('phuong trinh co nghiem' ,-b/a:4:2) else writeln('phuong trinh vo so nghiem' ); readln end Ví dụ 5: Lỗi sau câu lệnh ta không sử dụng dấu chấm phẩy, hay kết thúc chương trình không có dấu chấm, hay từ khoá BEGIN nếu ta viết BE... cua x =’) ; Readln (x) ; x:= 0 ; x:= x + 10 ; Writeln (‘Gia tri cua x la’ , x ); Readln; END GV: Nguyễn Việt Hưng { Kết thúc chương trình} Năm học 2016-2017 20 Sáng kiến kinh nghiệm TH&THCS Tân Lĩnh 1.2.5 : Kiểm thử chương trình (Testing program) Chạy thử và tìm lỗi và công việc mà người lập trình cần phải làm khi viết xong chương trình để kiểm tra chương trình của mình Chương trình là do con người...Sáng kiến kinh nghiệm TH&THCS Tân Lĩnh dữ liệu nhất định, đối với những cách tổ chức dữ liệu khác thì sẽ kém hiệu quả hoặc không thể thực hiện được Chính vì vậy nên bước xây dựng cấu trúc dữ liệu không thể tách rời bước tìm kiếm thuật toán giải quyết vấn đề * Các tiêu chuẩn khi lựa chọn cấu trúc dữ liệu: - Cấu trúc dữ liệu trước hết phải biểu diễn được đầy đủ các thông tin nhập và xuất của... trình chính gọi đến thì cả nhóm lệnh đó được thi hành Phần này có thể có hoặc không tùy theo nhu cầu Và trong chương trình tin học lớp 8 thì cũng không nên đặt nặng vấn đề này cho học sinh, chỉ làm sao để học sinh cảm thấy đơn giản GV: Nguyễn Việt Hưng Năm học 2016-2017 19 Sáng kiến kinh nghiệm TH&THCS Tân Lĩnh nhất có thể để việc lập trình các bài toán đơn giản của các em trở nên gần gủi và bản thân... Việt Hưng Năm học 2016-2017 24 Sáng kiến kinh nghiệm TH&THCS Tân Lĩnh trình, ta xem lại những chỗ nào viết chưa tốt thì tối ưu lại những mã lệnh để chương trình ngắn gọn hơn, chạy nhanh hơn - Không nên viết tới đâu tối ưu mã đến đó (bởi chương trình có mã tối ưu thường phức tạp và khó kiểm soát) - Việc tối ưu chương trình nên dựa theo 4 tiêu chuẩn chính sau: * Tính tin cậy : Chương trình phải chạy đúng... trở nên đơn giản và ngắn ngọn Với từng kỹ năng cơ bản của việc giải một GV: Nguyễn Việt Hưng Năm học 2016-2017 25 Sáng kiến kinh nghiệm TH&THCS Tân Lĩnh bài toán bằng ngôn ngữ lập trình Pascal ta thấy qua từng bước sẽ giúp cho học sinh trở nên sáng tạo, chịu khó học hỏi và trau dòi kinh nghiệm Rèn cho học sinh một môi trường năng động và khả năng tư duy nhạy bén Khi học sinh đã trở nên thành thạo thì... phan tu Max:’ , csmax) ; Readln End 2 Khả năng áp dụng: Với kinh nghiệm trên qua học kỳ 2 năm học 2015-2016 tôi đã vận dụng so với học kỳ 1 năm học 2015-2016 tôi đã đạt được kết quả đáng mừng Qua một cuộc điều tra nhỏ về tính hứng thú học tập của học sinh, số liệu được thể hiện như sau: GV: Nguyễn Việt Hưng Năm học 2016-2017 28 Sáng kiến kinh nghiệm TH&THCS Tân Lĩnh - Khối lớp 7 của năm học 2015-2016... học 2015-2016 khi lên lớp 8 của năm học 2016-2017 số lượng học sinh hứng thú, thích học tin học tăng vượt bậc, kỹ năng lập trình trở nên chuyên nghiệp và chính xác hơn - Khối lớp 8 của năm học 2015-2016 khi lên lớp 9 của năm học 2016-2017 đã mạnh dạn tham gia các kì thi được tổ chức trên Internet và đăng kí dự thi tin học trẻ không chuyên dành khối trung học cơ sở Qua thời gian triển khai và áp dụng ... triển vũ bão tin học Sự phát triển tin học đem lại hiệu to lớn cho hầu hết lĩnh vực xã hội, sâu vào đời sống người - Nền tin học quốc gia xem phát triển đóng góp phần đáng kể vào kinh tế quốc... 2016-2017 Sáng kiến kinh nghiệm TH&THCS Tân Lĩnh Đặc trưng môn Tin học môn khoa học gắn liền với công nghệ đại, dạy học Tin học nhà trường nhằm trang bị cho học sinh kiến thức khoa học Tin học, phát... đạt theo khác - A : đưa thông tin vào – thông tin trước xử lý (Input ) - B: đưa thông tin – kết sau xử lý (Output) GV: Nguyễn Việt Hưng Năm học 2016-2017 Sáng kiến kinh nghiệm TH&THCS Tân Lĩnh