Một số biện pháp giải các dạng bài tập về sử dụng biến mảng trong pasal

25 166 0
Một số biện pháp giải các dạng bài tập về sử dụng biến mảng trong pasal

Đ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 THANH HĨA PHỊNG GIÁO DỤC VÀ ĐÀO TẠO THẠCHTHÀNH TRƯỜNG THCS DÂN TỘC NỘI TRÚ SÁNG KIẾN KINH NGHIỆM ĐỀ TÀI “MỘT SỐ BIỆN PHÁP GIẢI CÁC DẠNG BÀI TẬP VỀ SỬ DỤNG BIẾN MẢNG TRONG PASCAL” Người thực hiện: Lê Thị Tân Chức vụ: Giáo viên Đơn vị công tác: Trường THCS Dân tộc nội trú SKKN thuộc lĩnh mực (môn): Tin học THANH HOÁ NĂM 2017 MỤC LỤC MỞ ĐẦU 1.1 Lý chọn đề tài 1.2 Mục đích nghiên cứu: 1.3 Đối tượng nghiên cứu: 1.4 Phương pháp nghiên cứu: NỘI DUNG 2.1 Cơ sở lý luận: 2.2 Thực trạng vấn đề nghiên cứu 2.2.1 Thuận lợi: 2.2.2 Khó khăn: 2.3 Các biện pháp tổ chức thực .5 2.3.1 Những kiến thức liệu kiểu mảng: 2.3.2 Giới thiệu tài liệu tham khảo: 2.3.3 Phân dạng tập: .5 2.3.4 Hướng dẫn giải tập cụ thể : 2.3.4.1 Kiểm tra phần tử mảng chiều: 2.3.4.2 Chèn, xoá phần tử mảng, trộn mảng cho mảng giữ thứ tự tăng giảm 2.3.4.3 Chuyên đề dãy .12 2.3.4.4 Tìm phần tử lớn nhất, nhỏ mảng hai chiều 15 2.3.4.5 Tìm phần tử lớn nhất, nhỏ dòng, cột phần tử yên ngựa mảng hai chiều 17 2.3.4.6 2.4 Sắp xếp mảng hai chiều 19 Hiệu cách làm: 21 KẾT LUẬN VÀ KIẾN NGHỊ 22 3.1 Bài học kinh nghiệm : .22 3.2 Kiến nghị, đề xuất : 22 3.3 Tài liệu tham khảo 22 MỞ ĐẦU 1.1 Lý chọn đề tài Cuộc cách mạng công nghiệp lần thứ tư (công nghiệp 4.0) với xuất robot có trí tuệ nhân tạo tác động mạnh mẽ nhiều lĩnh vực Y tế, Văn hố, Kinh tế, Nơng nghiệp có Giáo dục Đảng Nhà nước xác định tầm quan trọng CNTT ứng dụng CNTT việc đào tạo nguồn nhân lực đáp ứng yêu cầu CNH, HĐH, mở cửa hội nhập, hướng tới kinh tế tri thức nước ta nói riêng giới nói chung Vì mơn Tin học đưa vào nhà trường THCS môn tự chọn, môn đặc thù Ở huyện Thạch Thành môn Tin học dừng lại việc dạy cho em kiến thức, kỹ bản, mà chưa tổ chức thi HSG, nên trường THCS chưa bồi dưỡng học sinh giỏi môn Năm học 2015- 2016 Sở GD ĐT tổ chức thi “Tài tin học trẻ”, toàn tỉnh lần thứ XIX, huyện Thạch Thành tham dự lần đầu tiên, trường tơi có học sinh dự thi có học sinh đạt giải ba Sau đợt bồi dưỡng chọn học sinh giỏi này, bản thân tơi giáo viên tơi thấy có điều kiện cọ sát nghiên cứu sâu phương pháp giải tập pascal Còn học sinh, em có điều kiện thể lực thân mình, em thêm u thích mơn học Để học sinh đạt kết cao kỳ thi học sinh giỏi, nhận thấy việc phát nhân tố quan trọng trình bồi dưỡng em quan trọng nhiều ơn luyện q trình nỗ lực trò Từ thực tế bồi dưỡng tập huấn học sinh giỏi thấy việc phân dạng, loại tập phần việc vơ quan trọng Có làm điều cung cấp, trang bị cho em hệ thống kiến thức vừa vững vừa để từ định hướng hình thành cho em phương pháp nghiên cứu tìm hiểu sâu đơn vị kiến thức khó Từ nêu tơi chọn đề tài “Một số biện pháp giải dạng tập sử dụng biến mảng Pascal ” 1.2 Mục đích nghiên cứu: - Hướng dẫn học sinh có phương pháp nghiên cứu, học tập đạt kết quả, có kỹ giải dạng tập sử dụng biến mảng Pascal - Bản thân giáo viên rèn luyện thêm kỹ năng, thu thập, trau dồi kiến thức q trình giảng dạy cơng tác bồi dưỡng học sinh giỏi 1.3 Đối tượng nghiên cứu: - Kiến thức dạng tập sử dụng biến mảng Pascal 1.4 Phương pháp nghiên cứu: - Phương pháp kiểm tra khảo sát thực tế: Kiểm tra, khảo sát thực tế học sinh đội tuyển Tin học năm học 2015-2106 để thấy bất cập mà học sinh gặp phải - Phương pháp thu thập thơng tin: Tìm hiểu tài liệu từ giáo trình, tham khảo tài liệu mạng Internet - Phương pháp thống kê, xử lý số liệu NỘI DUNG 2.1 Cơ sở lý luận: Thực Nghị số 29/NQ-TW ngày 04/11/2013 Hội nghị Trung ương khóa XI Đổi bản, tồn diện Giáo dục Đào tạo đáp ứng yêu cầu cơng nghiệp hóa – đại hóa điều kiện kinh tế thị trường định hướng xã hội chủ nghĩa hội nhập quốc tế Mục đích nhằm nâng cao chất lượng dạy học, đồng thời để đào tạo, bỗi dưỡng nhân tài cho địa phương, cho đất nước Việc nâng cao chất lượng dạy học mục tiêu trọng tâm ngành giáo dục đào tạo, việc bồi dưỡng học sinh giỏi nhiệm vụ mũi nhọn (Nghị số 29/NQ-TW Hội nghị Trung ương khóa XI) Theo nghị 40/2000/QH10, Chỉ thị 29/CT Trung Ương Đảng thị 14/2001/CT-TTG ngày 9/12/2000 việc đổi chương trình giáo dục phổ thơng: Nội dung chương trình tích cực áp dụng cách sáng tạo phương pháp tiên tiến, đại, ứng dụng CNTT vào dạy, học đưa CNTT vào nhà trường.(Nghị 40/2000/QH10, Chỉ thị 29/CT Trung Ương Đảng thị 14/2001/CT-TTG) 2.2 Thực trạng vấn đề nghiên cứu 2.2.1 Thuận lợi: Được quan tâm nhà nước, cấp lãnh đạo đầ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 Nhà trường bậc phụ huynh tạo điều kiện sửa chữa thiết bị, kết nối Internet phục vụ việc học tập tra cứu tài liệu trò Đa phần học sinh ngoan ngỗn, chăm chỉ, có tâm cao Được quan tâm, giúp đỡ, động viên, tạo điều kiện Ban giám hiệu giáo viên môn khác Thời gian thi thường tổ chức vào cuối tháng 6, thi khác em hồn thành, thu hút số học sinh tham gia sau em hứng thú 2.2.2 Khó khăn: - Do PGD chưa tổ chức thi HSG cấp nên học sinh chưa cọ sát, giáo viên chưa có kinh nghiệm khơng có điều kiện để học hỏi lẫn việc bồi dưỡng học sinh giỏi - Các bậc phụ huynh cho môn Tin không cần thiết sợ học môn sa đà vào điện tử, sợ nhiều thời gian nên động viên tham dự, - Phần kiến thức để dự thi tất tập trung vào lớp phần PASCAL FREE, chương trình khó mà phần chương trình tất trường THCS địa bàn huyện cắt để thay vào chương trình nghề Tin học Thời gian bồi dưỡng ít, nên phần kiến thức chưa kịp nhần nhuyễn đến sâu vào phần khó “Chương trình con” sau “dữ liệu kiểu mảng”, “dữ liệu kiểu File” em thường mơ hồ lúng túng Ban đầu em thấy khó có phần chán nản Với thực trạng chọn chủ đề: “Một số biện pháp giải dạng tập sử dụng biến mảng Pascal ” nhằm bồi dưỡng cho đối tượng học sinh giỏi mơn Tin học làm tốt tập phần Mảng cách chủ động, sáng tạo Giúp em biết phân tích thuật tốn từ viết chương trình có kết xác có sáng tạo giải thuật 2.3 Các biện pháp tổ chức thực 2.3.1 Những kiến thức liệu kiểu mảng: Trong pascal nói mảng với tập đơn giản, bồi dưỡng sâu phần lại nặng tư thuật tốn, phần mảng hai chiều khó nhiều Bởi em nắm phần Mảng đến tập hợp (set), ghi (record), File em thấy nhẹ nhàng nhiều * Định nghĩa Mảng: Mảng môt kiểu liệu có cấu trúc gồm số hữu hạn phần tử có kiểu gọi kiểu bản, có tên chung Số phần tử mảng xác định từ định nghĩa khai báo mảng [1] - Khi sử dụng biến mảng định nghĩa khai báo trực tiếp + Định nghĩa mảng: TYPE Kieu_mang _T= ARRAY[kiêu dẫn] OF Kiểu_phần_tử; Khi khai báo biến A có kiểu mảng ta khai báo sau: VAR A: Kieu_mang _T; + Khai báo trực tiếp: VAR A = ARRAY [kiêu_chỉ_dẫn] OF Kiểu_phần_tử; - Mỗi phần tử mảng chứa giá trị truy nhập trực tiếp thông qua tên mảng với dẫn truy nhập để hai dấu ngoặc vuông [ ] - Cấu trúc mảng thuộc kiểu cấu trúc truy nhập trực tiếp nên thời gian truy nhập vào phần tử mảng không phụ thuộc vào giá trị dẫn [2] * Mảng chiều: mảng dùng số để xác đinh phần tử mảng VD: VAR M:ARRAY [1 1000] OF REAL; * Mảng hai chiều: mảng dùng hai số để xác đinh phần tử mảng Mảng hai chiều bảng số liệu gồm hàng cột, số đầu để hàng, số thứ hai để cột [1] VD: VAR M:ARRAY [1 1000, 1000] OF REAL; 2.3.2 Giới thiệu tài liệu tham khảo: Để có hiệu phần này, giáo viên nên giới thiệu cho học sinh nguồn tài liệu tham khảo: - SGK Tin học - SBT Bài tập Tin học - Giáo trình tin học – Tác giả :Bùi Tâm - Ngơn ngữ lập trình PASCAL - Tác giả : Quách Tấn Ngọc - Bài tập Pascal – tác giả Bùi Thế Tâm 2.3.3 Phân dạng tập: Có thể phân dạng tập nâng cao theo chuyên đề (từng mảng kiến thức), từ dễ đến khó, từ đơn giản đến phức tạp để học sinh chủ động tiếp thu kiến thức cách tự tin, từ em tự giải tập cách chủ động sáng tạo.Có thể phân thành chuyên đề sau: Chuyên đề 1: Kiểm tra phần tử mảng chiều Chuyên đề 2: Xoá, chèn phần tử, trộn mảng cho mảng giữ nguyên thứ tự mà xếp lại Chuyên đề Chuyên đề dãy Chuyên đề 4: Tìm phần tử lớn nhất, nhỏ mảng hai chiều Chuyên đề 5: Tìm phần tử lớn nhất, nhỏ dòng, cột phần tử yên ngựa mảng hai chiều Chuyên đề 6: Sắp xếp mảng hai chiều 2.3.4 Hướng dẫn giải tập cụ thể : 2.3.4.1 Kiểm tra phần tử mảng chiều: * Phương pháp: - Nhập vào phần tử x, sử dụng vòng lặp so sánh phần tử x với phần tử mảng, trình so sánh thấy x=a[i] đưa thơng báo + Hướng dẫn học sinh xây dựng hàm kiểm tra phần tử x mảng A Hàm kiểm tra viết sau: Function ktra(x,n:integer;A:mang ): boolean; Var i:byte; KT:Boolean; Begin Kt:=false; For i:=1 to n if x=a[i] then kt:= True; ktra:=Kt; End; + Sau ta sử dụng hàm kiểm tra để giải yêu cầu tốn + Cũng sử dụng phương pháp tìm kiếm nhị phân: k := n mod So sánh x với phần tử mảng A[k] Nếu x=A[k] dừng, ngược lại x>A[k] tìm đoạn sau mảng [k+1, n], xb[j] then {Sap xep mang} Begin luu:= b[i]; b[i]:= b[j]; b[j]:=luu; End; writeln('Day so sau da xap xep la :'); for i:=1 to n write(b[i]:4,' '); writeln; write('nhap x='); readln(x); dau:=1; cuoi:=n; t:=false; while (cuoi>=dau) and (t=false) begin giua:=(dau + cuoi) div 2; if x=b[giua] then begin t:=true;break; {Tim thay thi dung lai} end else if xn; n:=i-1; Write('MANG VUA NHAP LA'); For i:=1 to N Write(a[i],'; '); Writeln; End; Procedure Kgiao(n:byte; A:mang;m:byte; B:Mang);{Tim nhung phan tu khong la giao} var i:byte; Begin For i:=1 to n If not ktra(a[i],n,B) then Write(A[i]:6); For i:=1 to n If not ktra(b[i],n,A) then Write(B[i]:6); End; BEGIN{chuong trinh chinh } clrscr; write('nhap so phan tu cua mang la:');readln(n); writeln; Writeln('NHAP MANG A :');Writeln; nhap(n,a); writeln; Writeln('NHAP MANG B :');Writeln; Nhap(n,b); writeln; Write('Nhung phan tu khong phai la giao cua hai tap hop:'); Kgiao(n,A,n,B); readln;END - Kết chương trình: 2.3.4.2 Chèn, xoá phần tử mảng, trộn mảng cho mảng giữ thứ tự tăng giảm  Xoá phần tử thuộc vị trí k: - Phương pháp: + Nếu mảng chưa xếp cần phải xếp lại mảng + So sánh x với giá trị mảng, tìm thấy đánh dấu vị trí k + Xoá phần tử k cách ghi đè phần tử k+1 lên Ví dụ: Nhập vào dãy số, xếp dãy theo thứ tự tăng dần a Xố phần tử có giá trị trùng dãy b Nhập thêm số X, kiểm tra xem giá trị X có dãy hay khơng? Nếu có xoá giá trị X cho dãy giữ giá trị tăng dần, in hình số lại dãy Chương trình viết sau: program Xoa_phan_tu; uses crt; type mang=array[1 100] of integer; var a: mang; d,k,tg,X,n,i,j:integer; BEGIN clrscr; write('nhap vao dai cua day so: n=');readln(n); Writeln; Writeln('NHAP VAO CAC GIA TRI CUA DAY SO:'); for i:=1 to n Begin write('a[',i,']=');readln(a[i]); WRITELN; end; (* sap xep mang *) for i:=1 to n-1 for j:=i+1 to n if A[i]>A[j] then Begin tg:=A[i]; A[i]:=A[j]; A[j]:=tg; End; WRITELN; Write(' MANG VUA NHAP LA :'); For I:=1 To n Write( a[i],' ; '); i:=2; {XOA PHAN TU TRUNG TRONG DAY} While i

Ngày đăng: 21/10/2019, 16:24

Từ khóa liên quan

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

Tài liệu liên quan