Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 15 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
15
Dung lượng
394 KB
Nội dung
SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁ TRƯỜNG THPT DÂN TỘC NỘI TRÚ TỈNH SÁNG KIẾN KINH NGHIỆM XỬ LÝ DỮ LIỆU MẢNG MỘT CHIỀU BẰNG VECTOR TRONG ÔN LUYỆN HỌC SINH GIỎI THPT Người thực hiện: Phạm Thị Thơm Chức vụ: Giáo viên SKKN thuộc lĩnh vực (môn): Tin học THANH HOÁ, NĂM 2022 DANH MỤC CHỮ VIẾT TẮT STT Từ Từ viết tắt Nghĩa từ viết tắt GD ĐT Giáo dục Đào tạo CNTT Công nghệ thông tin THPT Trung học phổ thông CNTT & TT Công nghệ thông tin truyền thông HS Học sinh GV Giáo viên SGK Sách giáo khoa PPCT Phân phối chương trình LT Lập trình MỤC LỤC Mở đầu 1.1 Lý chọn đề tài 1.2 Mục đích đề tài 1.4 Phương pháp nghiên cứu 1.4.1 Phương pháp nghiên cứu lý thuyết 1.4.2 Phương pháp tham vấn chuyên gia 1.5 Điểm của sáng kiến 2 Nội dung sáng kiến kinh nghiệm 2.1 Cơ sở lý luận của sáng kiến kinh nghiệm .2 2.2 Thực trạng chất lượng giảng dạy môn tin học trường THPT Dân tộc nội trú tỉnh Thanh Hoá (cơ sở thực nghiệm) 2.2.1 Đăc điêm tnh hinh 2.2.2 Thực trạng vấn đề 2.3 Giải pháp sử dụng để giải vấn đề Kiêm tra trạng thái rỗng vector với empty() Xóa tất phần tử vector với clear() Lấy kích thước vector với size() Thay đổi kích thước vector với resize() hay resize(element, value) Kết luận, kiến nghị 10 3.1 Kết luận 10 3.2 Kiến nghị, đề xuất 10 Sáng kiến kinh nghiệm Bộ môn Tin học Mở đầu 1.1 Lý chọn đề tài Với định hướng chương trình giáo dục môn tin học thì ngôn ngữ lập trình Pascal thay ngơn ngữ khác là: C++, Python… Hiện có nhiều trường sử dụng ngôn ngữ lập trình C/C+ + công cụ để giảng dạy cho học sinh, đặc biệt học sinh đội tuyển dự thi học sinh giỏi cấp trường, cấp tỉnh cấp quốc gia môn tin học Phạm vi vận dụng kiến thức mảng chiều lập trình nhiều mảng chiều có nhược điểm ta phải khai báo kích thước tối đa cho mảng trước sử dụng chương trình phải cung cấp nhớ cho tồn kích thước mà ta khai báo Nếu ta khơng sử dụng hết kích thước tới đa mảng khai báo thì dẫn đến việc lãng phí nhớ vì kích thước tới đa mảng khai báo cố định không thay đổi Trong C++ có đới tượng Vector giớng dynamic array (hay cịn gọi mảng động) Cách sử dụng Vector tương đối giống mảng chiều Tuy nhiên Vector có khả thay đổi kích thước phần tử bị chèn xóa chương trình thêm bớt nhớ cung cấp cho đối tượng Xuất phát từ lý qua nhiều năm giảng dạy, bồi dưỡng học sinh giỏi Tôi xin đề cập tới đề tài: “Xử lý liệu mảng chiều vector ôn luyện học sinh giỏi THPT” 1.2 Mục đích đề tài Tìm hiểu nêu cách xử lý liệu mảng chiều vector ôn luyện học sinh giỏi THPT 1.3 Phạm vi đối tượng đề tài - Phạm vi: Nghiên cứu thực tế học sinh trường THPT Dân tộc nội trú tỉnh Thanh Hóa - Đới tượng: Nghiên cứu giải pháp nhằm nâng cao chất lượng dạy ôn luyện thi học sinh giỏi môn tin học trường THPT 1.4 Phương pháp nghiên cứu 1.4.1 Phương pháp nghiên cứu lý thuyết Nghiên cứu tài liệu công trình khoa học liên quan đến kiến thức lập trình C++ Nghiên cứu cấu trúc, nội dung sách giáo khoa tin học THPT Nghiên cứu kiến thức liên quan với loại ngôn ngữ lập trình khác nhằm tìm tính tới ưu ngôn ngữ lập trình C++ Sáng kiến kinh nghiệm Bộ môn Tin học 1.4.2 Phương pháp tham vấn chuyên gia 1.5 Điểm của sáng kiến Đề xuất kiến thức Vector ngôn ngữ C++ Nội dung sáng kiến kinh nghiệm 2.1 Cơ sở lý luận của sáng kiến kinh nghiệm Giới thiệu ngơn ngữ lập trình C++ vector C++ C++ ngơn ngữ lập trình sử dụng rộng rãi ngày Đối với lập trình viên mà nói, loại ngơn ngữ phổ biến Nó phân biệt chữ hoa chữ thường Khơng có vậy, C++ cịn biết đến dạng ngơn ngữ lập trình dạng tự Lập trình hướng đối tượng, thủ tục generic tính Vector C++ phát triển từ tính gớc mà C++ đem tới tảng ngơn ngữ lập trình mạnh mẽ, linh hoạt Nó cịn gần gũi so với ngôn ngữ máy Khả lập trình đến từ C++ dựa mẫu có sẵn (template) để thực Ngồi ra, sức mạnh khác C++ nằm STL (Standard Template Library) Đây thư viện template dành riêng cho C++ để xây dựng tổng quát cho nhiều trường hợp Vector C++ giớng dynamic array (hay cịn gọi mảng động) Tuy nhiên vecto có khả thay đổi kích thước phần tử bị chèn xóa Tùy thuộc vào nhu cầu sử dụng việc lưu trữ Chúng ta phần tử tự động xử lý 2.2 Thực trạng chất lượng giảng dạy môn tin học trường THPT Dân tộc nội trú tỉnh Thanh Hoá (cơ sở thực nghiệm) 2.2.1 Đặc điểm tình hình Trường THPT Dân tộc nội trú tỉnh Thanh Hóa trường chuyên biệt, 100% học sinh người dân tộc thiểu số người Kinh sống lâu năm 11 huyện miền núi Tỉnh Thanh Hóa hưởng chế độ sách nhà nước Tỉnh Cơ sở vật chất nhà trường cấp, quan quản lý trang bị đầy đủ, trang bị máy chiếu, máy tính, phịng tin học phục vụ cho cơng tác dạy học nhà trường, trường xây dựng từ năm 1992, nên khơng gian phịng học nhỏ, có nhiều hạn chế triển khai dạy Đội ngũ giáo viên trẻ, động, nhiệt tình cơng tác với 540 học sinh tồn trường chia làm 18 lớp: Khối 10: 06 lớp với 180 học sinh Khối 11: 06 lớp với 180 học sinh Khối 12: 06 lớp với 180 học sinh 2.2.2 Thực trạng của vấn đề Thực trạng chung: Mảng dãy hữu hạn phần tử kiểu, xếp nới tiếp Các phần tử mảng truy cập ngẫu nhiên qua số Vấn đề đặt ra: Nếu bạn sử dụng mảng tĩnh: Mảng Sáng kiến kinh nghiệm Bộ môn Tin học phải khai báo trước kích thước tới đa mà bạn dùng làm việc lại khơng sử dụng hết kích thước khai báo dẫn lãng phí nhớ Thực trạng trường THPT DTNT Tỉnh: Lâu ôn luyện thi học sinh giỏi làm việc với toán mảng thì em sử dụng cách thức khai báo mảng có kích thước tới đa trước Ngun nhân thực trạng: Khi khai báo kích thước tới đa mảng thì chương trình phải cung cấp nhớ cho tồn kích thước mà ta khai báo Nếu ta khơng sử dụng hết kích thước tới đa mảng khai báo thì dẫn đến việc lãng phí nhớ vì kích thước tới đa mảng khai báo cố định không thay đổi 2.3 Giải pháp sử dụng để giải vấn đề 2.3.1 Vectoc gì? Giống mảng (array), vector C++ đối tượng dùng để chứa đối tượng khác đối tượng chứa lưu trữ cách liên tiếp vector Tuy nhiên, số lượng phần tử (size) mảng cố định, thì vector hồn tồn thay đổi śt trình làm việc chương trình 2.3.2 Ưu điểm của vector So với mảng, cách dùng vector thì linh hoạt nhiều số điểm trội vector so với mảng array : - Khơng cần phải khai báo kích thước mảng Ví dụ int A[100] , vector tự động nâng kích thước lên - Nếu thêm phần tử vào vector đầy thì vector tự động tăng kíck thước lên để dành chỗ cho giá trị - Vector cịn cho biết sớ lượng phần tử lưu Điều giúp quản lý phần tử cách tốt - Dùng số phần tử âm vector, ví dụ A[-10], A[-3] tiện việc cài đặt giải thuật khác - Vector tự theo dõi độ dài Chúng ta lấy độ dài Vector thông qua hàm size() 2.3.3 Cách sử dụng Vector - Để sử dụng vector thì phải khai báo header vector thư viện std #include using namespace std; Sáng kiến kinh nghiệm Bộ môn Tin học - Để khai báo vector ta dùng cú pháp: Cú pháp: Vector ; 2.3.4 Các biện pháp sử dụng giải vấn đề - Sử dụng hàm thành viên swap() cho phép hoán đổi nội dung vector: - Kiểm tra trạng thái rỗng vector với empty() - Xóa tất phần tử vector với clear() Sáng kiến kinh nghiệm Bộ môn Tin học - Lấy kích thước vector với size() - Thay đổi kích thước vector với resize() hay resize(element, value) 2.4 Hiệu của sáng kiến kinh nghiệm 2.4.1 Hiệu của sáng kiến kinh nghiệm hoạt động giáo dục, với thân, đồng nghiệp nhà trường Giúp học sinh tránh việc thừa liệu làm việc với mảng Tự tin giải toán liên quan đến mảng Yêu thích mơn tin đặc biệt lĩnh vực lập trình tạo tiền đề cho em sau định hướng nghề nghiệp tương lai 2.4.2 Các kết quả, minh chứng tiến của học sinh áp dụng sáng kiến kinh nghiệm Bài 1: Nhập vào dãy N số nguyên Tính tổng dãy vừa nhập Sáng kiến kinh nghiệm Bộ môn Tin học Chương trình viết chưa áp dụng sáng kiến kinh nghiệm Chương trình viết sau áp dụng sáng kiến kinh nghiệm Sáng kiến kinh nghiệm Bộ môn Tin học Bài 2: Tạo một mảng cho phần tử mảng nhận giá trị 10 Chương trình viết chưa áp dụng sáng kiến kinh nghiệm Chương trình viết sau áp dụng sáng kiến kinh nghiệm Sáng kiến kinh nghiệm Bộ môn Tin học Bài 3: Viết chương trình nhập giá trị hai mảng In hình hai mảng sau đổi vị trí cho Chương trình viết chưa áp dụng sáng kiến kinh nghiệm Sáng kiến kinh nghiệm Bộ môn Tin học Chương trình viết sau áp dụng sáng kiến kinh nghiệm Sáng kiến kinh nghiệm Bộ môn Tin học Kết luận, kiến nghị 3.1 Kết luận Việc sử dụng ngôn ngữ lập trình trình dạy học môn tin học mở, không bắt buộc cụ thể với loại ngôn ngữ Tuy nhiên, đề tài đóng góp phần việc giúp trường, học sinh giỏi tiếp cận với ngôn ngữ lập trình tốt hơn, nâng cao chất lượng giảng dạy thi học sinh giỏi 3.2 Kiến nghị, đề xuất Đề tài viết chuyên sâu nhằm mục đích cung cấp tài liệu tham khảo cho trường THPT việc dạy học bồi dưỡng học sinh giỏi môn tin học Tôi xin chân thành cảm ơn! Xác nhận của lãnh đạo nhà trường Thanh Hóa, ngày 12 tháng 05 năm 2022 Tôi xin cam đoan đầy SKKN mình viết, không chép nội dung người khác Tác giả Phạm Thị Thơm 10 Sáng kiến kinh nghiệm Bộ môn Tin học TÀI LIỆU THAM KHẢO [1] Phạm Văn Ất (2006), Kỹ thuật lập trình C, Nhà xuất Giao thông vận tải [2] Phạm Hồng Thái (2003) Ngôn ngữ lập trình C/C++, Đại học Quốc gia Hà Nội [3] Ebook C++ Notes for Professionals [4] LaL Lập trinh C++ cấu trúc liệu nâng cao, Nguyễn Đặng Phú 11 Sáng kiến kinh nghiệm Bộ môn Tin học DANH MỤC SÁNG KIẾN KINH NGHIỆM ĐÃ ĐƯỢC HỘI ĐỒNG SÁNG KIẾN KINH NGHIỆM NGÀNH GIÁO DỤC VÀ ĐÀO TẠO HUYỆN, TỈNH VÀ CÁC CẤP CAO HƠN XẾP LOẠI TỪ C TRỞ LÊN Họ tên tác giả: Phạm Thị Thơm Chức vụ: Giáo viên đơn vị công tác:Trường THPT Dân tộc nội trú Tỉnh TT Tên đề tài SKKN Ứng dụng phần mềm CSM dạy học thực hành môn tin học Cấp đánh giá Kết xếp loại đánh giá (Ngành GD cấp xếp loại huyện/tỉnh; (A, B, Tỉnh ) C) Sở GD&ĐT Thanh Hóa C Năm học đánh giá xếp loại 2018 – 2019 THPT 12 ... từ lý qua nhiều năm giảng dạy, bồi dưỡng học sinh giỏi Tôi xin đề cập tới đề tài: ? ?Xử lý liệu mảng chiều vector ơn luyện học sinh giỏi THPT? ?? 1.2 Mục đích đề tài Tìm hiểu nêu cách xử lý liệu mảng. .. thước tới đa mảng khai báo cố định không thay đổi Trong C++ có đới tượng Vector giớng dynamic array (hay gọi mảng động) Cách sử dụng Vector tương đới giớng mảng chiều Tuy nhiên Vector có khả... viết tắt Nghĩa từ viết tắt GD ĐT Giáo dục Đào tạo CNTT Công nghệ thông tin THPT Trung học phổ thông CNTT & TT Công nghệ thông tin truyền thông HS Học sinh GV Giáo viên SGK Sách giáo khoa PPCT Phân