Trên cơ sở những gì mà học sinh được học tập về môn lập trình Pascal, để giúp cho học sinh nhìn nhận vấn đề một cách tích cực hơn, sáng tạo hơn và nhất là giúp cho các em có thể yêu thích nhiều hơn nữa ngôn ngữ lập trình Pascal. Mời quý thầy cô tham khảo sáng kiến “Một số phương pháp giúp học sinh giải bài tập về kiểu xâu”.
SÁNG KIẾN KINH NGHIỆM MỘT SỐ PHƯƠNG PHÁP GIÚP HỌC SINH GIẢI BÀI TẬP VỀ KIỂU XÂU A- PHẦN MỞ ĐẦU I/ LÝ DO CHỌN ĐỀ TÀI Ngày nay, giới diễn q trình tin học hố nhiều lĩnh vực hoạt động xã hội loài người đem lại nhiều hiệu to lớn Việc sử dụng máy tính khơng cịn bó hẹp viện nghiên cứu, trường đại học, trung tâm máy tính mà cịn mở rộng quan, tổ chức kinh tế, gia đình Song song với trình trên, việc giảng dạy Tin học trường đại học, THPT đẩy mạnh đôi với việc tăng cường trang bị máy vi tính Đảng Nhà nước ta nhận thấy tầm quan trọng ngành Tin học đưa môn học vào trường phổ thông môn học khác năm học 2006-2007 Chính vậy, giáo viên giảng dạy môn Tin học trường phổ thơng, việc tìm hiểu, nghiên cứu vấn đề Tin học, với việc tìm biện pháp giảng dạy Tin học trường phổ thông công việc cần phải làm thường xuyên, nhằm đáp ứng với đòi hỏi ngày cao xã hội Trong nghiệp vụ người thầy giáo có hai vấn đề quan trọng: thứ thực tiễn tiềm - kiến thức lý thuyết mà họ học Thứ hai thực tiễn nghiệp vụ - thầy giáo phải biết cách truyền thụ kiến thức phù hợp với trình độ học sinh Trong đó, thực tiễn thứ hai điều định nghiệp vụ thầy giáo, đánh giá chất lượng giảng dạy thầy giáo Hai thực tiễn vừa mâu thuẫn với nhau, lại vừa thống với Thầy giáo mang hết kiến thức lý thuyết cao xa trừu tượng dạy cho học sinh, dạy tốt cho học sinh thầy giáo hiểu biết q Trong bối cảnh tồn ngành Giáo dục Đào tạo nỗ lực đổi phương pháp dạy học theo hướng phát huy tính tích cực chủ động học sinh hoạt động học tập Điều 24.2 Luật giáo dục nêu rõ: “Phương pháp giáo dục phổ thơng phải phát huy tính tích cực, tự giác, chủ động, sáng tạo học sinh, phù hợp với đặc điểm lớp học, môn học; bồi dưỡng phương pháp tự học, rèn luyện kỹ vận dụng kiến thức vào thực tiễn, tác động đến tình cảm, đem lại niềm vui, hứng thú học tập cho học sinh” Như vậy, thấy định hướng đổi phương pháp dạy học khẳng định, khơng cịn vấn đề tranh luận Cốt lõi việc đổi phương pháp dạy học trường phổ thông giúp học sinh hướng tới việc học tập chủ động, chống lại thói quen học tập thụ động Đổi phương pháp dạy học theo hướng tích cực hóa hoạt động học sinh trình lâu dài; khơng thể hai mà đông đảo giáo viên từ bỏ kiểu dạy học truyền thụ kiến thức, tiếp thu thụ động quen thuộc từ lâu Việc phát triển phương pháp tích cực địi hỏi số điều kiện, quan trọng thân giáo viên cần có nỗ lực để tìm tịi, sáng tạo cơng tác giảng dạy Đổi phương pháp dạy học vấn đề quan trọng, với môn Tin học đưa vào giảng dạy trường phổ thông Là giáo viên giảng dạy môn này, theo khơng phải tìm nhiều tốn khó, toán hay để giảng dạy cho học sinh Mà vấn đề đặt cần phải tích cực tìm tịi, sáng tạo việc đưa tốn để giúp cho học sinh có hứng thú, tìm tịi sáng tạo q trình giài học tập, từ biết vận dụng linh hoạt tình cụ thể ngồi thực tế Trong việc giảng dạy cho học sinh, việc giúp học sinh lĩnh hội kiến thức Người thầy phải biết kích thích tính tích cực, sáng tạo say mê học hỏi học sinh việc học tập em Bởi vì, việc học tập tự giác, tích cực, chủ động sáng tạo địi hỏi học sinh phải có ý thức mục tiêu đặt tạo động lực bên thúc đẩy thân họ hoạt động để đạt mục tiêu Các cách thiết kế giảng nhằm mục đích áp dụng phương pháp bồi dưỡng cho học sinh lực ham muốn học hỏi, tư sáng tạo, lực tự giải vấn đề, rèn luyện phát triển lực tự học sáng tạo, nghiên cứu, nghĩ làm việc cách tự chủ… Đồng thời để thích ứng với phát triển tư học sinh xã hội tiếp cận với công nghệ tiên tiến xã hội, giới Bên cạnh đó, kỹ thuật dạy học mới, vai trò người thầy có thay đổi là: “hướng dẫn học sinh biết tự tìm hướng giải vấn đề nảy sinh trình học tập, biết cách làm việc độc lập, làm việc tập thể Thầy người định hướng, người cố vấn giúp học sinh tự đánh giá, giúp học sinh đường tìm hiểu, lĩnh hội kiến thức…” - Xuất phát từ thực tiễn giảng dạy trường THPT Thanh Bình tơi thấy rằng, để đạt hiệu cao phần học, tiết học cần có cách thiết kế giảng cho phù hợp với nội dung kiến thức, phương pháp, phương tiện dạy học phải phù hợp với đối tượng học sinh Để qua phần học, tiết học học sinh thích thú với kiến thức mới, qua hiểu kiến thức học lớp, đồng thời học sinh thấy tầm quan trọng vấn đề việc ứng dụng kiến thức trước hết để đáp ứng yêu cầu môn học, sau việc ứng dụng vào công việc thực tiển đời sống xã hội (nếu có) Trong thời đại thơng tin bùng nổ ngày nay, việc lập chương trình tự hoạt động cho máy tính, máy gia dụng cần thiết để làm việc cần có q trình nghiên cứu, học tập ngơn ngữ lập trình lâu dài, qua người lập trình chọn ngơn ngữ lập trình thích hợp Tuy nhiên thứ điều có điểm khởi đầu nó, với học sinh việc học Pascal khởi đầu cho việc tiếp cận ngơn ngữ lập trình bậc cao, qua giúp em hình dung đời, cấu tạo, hoạt đơng ích lợi chương trình hoạt động máy tính, máy tự động…Q giúp em có thêm định hướng, niềm đam mê tin học, nghề nghiệp mà em lựa chọn sau Đồng thời Pascal ngôn ngữ có cấu trúc thể yếu tố: Cấu trúc mặt liệu, cấu trúc mặt câu lệnh, cấu trúc mặt chương trình Tuy nhiên, mơn học bậc học THPT mơn Tin học lớp 11 em học sinh cho mơn học “khó khăn” mơn học Từ việc em người sử dụng phần mềm sẵn có như: hệ điều hành, sọan thảo văn Word, bảng tính Excel, phần mềm học tập, nghe nhạc hay chơi game… em lại người phải tìm lời giải cho tốn, bước cho máy tính thực viết chương trình để tạo sản phẩm phần mềm cho người khác sử dụng bước khởi đầu, Turbo Pascal ngơn ngữ lập trình có cấu trúc, dùng phổ biến nước ta công tác giảng dạy, lập trình tính tốn, đồ họa Turbo Pascal dùng chương trình giảng dạy Tin học hầu hết trường đại học, cao đẳng, trung học phổ thơng mệnh danh “ngơn ngữ học đường” Các em học sinh phải làm quen với nhiều kiểu liệu mà môn học khác khơng có, nhiều học sinh cịn bỡ ngỡ khơng hiểu kiểu số nguyên mà lại chia làm nhiều kiểu byte, integer, word, … mà toán học gồm số nguyên âm nguyên dương Hoặc loại thơng tin hình ảnh, âm thanh… xử lý Kiến thức khó, học sinh sợ học mơn Tin học 11, kết giảng dậy thấp, lớp học sinh yếu mơn tự nhiên, có điều kiện sử dụng máy tính Người thầy phải làm để khắc phục điều này? II- THỰC TRẠNG CỦA VẤN ĐỀ NGHIÊN CỨU 1/Tình trạng thực tế chưa thực đề tài Trước chưa áp dụng phương pháp giảng dạy giáo án điện tử, lấy ví dụ từ thực tế… học sinh ln phản ánh với giáo viên rằng: “Những tập kiểu xâu” khó hiểu trừu tượng Khi kiểm tra với mức độ đề tương đương với vài ví dụ sách giáo khoa, em mơ hồ đạt kết chưa cao 2/ Khảo sát thực tế Giáo viên đưa đề kiểm tra tiết lớp 11A3 có 45 học sinh sau: Bài 1: Viết chương trình nhập vào xâu ký tự từ bàn phím Đổi xâu ký tự sang chữ in hoa in kết hình Ví dụ : Input: ‘abcdAbcD’ Output: ‘ABCDABCD’ Bài 2: Viết chương trình nhập vào chuỗi, tách in từ cuối chuỗi Kết kiểm tra sau: Điểm Số học sinh 13 10 Tỉ lệ 6,67% 15,56% 28,88% 22,22% 17,77% 6,67% 2,22% Đối với hai ví dụ hấu hết em chưa hình dung thuật toán bước để viết chương trình Để khắc phục điều đó, theo tơi cần phải tìm tịi, nghiên cứu tìm phương pháp phù hợp, kích thích tính tích cực học sinh học tập Học sinh tự tìm ý tưởng sáng tạo vận dụng thiết thực vào sống, thực tế nhu cầu nảy sinh, em tự hồn thành ý tưởng Trên sở mà học sinh học tập mơn lập trình Pascal, để giúp cho học sinh nhìn nhận vấn đề cách tích cực hơn, sáng tạo giúp cho em u thích nhiều ngơn ngữ lập trình Pascal Xuất phát từ sở trên, chọn đề tài “Một số phương pháp giúp học sinh giải tập kiểu xâu”, giúp em nắm kiểu liệu có cấu trúc- kiểu xâu ứng dụng kiểu liệu thực tiễn (Chương IV-bài 12-tin học 11) 3/ Mục đích sáng kiến kinh nghiệm Sử dụng ví dụ cụ thể trước hết để học sinh nắm cú pháp, ý nghĩa kiểu xâu Và thơng qua ví dụ để kết hợp với tập thực hành số (giới thiệu trước thủ tục) để củng cố phần kiến thức này, đồng thời tăng yêu thích, ham học hỏi học sinh môn học vốn mệnh danh khó mơn học lớp 11 B- NỘI DUNG I/ CHUẨN BỊ 1/ Về phương pháp: - Giáo viên soạn trước vài ví dụ máy tính phần mềm PowerPoint Sử dụng phương pháp thuyết trình kết hợp pháp vấn - Đưa số tập để học sinh thảo luận qua nắm vững kiểu liệu có cấu trúc: kiểu xâu Hình thành học sinh kỹ phân tích, xử lý vấn đề liên quan đến tập kiểu xâu, sử dụng thành thạo vòng lặp biết trước, thủ tục chuẩn vào/ra đơn giản bước đầu làm quen với số chương trình dạng thủ tục tạo điều kiện thuận lợi cho việc tiếp thu kiến thức cách viết chương trình có cấu trúc 2/ Về phương tiện: - Giáo viên chuẩn bị máy tính “để bàn xách tay”, máy chiếu, chiếu, bút laze, bảng phụ … - Học sinh cần có đầy đủ sách bút, ghi… II/ CÁC BƯỚC THỰC HIỆN BÀI GIẢNG Bài tập 1: Viết chương trình nhập vào xâu ký tự từ bàn phím Đổi xâu ký tự sang chữ in hoa in kết hình Ví dụ : Input: ‘abcdAbcD’ Output: ‘ABCDABCD’ Giáo viên nêu câu hỏi: Ứng dụng viết chữ in hoa em gặp trường hợp nào? Học sinh: Khi làm giấy khai sinh, kê khai lý lịch, làm hồ sơ thi tốt nghiệp, ĐH-CĐ… Giáo viên: Làm để ta nhập họ tên vào máy chữ thường lên hình chữ in hoa có dấu? Học sinh: Sử dụng hàm upcase(ch) Giáo viên: Nhưng hàm upcase(ch) đổi kí tự thành ký tự in hoa, đổi xâu kí tự? xử lý vấn đề nào? Học sinh: Đưa cách xử lý Giáo viên: Chúng ta biết coi xâu mảng chiều mà phần tử kí tự Mỗi kí tự xâu đánh số thứ tự thường 1, số kí tự xâu độ dài xâu Vậy để chuyển xâu nhập từ bàn phím thành chữ in hoa ta chuyển kí tự xâu thành kí tự in hoa: duyệt phần tử xâu gán phần tử giá trị upcase(ch); Câu lệnh for i:=1 to length(st) St[i]:=upcase(St[i]); dùng để thực yêu cầu Giáo viên gọi học sinh lên bảng viết chương trình Học sinh viết chương trình, sau giáo viên nhận xét , sửa chữa có sai sót Chạy chương trình để học sinh theo dõi kết thực Chương tình tập 1: Program inhoa; Uses Crt; Var St: String; i:Byte; Begin Write(‘Nhap xau St: ‘); Readln(St); For i:=1 to length(St) St[i]:=Upcase(St[i]); Write(‘Xau ket qua: ‘, St); Readln; End Bài tập 2: Viết chương rình nhập vào chuỗi tách in từ cuối chuỗi: Giáo viên gợi ý: Khi nhập vào chuỗi bất kỳ, có khoảng trống sau từ cuối chuỗi để xác định từ cuối chuỗi, trước tiên phải cắt bỏ khoảng trống cuối chuỗi sau xác định vị trí (vitri) khoảng trống tính từ cuối trở đầu Từ cuối là: ký tự vị trí (vitri+1) đến cuối chuỗi Ví dụ: s=’N Thanh Huong ’, length(s) trả giá trị 16, Sau cắt khoảng trống cuối s=’N Thanh Huong’, length(s) trả giá trị 13 vị trí khoảng trống tìm thấy chuỗi tính từ cuối lên vitri = Vậy ký tự từ vị trí đến cuối chuỗi tạo thành từ cuối Huong Chương trình tập Program BT2; Uses crt; Var s: String; i, vitri: byte; Begin Clrscr; Writeln(‘chuong trinh in tu cuoi cung cua chuoi’); Write(‘Nhap vao chuoi s=’); Readln(s); {1} While s[length(s)=#32 {2} Delete (s,length(s),1); {3} vitri:=0; {4} for i:= length(s) downsto {5} if s[i] = #32 then {6} begin {7} vitri:=1; {8} break; {} end; {10} Write (‘Tu cuoi:’); {11} For i:= vitri +1 to length(s) write(s[i]); {12} Readln; {13} End Giáo viên giải thích: {1} → {2} Vong lặp While dùng để cắt bỏ khoảng trống cuối chuỗi s Nếu thấy ký tự trống cuối chuỗi, lệnh {2} xóa ký tự trống tiếp tục kiểm tra lại biểu thức điều kiện lặp Vòng lặp While thực ký tự cuối chuỗi s khác trống Ví dụ: Nhập s = ‘N Thanh Huong ’ , length(s)=16, s[16]= #32 → bắt đầu vong lặp While Sau lệnh {2}, s = ‘N Thanh Huong ’ , length(s)=15, s[15]= #32 → tiếp tục lặp Sau lệnh {2}, s = ‘N Thanh Huong ’, length(s)=14, s[14]= #32 → tiếp tục lặp Sau lệnh {2}, s = ‘N Thanh Huong’ , length(s)=13, s[13]= ‘g’#32 → thoát lặp {3} →{9}: Bắt đầu vịng lặp, biến xác định vị trí tìm thấy khoảng trống Vòng lặp {4} duyệt từ vị trí cuối đến vị trí đầu chuỗi s ký tự i khác trống giảm i để xét ký tự trước nó, khoảng trống {5}, thí cất vị trí vào biến vitri{7} kết thúc vòng lặp for {4} mà không cần đợi i giảm đến Trường hợp chuỗi s có từ, khơng có khoảng trống (ví dụ: ‘Xuan’) vịng lặp for kết thúc i giảm tới vị trí nguyên giá trị gán câu lệnh{3} Khi từ cuối bắt đầu ký tự (vitri+1) = 0+1=1 đến cuối chuỗi s {11} Vòng lặp for in ký tự chuỗi s từ vị trí sau khoảng trống tìm (vitri+1) đến cuối chuỗi Với length(s) trả số ký tự thực có chuỗi s sau cắt bỏ khoảng trống cuối chuỗi Bài tập 3: Nhập xâu St từ bàn phím (St