Một số giải pháp phát triển năng lực tin học của học sinh khi tìm hiểu về kiểu dữ liệu có cấu trúc trong chương trình tin học 11

25 3 0
Một số giải pháp phát triển năng lực tin học của học sinh khi tìm hiểu về kiểu dữ liệu có cấu trúc trong chương trình tin học 11

Đ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

SỞ GIÁO DỤC VÀ ĐÀO TẠO YÊN BÁI TRƯỜNG THPT LÝ THƯỜNG KIỆT BÁO CÁO SÁNG KIẾN CẤP CƠ SỞ (Lĩnh vực Giáo dục (Tin học)) MỘT SỐ GIẢI PHÁP PHÁT TRIỂN NĂNG LỰC TIN HỌC CỦA HỌC SINH KHI TÌM HIỂU VỀ KIỂU DỮ LI[.]

SỞ GIÁO DỤC VÀ ĐÀO TẠO YÊN BÁI TRƯỜNG THPT LÝ THƯỜNG KIỆT BÁO CÁO SÁNG KIẾN CẤP CƠ SỞ (Lĩnh vực: Giáo dục (Tin học)) MỘT SỐ GIẢI PHÁP PHÁT TRIỂN NĂNG LỰC TIN HỌC CỦA HỌC SINH KHI TÌM HIỂU VỀ KIỂU DỮ LIỆU CĨ CẤU TRÚC TRONG CHƯƠNG TRÌNH TIN HỌC 11 Tác giả: Nguyễn Thị Thu Hiền Trình độ chun mơn: Đại học Chức vụ: Giáo viên Đơn vị công tác: Trường THPT Lý Thường Kiệt Yên Bái, tháng 01 năm 2022 MỤC LỤC Nội dung Trang I THÔNG TIN CHUNG VỀ SÁNG KIẾN Tên sáng kiến 2 Lĩnh vực áp dụng sáng kiến Phạm vi áp dụng sáng kiến Thời gian áp dụng sáng kiến Tác giả: II MÔ TẢ GIẢI PHÁP SÁNG KIẾN Tình trạng giải pháp biết 2 Nội dung giải pháp đề nghị công nhận sáng kiến .3 2.1 Mục đích (các) giải pháp: 2.2 Nội dung (các) giải pháp 2.3 Những điểm khác biệt, tính sáng kiến: 21 Khả áp dụng giải pháp: .21 Hiệu quả, lợi ích thu dự kiến thu áp dụng giải pháp 22 Những người tham gia tổ chức áp dụng sáng kiến lần đầu (nếu có) 23 Các thơng tin cần bảo mật 23 Các điều kiện cần thiết để áp dụng sáng kiến .23 Tài liệu gửi kèm 23 III Cam kết không chép vi phạm quyền 24 I THÔNG TIN CHUNG VỀ SÁNG KIẾN Tên sáng kiến: Một số giải pháp phát triển lực tin học học sinh tìm hiểu kiểu liệu có cấu trúc chương trình Tin học 11 Lĩnh vực áp dụng sáng kiến: Giáo dục (Tin học) Phạm vi áp dụng sáng kiến: Trường THPT Lý Thường Kiệt Thời gian áp dụng sáng kiến: Từ ngày 06 tháng năm 2019 đến ngày 08 tháng 01 năm 2022 Tác giả: Họ tên: Nguyễn Thị Thu Hiền Năm sinh: 1980 Trình độ chun mơn: Đại học Chức vụ công tác: Giáo viên Nơi làm việc: Trường THPT Lý Thường Kiệt Địa liên hệ: Trường THPT Lý Thường Kiệt, số 303, đường Trần Hưng Đạo, phường Hồng Hà, TP Yên Bái, tỉnh Yên Bái Điện thoại: 0912.589.726 II MƠ TẢ GIẢI PHÁP SÁNG KIẾN Tình trạng giải pháp biết Đại hội đại biểu toàn quốc lần thứ XIII Đảng Cộng sản Việt Nam tiếp tục đề cao vai trò giáo dục, coi giáo dục đào tạo quốc sách hàng đầu “Xây dựng đồng thể chế, sách để thực có hiệu chủ trương giáo dục đào tạo với khoa học công nghệ quốc sách hàng đầu, động lực then chốt để phát triển đất nước” Quan điểm vừa khẳng định hai lĩnh vực xác định quốc sách hàng đầu giáo dục, đào tạo khoa học, cơng nghệ; đồng thời phản ánh mối quan hệ biện chứng giáo dục, đào tạo với khoa học, công nghệ Chính vậy, mơn Tin học trở thành mơn học có nhiệm vụ vai trị vơ quan trọng việc thực nhiệm vụ Môn Tin học giữ vai trò chủ đạo việc chuẩn bị cho học sinh khả tìm kiếm, tiếp nhận, mở rộng tri thức sáng tạo thời đại thông tin, kết nối tồn cầu hóa; hỗ trợ đắc lực học sinh tự học tập nghiên cứu; tạo sở vững cho việc ứng dụng công nghệ kĩ thuật số, phục vụ phát triển nội dung kiến thức mới, triển khai phương thức giáo dục đại cho tất môn học Hiện nay, lý luận dạy học sử dụng nhiều phương pháp kỹ thuật dạy học như: dạy học dự án, dạy học giải vấn đề, dạy học hợp tác, dạy học khám phá… Theo phương pháp có nhiều cách thiết kế kế hoạch dạy học để phát triển lực tin học cách hiệu Trong đó, việc phát triển lực tin học với thành phần lực giải vấn đề với hỗ trợ công nghệ thông tin truyền thông; ứng dụng công nghệ thông tin truyền thơng học tự học thực với học sinh thông qua việc học Pascal Tuy nhiên, thực tế giảng dạy cho thấy hầu hết học sinh lúng túng trình học tập đặc thù môn Tin học mơn có kiến thức trừu tượng, đặc biệt mơn Tin học lớp 11 với số phần kiểu mảng, kiểu xâu, kiểu tệp chương trình Một số giáo viên chưa tìm phương pháp phù hợp để truyền đạt kiến thức giúp học sinh tìm kiến thức qua học môn Tin học 11, dẫn đến học sinh tiếp thu cách thụ động, khơng có hứng thú với mơn Tin học cảm thấy khó Giáo viên chưa biết cách đặt vấn đề mang tính cởi mở để học sinh tiếp cận với nội dung chưa nhấn mạnh giải tốn lớn phức tạp cần phải chia nhỏ tốn lớn thành tốn nhỏ hơn, mà dạy theo cảm tính trình độ mình, chưa tìm hiểu rõ lực đối tượng học sinh Học sinh đa phần tiếp xúc với máy tính mơn Tin học chủ yếu để giải trí số kiến thức tin học bản, cịn với mơn lập trình tư trừu tượng em cịn hạn chế Bài giảng giáo viên số nội dung khó chưa có tính liên hệ với thực tế khó gây hứng thú học sinh việc tìm hiểu kiến thức Việc sử dụng tư liệu, đồ dùng dạy học giáo viên chưa hợp lý nên chưa đáp ứng nhu cầu học Cụ thể với nội dung này, giáo viên cần sử dụng máy vi tính để trình bày tiết dạy theo dạng trực quan thực hành số ví dụ viết chương trình hồn chỉnh nhằm giúp học sinh thấy kết thực hành hình dung cách sử dụng Chương trình để giải tốn Từ em thấy nội dung học, ý nghĩa phần sử dụng liệu hay câu lệnh cho việc viết chương trình toán phức tạp giải máy tính Như khó khăn chung số nội dung là: Giáo viên chưa tìm phương pháp phù hợp, chưa nghiên cứu tổng quát hệ thống kiến thức bản, mối quan hệ kiến thức với khác, mơn Tin học với Tốn học, với thực tế, chưa biết cách đặt tình cho em tìm hiểu, thảo luận Do học sinh không nắm rõ khái niệm kiểu mảng chiều, kiểu xâu, kiểu tệp chương trình tin học, khơng phân biệt điểm giống khác chúng có nắm bắt cách chung chung, phiến diện, tiếp thu học cách hời hợt thụ động Xuất phát từ sở trên, chọn đề tài “Một số giải pháp phát triển lực tin học học sinh tìm hiểu kiểu liệu có cấu trúc chương trình Tin học 11”, nhằm giúp em biết cách tiếp cận với nội dung góc độ dễ hơn, trực quan hơn, từ hiểu rõ ngữ nghĩa cách sử dụng câu lệnh phù hợp để tiếp thu tốt nội dung học làm tốt tập áp dụng, từ góp phần phát triển lực tin học học sinh, đáp ứng yêu cầu giáo dục Các giải pháp trình bày dựa kinh nghiệm giảng dạy thân tham khảo số tài liệu liên quan Nội dung giải pháp đề nghị cơng nhận sáng kiến 2.1 Mục đích (các) giải pháp: - Nâng cao hiệu dạy học giáo viên tiếp thu kiến thức q trình học tập học sinh mơn học địi hỏi tư sáng tạo lập trình pascal, đặc biệt phần liệu kiểu cấu trúc Tạo động cho học sinh ý thức ý nghĩa hoạt động thao tác tên liệu có kiểu cấu trúc cơng việc lập trình Từ đó, học sinh liên hệ, vận dụng sáng tạo vào giải toán lập trình tình thực tế nhằm góp phần hình thành phát triển lực trí tuệ chung cho học sinh THPT lực tin học nói riêng Trong trình học vấn đề học sinh cần phải có liên hệ với nội dung học từ trước, phân biệt khác kiểu liệu, cấu trúc câu lệnh Từ hình thành khả tư tiếp thu nội dung học Vấn đề thể rõ học tới nội dung kiểu mảng chiều (là dãy hữu hạn phần tử có kiểu liệu), kiểu xâu (có thể xem mảng chiều mà phần tử kí tự) Tệp (Tệp dãy phần tử kiểu xếp cách Tệp liệu lưu trữ nhớ tên Tệp tập hợp số phần tử liệu có cấu trúc giống mảng khác mảng số phần tử tệp chưa xác định) Một nội dung khác “Chương trình phân loại” Học sinh cần hình dung chương trình thường có đoạn chương trình hay phép tính lặp lại nhiều lần Nếu lần lặp lại, ta phải viết đoạn lệnh chương trình trở nên dài dịng, rối rắm thời gian vơ ích Để giải trường hợp vậy, Pascal cho phép tạo module, module mang đoạn chương trình gọi chương trình (subroutine hay subprogram) Mỗi chương trình mang tên khác Một module cần viết lần sau truy xuất nhiều lần, nơi chương trình Khi cần thiết, ta việc gọi tên chương trình để thi hành lệnh Học sinh hiểu việc sử dụng chương trình con, chương trình tiết kiệm nhớ Đồng thời, kiểm tra tính logic tiến trình lập trình cho máy tính điện tử, nhanh chóng loại bỏ sai sót cần hiệu chỉnh hay cải tiến chương trình Đây khái niệm ý tưởng lập chương trình có cấu trúc Một q trình tính có nhiều chương trình lồng ghép vào - Sử dụng ví dụ cụ thể nhằm giúp em học sinh xử lý số tập ứng dụng, tăng yêu thích với mơn học mệnh danh mơn học khó mơn học lớp 11 Qua đó, học sinh vận dụng kiến thức nhiều môn học khác để giải vấn đề cụ thể, rèn cho học sinh phẩm chất: cẩn thận, chu đáo, sáng tạo vận dụng kỹ cần thiết để xử lý tình gặp phải sống - Các giải pháp áp dụng thời gian năm học khối lớp 11 2.2 Nội dung (các) giải pháp 2.2.1 Giải pháp giảng dạy kiểu mảng chiều Bắt đầu từ kiểu liệu có cấu trúc học sinh tìm hiểu thêm kiểu liệu kiểu mảng chiều giáo viên phải biết cách đặt vấn đề để học sinh hiểu rõ phải có kiểu liệu đó, khơng có liệu mà cần liệu học giải tốn hay khơng hay viết chương trình có tối ưu khơng Cụ thể thực sau: 2.2.1.1 Hiểu ý nghĩa kiểu mảng chiều: Bước 1: Tạo tình gợi vấn đề GV: Với kiến thức học em viết đoạn chương trình để nhập vào điểm trung bình học sinh HS: Viết đoạn chương trình bình thường GV: Bây viết đoạn chương trình để nhập điểm trung bình học sinh lớp -> Khi học sinh làm nảy sinh tình có vấn đề là: số lượng biến khai báo nhiều phải viết nhiều câu lệnh câu lệnh viết dài Bước 2: Trình bày vấn đề đặt mục tiêu giải GV: Như vấn đề gặp phải viết chương trình yêu cầu chương trình nhập vào điểm trung bình học sinh tồn trường HS: Suy nghĩ trả lời có nhiều biến phải khai báo: Var x1, x2, x3, x4, x5, … :real; Câu lệnh phải viết dài phải có nhiều câu lệnh Readln(x1,x2,x3,x4,x5,…);  Chương trình khơng phù hợp với kiểu liệu chuẩn học GV: Để giải vấn đề mục tiêu cần phải có kiểu liệu phù hợp hơn, có đủ phần tử để chứa tất giá trị khác theo yêu cầu bài, chương trình viết lại để phù hợp Bước 3: Giải quết vấn đề: GV: Đưa đoạn chương trình để giải vấn đề nêu nhập điểm trung bình học sinh lớp cách sử dụng kiểu mảng chiều để học sinh quan sát khác biệt với đoạn chương trình cũ: Var A : array [1 50] of real; i : Byte; Begin for i:=1 to 42 readln(A[i]); …… Bước 4: Rút kết luận: Từ vấn đề giải việc cần phải tìm hiểu sử dụng kiểu liệu cần thiết kiểu mảng chiều, kiểu liệu có cấu trúc Bước 5: Vận dụng kiến thức để đặt nhiệm vụ tiếp theo: GV: Tiếp tục vấn đáp, đặt câu hỏi để học sinh tìm hiểu khái niệm mảng chiều, cách khai báo, cách tham chiếu đến phần tử, cách duyệt qua phần tử Có thể thuyết trình, vấn đáp để giải nội dung khái niệm mảng chiều sau: GV: Đặt câu hỏi học sinh tìm hiểu số lượng phần tử kiểu liệu phần tử ví dụ nêu HS: Mong đợi học sinh nhận xét sau: - Số lượng biến nhiều số hữu hạn - Mỗi phần tử có kiểu liệu giống  Dựa vấn đáp học sinh tự khái niệm được:“Mảng chiều dãy hữu hạn phần tử kiểu” 2.2.1.2 Khai báo mảng chiều: Sách giáo khoa có khai báo hai cách Trong cách trực tiếp giới thiệu trước gián tiếp giới thiệu sau Tuy nhiên giới thiệu với học sinh theo trình tự làm cho học sinh bị thụ động cách khai báo giáo viên sử dụng phương pháp dẫn chứng để học sinh tự khai báo hai cách Nhằm ghi nhớ sâu việc khai báo biến mảng chiều Bước 1: Tạo tình gợi vấn đề: - Bắt đầu từ khai báo biết Var : ; GV: Giả sử kiểu liệu học ta có kiểu liệu dạng kiểu mảng có tên DiemTrungBinh, cho HS khai báo: Var DTB : DiemTrungBinh; Vấn đề kiểu liệu DiemTrungBinh kiểu liệu có chưa?, có sử dụng khơng? Bước 2: Trình bày vấn đề đặt mục tiêu giải quyết: GV: Ở điểm trung bình tên kiểu liệu mà ta tự đặt ra, xem kiểu liệu có cấu trúc gồm nhiều phần tử đủ để chứa điểm trung bình học sinh lớp Pascal hỗ trợ câu lệnh để định nghĩa tạo kiểu liệu kiểu mảng chiều Bước 3: Giải vấn đề: GV: Từ vấn đề trình bày đặt mục tiêu giải Ngôn ngữ lập trình Pascal cho phép định nghĩa kiểu liệu câu lệnh: Type = array [Kiểu số] of ; Do phải định nghĩa trước khai báo sau nên câu lệnh viết là: Type = array [Kiểu số] of ; Var : ;  Đây cách thứ để khai báo kiểu liệu mảng chiều Trong đó: - Kiểu số có dạng: n1 n2 (n1, n2 số nguyên biểu thức nguyên n1 ≤ n2) - Kiểu phần tử kiểu liệu phần tử mảng Ví dụ: Type DiemTrungBinh = array [1 50] of real; Var DTB : DiemTrungBinh; GV: Cho học sinh quan sát kỹ nhận xét câu lệnh cú pháp ví dụ khai báo để HS phát có đặc điểm giống tính chất bắc cầu biểu thức HS: Mong đợi nhận xét sau: : ; Mà = array [Kiểu số] of ; Nên thay câu lệnh câu lệnh sau: Var : array[Kiểu số] of ;  Đây cách thứ hai để khai báo kiểu liệu mảng chiều Bước 4: Rút kết luận: Như với phương pháp giảng dạy đặt giải vấn đề học sinh không cần phải phụ thuộc vào sách giáo khoa, mà cần nhớ kiến thức cũ trải qua trình vấn đáp suy nghĩ theo dẫn dắt giáo viên em hiểu rõ vai trò kiểu mảng chiều, khái niệm khai báo mảng chiều cách hoàn toàn tự nhiên, Tự viết cách khai báo trực tiếp từ gián tiếp Học sinh cảm thấy hứng thú nhớ lớp 2.2.1.3 Duyệt tham chiếu phần tử mảng chiều: Với nội dung xin trình bày vắn tắt bước trình đặt giải quết vấn đề sau: Bước 1: Tạo tình gợi vấn đề: GV: Đặt tình muốn đưa hình điểm trung bình học sinh hay đưa tất điểm trung bình học sinh hình phải làm HS: Mong đợi suy nghĩ: Đưa hình tất cả: Sử dụng câu lệnh Write(DTB); Còn đưa điểm học sinh: Chắc phải có tham chiếu Bước 2: Trình bày vấn đề đặt mục tiêu giải quyết: GV: Từ suy nghĩ học sinh giáo viên thực câu lệnh mà học sinh suy nghĩ Write(DTB) Tất nhiên trình biên dịch báo lỗi Từ vấn đề giáo viên dẫn dắt để học sinh biết cách phải tham chiếu xuất phần tử theo cú pháp Tham chiếu: [] Chú ý học sinh là: sổ có phục thuộc vào việc chọn kiểu số khai báo Bước 3: Giải vấn đề: GV: Để học sinh viết câu lệnh xuất điểm học sinh từ khai báo ví dụ HS: Sẽ viết Ví dụ: Write(DTB[4]:4:1); {Xuất điểm học sinh thứ lớp} Hoặc xuất hình điểm 40 học sinh lớp For i := to 40 write(DTB[i]:4:1); Bước 4: Rút kết luận: GV: Nhấn mạnh việc thao tác mảng phải thao tác với phần tử mảng, yếu tố duyệt cách tham chiếu đến phần tử mảng có yếu tố quan trọng viết chương trình có sử dụng kiểu liệu mảng chiều 2.2.2 Giải pháp giảng dạy kiểu xâu Bản chất kiểu xâu kiểu mảng chiều mà phần tử kí tự Dựa vào điều giáo viên sử dụng phương pháp đặt giải vấn đề mang tính gợi mở để học sinh có cách tiếp cận tự nhiên từ kiến thức học kiểu mảng chiều Tơi trình bày cụ thể bước thực giải pháp giảng dạy sau: Bước 1: Tạo tình gợi vấn đề: GV: Trình chiếu dãy giá trị sau gợi hỏi học sinh nhận xét đặc điểm chất dãy: Dãy A Dãy B 2.5 6.1 5.0 4.3 7.2 Dãy C T I N H O C HS: nhận xét: Dãy A dãy gồm số nguyên Dãy B dãy gồm số thực Dãy C dãy gồm kí tự Theo định nghĩa kiểu mảng dãy gồm số hữu hạn phần tử có kiểu liệu nên dãy xem mảng chiều Như vậy, từ nhận xét có vấn đề nảy sinh từ kiến thức mảng chiều dãy A dãy B quen thuộc dãy C phần tử kí tự Bước 2: Trình bày vấn đề đặt mục tiêu giải quyết: GV: Đặt câu hỏi gợi mở cho học sinh suy nghĩ nhận xét dãy C Đây dãy gồm kí tự, hay cịn gọi xâu kí tự, em có suy nghĩ làm việc với dãy này? Về cách để xuất giá trị dãy hình? Ví dụ xuất họ tên học sinh, có bắt buộc phải xuất kí tự khơng? Rồi xử lí dãy muốn in hoa, muốn xóa bớt kí tự, muốn chép số kí tự,… điều có khó khăn khơng? HS: Với số câu hỏi đặt giáo viên mong đợi học sinh có suy nghĩ xem mảng chiều việc thực vấn đề nêu khó thực Đặt mục tiêu giải vấn đề liệu có quan niệm khác cho dãy C hay khơng, khơng xem dãy C mảng chiều Và ngôn ngữ lập trình Pascal hỗ trợ kiểu liệu kiểu xâu, làm việc với dãy C kiểu liệu xâu mà khơng phải mảng chiều vấn đề đặt giải dễ dàng Và để thực với kiểu liệu xâu phải tìm hiểu số nội dung khai báo có thao tác kiểu liệu xâu Từ đây, học sinh hiểu kiến thức sau: - Bản chất kiểu xâu kiểu mảng chiều mà phần tử kí tự - Hồn tồn thao tác với kiểu xâu kiểu mảng, ví dụ tham chiếu đến kí tự xâu - Kiểu xâu có nhiều thao tác xử lí đơn giản mà ngơn ngữ lập trình cung cấp sẵn câu lệnh để xử lí (đó hàm thủ tục xử lí xâu) Bước 3: Giải vấn đề: * Nội dung 1: Khái niệm khai báo: GV: Để học sinh tự suy nghĩ khái niệm kiểu xâu từ cách mà giáo viên đưa tình trên: HS: Khái niệm kiểu liệu xâu: Là mảng chiều mà phần tử kí tự GV: Để sử dụng kiểu xâu phải khai báo kiểu xâu GV đưa cú pháp khai báo Var : String[]; Trong đó, độ dài lớn xâu số lượng kí tự tối đa mà xâu khai báo muốn lưu trữ không lớn 255 Khi bỏ qua tham số xâu chứa tối đa 255 kí tự HS: Tự lấy ví dụ khai báo số biến xâu GV đưa số khai báo chưa để học sinh nắm vững cách khai báo Ví dụ: Var s : String[50]; s1,s2 : String [30]; s3 : String; {s3 có độ dài tối đa 255 kí tự} * Nội dung 2: Tham chiếu đến kí tự xâu: GV: Lưu ý học sinh: chất xâu mảng chiều nên tham chiếu tới kí tự tham chiếu tới phần tử mảng chiều số kí tự xâu HS: Tự tham chiếu đến kí tự xâu : Ví dụ: đưa hình số kí tự dãy C (giả sử C tên biến xâu) Write(C[1]); {xuất hình kí tự ‘T’} Hay Write(C[4]); {xuất hình kí tự ‘H’} * Nội dung 3: Các thao tác xử lí xâu: Các thao tác gồm: Ghép xâu, so sánh xâu, thủ tục delete, insert, hay hàm copy, pos, length, upcase Với thao tác quy trình giảng dạy giáo viên cần thực với trình tự sau: Đặt vấn đề: Muốn có kết đó, ví dụ nối họ đệm với tên, xếp tên theo thứ tự, xóa số kí tự xâu, … Đó kết thao tác giới thiệu Giải vấn đề: GV: Thực cú pháp câu lệnh, thủ tục hàm HS: Lấy ví dụ tương ứng với thao tác theo cú pháp mà GV giới thiệu GV: Có thể đặt số tình sai khó xác định để học sinh nắm vững Bước 4: Rút kết luận: Kiểu xâu có vai trị vơ quan trọng lập trình để thực tốt thao tác xâu việc nắm vững thao tác xử lí xâu yếu tố định lập trình thao tác thành thạo với kiểu xâu hay không Với phương pháp trình tự thực với kiểu xâu học sinh tự lĩnh hội nhiều kiến thức mới, không phụ thuộc vào nội dung giới thiệu sách giáo khoa, từ vấn đề mà GV đặt học sinh tự tìm lời giải từ kiến thức mảng chiều, kết thúc nội dung kiểu liệu xâu mà học sinh trao đổi tìm cách giải vấn đề khơng cần phải sử dụng sách giáo khoa hình thành nên khả tư tự học sáng tạo 2.2.3 Giải pháp giảng dạy kiểu tệp Học sinh làm quen với số kiểu liệu chuẩn số kiểu liệu có cấu trúc Đây kiểu liệu mà người lập trình sử dụng chủ yếu vào mục đích sử dụng nguồn liệu lưu trữ sẵn có xử lí kết thực chương trình Vậy cần phải có kiểu liệu tệp (làm rõ vấn đề tức làm cho học sinh hiểu rõ vai trị kiểu tệp) Trong chương trình đề cập đến kiểu tệp văn Nội dung chủ yếu cần đạt: Hiểu vai trò tệp thao tác với tệp: Bước 1: Tạo tình gợi vấn đề: Hoạt động GV Hoạt động HS - Chạy lại số chương trình học, - Quan sát kết tính tổng mảng chiều hay giải phương trình bậc 2, - Thốt khỏi chương trình hỏi: Kết sau - TL: Chạy lại chương trình thực chương trình xem lại nào? - Chốt lại: Như với chương trình học kết có chạy chương trình tồn liệu chương 10 trình lưu trữ ram, nên khơng có khả lưu trữ lâu dài - Để lưu trữ liệu lâu dài liệu - Lưu trữ nhớ lưu trữ đâu đơn vị lưu trữ gì? đơn vị lưu trữ tệp Bước 2: Trình bày vấn đề đặt mục tiêu giải quyết: Trong trình giảng dạy giáo viên cần làm rõ số vấn đề sau: Trình bày vấn đề đặt Mục tiêu giải - Khai báo biến - Bằng với số tệp chương trình tệp? - Tại phải gắn tên tệp? - Trong lập trình ta khơng thao tác trực tiếp với tệp đĩa mà thông qua biến tệp nên phải gắn tên tệp cho đại diện biến tệp - Tại phải mở tệp? - Giống việc muốn xem ghi sửa chữa nội dung tệp cần phải thực nháy đúp để mở tệp - Việc đọc ghi tệp thực - Khi lập trình pascal chương trình tin nào? học 11 thao tác nhập, tính, xuất - Đối với nội dung học nhập từ bàn phím vào biến, tính (xử lí) ghi kết hình Khi làm việc với tệp mặt tính (xử lí) khơng có khác, mà cịn đọc liệu từ tệp chứa liệu vào biến thay cho việc nhập từ bàn phím ghi kết tệp thay cho việc ghi hình - Đọc, ghi tệp có khác so - Cú pháp tương tự cần đưa thêm biến với việc nhập từ bàn phím, tệp vào tham số thủ tục nhập, xuất ghi hình? - Phải thực lưu tệp thao tác đóng tệp - Sau thao tác với tệp lại xong có phải thực việu lưu tệp lại hay không? Bước 3: Giải vấn đề: * Khai báo biến tệp: Cú pháp: Var : text; Chú ý: Trong tập kiểu tệp đề yêu cầu liên quan đến tệp phải khai báo nhiêu biến tệp khác nhau, vấn đề dễ học sinh HS: Lấy ví dụ khai báo từ tập cụ thể Ví dụ: Một tệp văn songuyen.int có chứa số nguyên Hãy viết chương trình tính tổng số ngun ghi tệp ketqua.out Theo cú pháp ý trên, học sinh viết khai báo 11 Var f1, f2 : text; * Gắn tên tệp: Cú pháp: assign (, ); Bắt buộc phải gắn tên tệp chương trình thao tác với biến tệp chương trình, khơng thao tác trực tiếp với tên tệp nhớ, biến tệp trỏ tác động lên liệu lưu trữ tệp HS: Lấy ví dụ: assign (f1, ‘songuyen.int’); assign (f2, ‘ketqua.out’); * Mở tệp: GV: Cũng ta làm việc với tệp môi trường Hệ điều hành Windows, muốn xem, hay thay đổi nội dung tệp ta phải mở tệp thao tác mở tệp Vì lập trình muốn thao tác với nội dung tệp phải mở tệp HS: Suy nghĩ việc để mở tệp câu lệnh GV: Gợi ý cú pháp để học sinh tự ví dụ mở tệp (Chú ý: Giáo viên nên giải thích thao tác khác thực mở tệp để đọc liệu vào biến mở tệp để ghi kết từ chương trình tệp ý nghĩa kết sau lần thực câu lệnh mở tệp nội dung tệp có thay đổi khơng, có bị khơng vị trí trỏ tệp nằm đâu,…) Cú pháp: + Mở tệp để đọc: reset(); + Mở tệp để ghi: rewrite(); HS: Lấy ví dụ mở tệp: Ví dụ: reset(f1); rewrite(f2); * Đọc tệp ghi tệp: GV: - Nêu lên vấn đề ghi tệp đọc tệp chất giống thao tác nhập liệu từ bàn phím ghi liệu hình Như vậy, đọc tệp đọc liệu từ tệp vào biến, ghi tệp ghi kết tệp - Cú pháp câu lệnh tương tự câu lệnh nhập liệu từ bàn phím ghi liệu hình thêm tên biến tệp tệp muốn thao tác vào tham số câu lệnh - Từ hướng dẫn cho học sinh trao đổi nhóm, khơng dựa vào sách giáo khoa, tự viết cú pháp ví dụ việc đọc tệp ghi tệp HS: Trao đổi nhóm, trao đổi, bố sung lẫn để tìm cú pháp lấy ví dụ: Cú pháp : + Đọc tệp: read(,); 12 Hoặc: readln(,); + Ghi tệp: write(,); Hoặc: writeln(,); Ví dụ: Đọc số nguyên từ tệp songuyen.int vào biến a b: read(f1,a,b); Hoặc: readln(f1,a,b); Ghi tổng hai số a b tệp ketqua.out write(f2, ‘Tong cua a va b la: ’,a+b); Hoặc: writeln(f2, ‘Tong cua a va b la: ’,a+b); GV: Nếu thực máy chiếu lấy cụ thể nhập câu lệnh ví dụ mà học sinh đưa sau cho học sinh quan sát kết để học sinh phân biệt việc khác câu lệnh read readln, câu lệnh write writeln thực với tệp Chạy cho học sinh quan sát hàm EOF EOLN để học sinh biết vai trò hai làm thực đọc tệp * Đóng tệp: GV: Đóng tệp sau thao tác với tệp thủ tục đơn giản lại quan trọng tệp thao tác mở Nếu sau thực xong mà khơng đóng tệp tệp khơng lưu trữ liệu thay đổi Cú pháp: close(); HS: Lấy ví dụ đóng tệp close(f1); close(f2); Bước 4: Rút kết luận: Giáo viên đặt hệ thống câu hỏi để học sinh trả lời với mục đích cần phải lưu ý làm rõ số vấn đề sau: + Thao tác gắn tên tệp, mở tệp đóng tệp cần phải ln ln thực theo trình tự Làm việc với tệp cơng việc phải thực với tệp + Đọc tệp ghi tệp mặt thủ tục thực giống với thủ tục nhập liệu từ bàn phím ghi liệu học + Khi đọc liệu từ tệp nên kiểm soát hàm việc sử dụng hàm EOF EOLN tùy thuộc vào trường hợp + Khi làm việc với kiểu liệu tệp chủ yếu khác biệt so với kiến thức học thay cho việc nhập liệu từ bàn phím ghi liệu hình Đó lấy liệu từ tệp đưa vào biến để xử lí ghi kết tệp Bước 5: Vận dụng kiến thức để giải nhiệm vụ đặt Sau học kiểu liệu tệp, làm lại số tập từ học trước cách sử dụng liệu từ tệp nguồn input tệp đích output để thực chương trình Thơng thường làm tập thực hành máy giáo viên thường cho học sinh sử dụng phần mềm Notepad để tạo tệp nguồn Tuy nhiên, để 13 thuận tiện cho việc thực hành nên để học sinh sử dụng trình soạn thảo pascal để tạo tệp nguồn hay mở tệp đích để xem kết mà quay môi trường hệ điều hành, tệp thao tác có phần phần mở rộng pas Ví dụ, input.pas, output.pas, songuyen.pas, ketqua.pas,… 2.2.4 Giải pháp giảng dạy nội dung chương trình Ngồi nội dung chương trình nội dung mà học sinh khó tiếp cận nội dung tin học 11 Vì vậy, hiểu chi tiết cấu trúc chương trình dạng thủ tục hàm, lời gọi chương trình cách truyền tham số cho chương trình mang tính định việc viết chương trình có sử dụng chương trình Ta xét cụ thể số nội dung trình bày theo phương pháp nêu sau: 2.2.4.1 Phân biệt loại chương trình con: Bước 1: Tạo tình gợi vấn đề: GV: Trình chiếu chương trình có sử dụng hàm thủ tục xử lí xâu: Ví dụ: Chương trình xóa tất kí tự trắng in hoa xâu nhập từ bàn phím đưa xâu xử lí hình Program xu_ly_xau; Uses crt; Var i : byte; Begin s : string; Clrscr; Write (‘ Nhap vao mot xau ki tu s = ’); Readln (s); While pos(‘ ‘,s) delete (s,pos(‘ ‘,s),1); For i : = to length (s) s[i] : = upcase (s[i]); Write(‘ xau da duoc xu li la : ’, s); End Readln HS: Quan sát chương trình hàm thủ tục xử lí xâu sử dụng chương trình Hàm pos, length, upcase, thủ tục delete Bước 2: Trình bày vấn đề đặt mục tiêu giải quyết: GV: Trong chương trình gọi hàm pos, length, upcase hay thủ tục delete kết thực mà ta chất hàm hay thủ tục xây dựng Và thực chất hàm thủ tục chương trình mà pascal cung cấp sẵn cho Khi thực cần gọi tên cung cấp đủ tham số phù hợp chương trình thực Vậy tự xây dựng hàm thủ tục phục vụ riêng chương trình viết chương trình hay khơng? - Thực tế ngơn ngữ lập trình pascal cung cấp cho đầy đủ cấu trúc cú pháp để xây dựng chương trình Vậy chương trình có loại? gì? 14 HS: Từ vấn đề trình bày HS trả lời chương trình có hai loại Đó chương trình dạng Hàm chương trình dạng Thủ tục GV: Chúng ta cần tìm hiểu cấu trúc hai chương trình Bước 3: Giải vấn đề: - Cấu trúc hàm : Function [()] : ; [] Begin []; :=; End; - Hàm: chương trình thực số thao tác trả giá trị thơng qua tên Chính phần đầu chương trình phải có tên hàm phần thân phải có câu lệnh :=; - Cấu trúc thủ tục: Procedure [()]; []; Begin [] End; - Thủ tục: Là chương trình thực số thao tác khơng trả giá trị thơng qua tên Vì vậy, phần đầu thủ tục khơng có kiểu liệu phần thân gồm có dãy lệnh mơ tả thao tác HS: Cần phải phân biệt Hàm khác với Thủ tục chổ hàm có trả cho tên hàm phần thân có biểu thức: : = ; Bước 4: Rút kết luận: GV: Dựa vào cấu trúc cung cấp, xây dựng hai chương trình có dạng khác hàm thủ tục Có thể hỏi học sinh, xây dựng hàm xây dựng thủ tục? HS: Thảo luận mong đợi trả lời : + Khi kết nhận chương trình giá trị thơng qua tên chương trình xây dựng hàm + Khi gọi chương trình mà muốn thực số thao tác định, khơng sinh giá trị qua tên xây dựng thủ tục Bước 5: Vận dụng kiến thức để giải nhiệm vụ đặt tiếp theo: + Tìm hiểu cụ thể loại chương trình con: Thủ tục Hàm chủ yếu thơng qua việc phân tích cấu trúc giải ví dụ cụ thể 2.2.4.2 Tìm hiểu thủ tục (Procedure): 15 Bước 1: Tạo tình gợi vấn đề: GV: Hỏi HS: dựa vào ký hiệu cấu trúc thủ tục, phần nội dung có khơng có? HS: Mong đợi trả lời có nội dung là: phần () GV: đưa nhận xét chốt lại: Có loại thủ tục: + Thủ tục không tham số + Thủ tục có tham số Bước 2: Trình bày vấn đề đặt mục tiêu giải quyết: GV: Chúng ta xét cụ thể loại cấu trúc cụ thể lấy ví dụ để minh họa HS: Viết lại cấu trúc thủ tục hai trường hợp việc bỏ giữ lại phần () Bước 3: Giải vấn đề: - Cấu trúc thủ tục không tham số: PROCEDURE < Tên thủ tục > ; [] BEGIN [] END ; Ví dụ : Tìm số lớn trị số nguyên Program So_ln ; Var a, b, c : integer ; yn : Char ; Procedure maximum ; Var max : integer ; Begin if a > b then max := a else max := b ; if c > max then max := c ; Writeln ( ‘ So lon nhat la:’, max:6 ) ; end ; BEGIN yn := ‘Y’ ; While (upcase(yn) = ‘Y’) Begin Writeln ( ‘Nhap so nguyen’ ) ; Readln (a, b, c ) ; maximum ; Write ( ‘ Tiep tuc nhap so moi khong (y/n) ?’ ) ; 16 END End ; Readln (yn) ; - Cấu trúc thủ tục có tham số: PROCEDURE < Tên thủ tục > (); [] BEGIN [] END ; Ví dụ : Tính giai thừa số Program Tinh_Giai_thua ; Var n : integer ; gt : real ; Var i : integer ; Procedure giaithua (m : integer ); Begin End; gt := ; For i := to m gt := gt * i ; BEGIN Write(‘Nhap so nguyen n (0 =0 then Begin giaithua (n); Writeln (‘Giai thua cua ’, n, ‘ la :’, gt: 10 :0) ; End Else Writeln( ‘ khong tinh duoc giai thua!’ ); Readln; END * Rút kết luận: Trong ví dụ 1: + Thủ tục maximum khai báo trước truy xuất, biến a, b, c gọi nhập vào chương trình biến max định nghĩa bên thủ tục Điều cho ta thấy, lúc cần thiết khai báo biến đầu chương trình ta thấy biến a, b, c, yn biến toàn cục, biến max biến cục + Thủ tục maximum gọi trực tiếp tới biến chương trình khơng sử dụng tham số hình thức Đây dạnh thủ tục khơng có tham số - Trong ví dụ 2: 17 + Khi viết thủ tục, có tham số cần thiết, ta phải khai báo (kiểu, số lượng, tính chất, ) Các tham số gọi tham số hình thức (formal parameters) + Một thủ tục có nhiều tham số hình thức Khi tham số hình thức có kiểu ta viết chúng cách dấu phẩy (,) Trường hợp kiểu chúng khác khai báo tham số truyền tham biến truyền tham trị ta phải viết cách dấu chấm phẩy (;) + Trong chương trình m tham số hình thức thủ tục giaithua + Khi gọi thủ tục giaithua(n) tham số thực n truyền tương ứng cho tham số hình thức m 2.2.4.3 Tìm hiểu hàm (Function) : Bước 1: Tạo tình gợi vấn đề: GV: Trình chiếu ví dụ: Cho s := ‘abcdef’; - Khi gọi thủ tục delete(s,2,2); Kết nhận xâu s bị thay đổi khơng có giá trị sinh - Cịn gọi hàm copy(s,2,2); Kết nhận gồm có xâu s khơng thay đổi có thêm giá trị ‘bc’ HS: Quan sát ví dụ suy nghĩ Bước 2: Trình bày vấn đề đặt mục tiêu giải GV: Hàm chương trình cho ta giá trị kiểu vô hướng Hàm tương tự thủ tục trả giá trị thông qua tên hàm lời gọi hàm tham gia biểu thức HS: Vậy kiểu liệu trả kiểu gì? Được xác định đâu GV: Mục tiêu giải phải xác định tham sơ, kiểu liệu phải có biếu thức để lấy giá trị trả cho tên hàm Bước 3: Giải vấn đề: Cấu trúc hàm tự đặt gồm: FUNCTION ():; [] BEGIN [] := ; END ; Ví dụ : Bài tốn tính giai thừa Program giaithua; Var x : integer ; Var i, tichso : integer ; Function Begin gt(n : integer):integer ; Tichso:= ; 18 If n > Then For i := to n tichso:= tichso * i ; End ; gt := tichso; BEGIN Write (‘ Nhap vao so nguyen duong x = ’); Readln (x) ; Writeln (‘Voi x = ’, x , ‘ thi giai thua se la : x ! = ’ , gt(x)); END hàm Readln; Bước 4: Rút kết luận: Chú ý: Đối với hàm phần thân định phải có câu lệnh: := ; Vì kiểu kết phải kiểu giá trị biểu thức trả cho tên Trong đó: - tên tự đặt cần tuân thủ theo nguyên tắc đặt tên Pascal - kiểu vô hướng, kiểu liệu giá trị trả cho hàm - Một hàm có hay nhiều tham số hình thức, có nhiều tham số hình thức kiểu giá trị ta viết chúng cách dấu phẩy (,) Trường hợp tham số hình thức khác kiểu ta viết chúng cách dấu chấm phẩy (;) Trong hàm sử dụng hằng, kiểu, biến khai báo chương trình ta khai báo thêm hằng, kiểu, biến dùng riêng nội hàm Chú ý phải có biến trung gian có kiểu kết hàm để lưu kết hàm trình tính tốn để cuối ta có lệnh gán giá trị biến trung gian cho tên hàm Ví dụ : function Tinh (x, y : integer ; z : real ) : real ; Đây hàm số có tên TINH với tham số hình thức x, y, z Kiểu x y kiểu số nguyên integer kiểu z kiểu số thực real Hàm TINH cho kết kiểu số thực real 2.2.4.4 Truyền tham số cho trương trình con, phân biệt tham trị tham biến: Bước 1: Tạo tình gợi vấn đề: GV: Chiếu phần đầu chương trình cho học sinh nhận xét Ví dụ: 19

Ngày đăng: 21/04/2023, 15:13

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan