Để qua mỗi 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 được kiến thức đã học trên lớp, đồng thời học sinh thấyđược tầm quan trọng của vấn đề và việc ứng dụng của
Trang 1A ĐẶT VẤN ĐỀ
I Lí do chọn sáng kiến kinh nghiệm
- Hiện nay trong lí luận dạy học nói chung và lí luận dạy học môn tinhọc nói riêng đề cập khá nhiều phương pháp và kĩ thuật dạy học:phương pháp thảo luận, phương pháp đặt câu hỏi, phương pháp chianhóm … và có một nội dung được đề cập rất nhiều trong các tài liệu
ra hướng giải quyết những vấn đề nãy sinh trong quá 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 là người địnhhướng, là người cố vấn giúp học sinh tự đánh giá, cũng như giúp học
Trang 2sinh luôn đi đúng con đườ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 tại trường THPT TỐNG DUY TÂNtôi thấy rằng, để đạt hiệu quả cao trong mỗi phần học, tiết học cần cócách thiết kế bài giảng cho phù hợp với nội dung kiến thức; phươngpháp, phương tiện dạy học phải phù hợp với từng đối tượng học sinh
Để qua mỗi 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 được kiến thức đã học trên lớp, đồng thời học sinh thấyđược tầm quan trọng của vấn đề và việc ứng dụng của kiến thức trướchết để đáp ứng những yêu cầu của môn học, sau đó là việc ứng dụngcủa nó vào các công việc thực tiễn trong đời sống xã hội
- Xuất phát từ cơ sở trên, tôi đã chọn đề tài “Giúp học sinh hoc tốtKiểu mảng”, giúp các em nắm được kiểu dữ liệu mảng đó là cấu trúc
dữ liệu quan trọng thường hay được ứng dụng trong lập trình bài tập
và thực tế
II Mục đích của sáng kiến kinh nghiệm
Sử dụng phương pháp giảng dậy thích hợp giúp học sinh tưởng tượng
được cấu trúc của kiểu mảng Và thông qua các ví dụ hướng dẫn họcsinh nắm vững cách truy xuất dữ liệu từ mảng
Trang 3III Nhiệm vụ của sáng kiến kinh nghiệm
Xây dựng giáo án chi tiết thực sự gần gũi với học sinh phù hợp với
đa số học sinh trong một lớp
Đưa ra vấn đề, thực hiện ví dụ minh họa đễ học sinh quan sát qua đónắm vững kiểu mảng Và hình thành ở học sinh kỹ năng phân tích, sử
lý các vấn đề thường gặp trong khi làm việc với kiểu mảng
IV Đối tượng nghiên cứu
Học sinh khối 11 tại trường THPT TỐNG DUY TÂN trong hai nămliên tiếp
2011 - 2012
11B11E11I
444543
2012 - 2013
11B 11D
4844
V Phương pháp nghiên cứu
- Đọc kỹ tài liệu sách giáo khoa, sách giáo viên Tin Học 11 và một sốtài liệu tham khảo khác
- Dạy học trên các đối tượng: Giỏi , Khá , Trung bình, yếu, kém trong
Trang 4đó nội dung dạy học, phương pháp thực hiện và kết quả thu đượcđánh giá chủ yếu đối với đối tượng học sinh khá, trung bình, yếu,kém.
- Đưa ra bàn luận trước tổ, nhóm chuyên môn để tham khảo ý kiến vàcùng thực hiện
- Tham khảo ý kiến các trường bạn, ý kiến đóng góp của các thầy côdạy lâu năm đã có nhiều kinh nghiệm
- Dự giờ, kiểm tra, đánh giá chất lượng của học sinh
- Dạy thực nghiệm trên 2 lớp 11 của trường là: 11B, 11D
Trang 5 Mảng một chiều là một dãy hữu hạn các phần tử cùng kiểu.
Các ngôn ngữ lập trình thông dụng cho phép người lập trình xâydựng kiểu dữ liệu mảng một chiều
Để mô tả mảng một chiều cần khai báo kiểu của các phần tử vàcách đánh số các phần tử của nó (mỗi phần tử của nó có một chỉsố)
Có thể tham chiếu phần tử của mảng bằng tên của mảng và chỉ
số tương ứng của phần tử này
Phần minh hoạ với pascal, học sinh cần nắm được:
kiểu dữ liệu mảng một chiều:
- Trực tiếp trong phần khai báo biến (với từ khoá Var).
Trang 6- Đặt tên và định nghĩa cho kiểu dữ liệu mới này (với từ khoá làTYPE), rồi sau đó khai báo các biến thuộc kiểu mới (đã có tên).
Để khai báo một kiểu dữ liệu mảng một chiều, người lập trìnhcần phải xác định những yếu tố sau:
- Kiểu phần tử: Kiểu của các phần tử tạo nên mảng
- Kiểu chỉ số: Người ta thường dùng một đoạn số nguyên liên tụclàm chỉ số của mảng, đoạn này được xác định khi số nguyên đầutiên và số nguyên cuối cùng của đoạn là xác định được Sốnguyên đầu tiên trong đoạn này là chỉ số của phần tử đầu tiêntrong mảng, số nguyên tiếp theo là chỉ số của phần tử thứ haitrong mảng, cứ như vậy,… Giá trị cuối cùng là chỉ số của phần
tử cuối cùng trong mảng Do vậy, khi xác định kiểu chỉ số củamột mảng (một chiều) người lập trình đã xác định cả kích thướccủa mảng (tức số phần tử của mảng)
Học sinh cần có các kỹ năng:
Nhận biết được các thành phần trong khai báo kiểu mảng mộtchiều
Trang 7 Nhận biết được định danh của một phần tử kiểu mảng một chiềuxuất hiện trong một chương trình.
Biết cách viết khai báo mảng đơn giản với chỉ số kiểu miền concủa kiểu nguyên
B Đồ dùng dạy học
Chuẩn bị của giáo viên:
Sách giáo khoa, sách giáo viên, giáo án, bảng phụ, thước, phấnviết
Chuẩn bị của học sinh:
Trang 8Giáo viên đánh giá, cho điểm và ghi vào sổ
đầu bài
Bài mới:
Hôm nay chúng ta sẽ tìm hiểu về một kiểu
dữ liệu mới được xây dựng trên những
kiễu dữ liệu chuẩn mà chúng ta đã học
Trang 9chương trình ví dụ trang 53 góc phải bảng.
Yêu cầu học sinh xác định INPUT và
OUTPUT của bài toán trên?
Hỏi: Em hãy quan sát chương trình trên
bảng và cho biết chúng ta đã sử dụng bao
nhiêu biến để khai báo cho nhiệt độ các
ngày trong tuần? Và chương trình trên đã
dùng bao nhiêu câu lệnh? Đó là câu lệnh
gì?
Hỏi: Với bài toán như vậy ta áp dụng cho
365 ngày thì chúng ta phải sử dụng bao
nhiêu biến để khai báo nhiệt độ 365 ngày
INPUT: Nhiệt độ 7 ngày trong tuần
OUTPUT: Nhiệt độ tbcủa tuần và số lượngngày trong tuần có nhiệt
độ > nhiệt độ tb của tuần
Trả lời: Chương trình
trên đã sử dụng 7 biến đểkhai báo cho nhiệt độ cácngày trong tuần Chươngtrình trên dùng 7 câu
lệnh If then
Trả lời: Chương trình
Trang 10và chương trình phải dùng bao nhiêu câu
lệnh If then ?
Hỏi: Với số ngày lớn như vật thì chương
trình sẽ gặp những hạn chế nào?
Dẫn dắt: Để khắc phục những hạn chế
trên, người ta thường ghép chung 7 biến
hay 365 biến trên thành một dãy, đặt cho
nó chung một tên và đánh cho một phần tử
một chỉ số
* Khái niệm mảng một chiều:
- Mảng một chiều là dãy hữu hạn các phần
tử cùng kiểu Mảng được đặt tên và mỗi
365 câu lệnh If then
Trả lời: Khai báo nhiều
biến vàchương trình rất dàidòng
Chăm chú nghe giảng vàghi chép bài
Trang 11bàn đó sẽ được đặt tên chung là tên của
bàn đó Mỗi bạn được phân biệt nhau bởi
một chỉ số khác nhau
Bàn1: Hương Hải Hà Hiền
1 2 3 4
Dẫn dắt: Chúng ta đã hiểu thế nào là mảng
một chiều Vậy để máy tính của chúng ta
hiểu về mảng một chiều thì chúng ta phải
làm gi? Để hiểu rõ vấn đề này chúng ta sẽ
tìm hiểu về một phần mới đó là phần khai
báo
Chăm chú nghe giảng vàghi chép bài
Nhietdo: 35 34 36 35.5 36 34.5 37
Trang 12Ghi lên bảng
a) Khai báo:
Trong NNLT Pascal có 2 cách khai báo
cho mảng 1 chiều đó là khai báo trực tiếp
và khai báo gián tiếp
- Cách 1: Khai báo trực tiếp biến mảng
một chiều:
Var <Tên biến mảng>: array[Kiểu chỉ số]
of <Kiểu phần tử>;
- Cách 2: Khai báo gián tiếp biến mảng
qua kiểu mảng một chiều:
Type <Tên kiểu mảng>=array[Kiểu chỉ
số] of<Kiểu phần tử>;
Var <Tên biến mảng> : <Tên kiểu mảng >;
Trong đó:
Type là từ khoá khai báo kiểu mảng.
Var là từ khoá khai báo biến mảng.
Array…of… là từ khoá dùng khai báo
Chăm chú nghe giảng vàghi chép bài
Trang 13mảng và kiểu phần tử.
Tên kiểu mảng, tên biến mảng do người lập
trình đặt nhưng tuân theo quy tắc NNLT
Pascal đó là bắt đầu bằng chữ cái
Kiểu chỉ số thường là một đoạn số nguyên
- Khai báo gián tiếp:
Type nd=array[1 366] of real;
Var nhietdo : nd;
- Khai báo trực tiếp
Var nhietdo: array[1 366] of real;
Ý nghĩa của khai báo trên là: Khai báo
mảng một chiều có tên nhietdo gồm 366
phần tử cùng kiểu thực
Chăm chú nghe giảng vàghi chép bài
Trang 14Hỏi: Em hãy khai báo mảng một chiều có
tên là songuyen gồm 100 phần tử cùng
kiểu nguyên theo 2 cách
Dẫn dắt: Tuỳ từng trường hợp mà chúng ta
sử dụng khai báo trực tiếp hay gián tiếp Ta
dùng khai báo gián tiếp khi trong chương
trình có nhiều mảng cùng kiểu chỉ số và
kiểu phần tử Còn lúc nào chỉ khai báo một
mảng hay nhiều mảng không cùng kiểu chỉ
số hay kiểu phần tử thì dùng khai báo trực
Trang 15- Đưa lên bảng một số khai báo yêu cầu
học sinh xác định khai báo đúng
Var A: array[-10 10] of real;
Tham chiếu tới phần tử của mảng một
chiều được xác định bởi tên mảng cùng với
chỉ số và được viết trong cặp ngoặc [ và ]
Quan sát trên bảng và trảlời:
Var A: array[-10 10] ofreal;
C: array[-20 10] ofboolean;
E: array[1 115 div2] of real;
Trang 16Ví dụ: Tham chiếu tới nhiệt độ của ngày
thứ nhất trong chương trình trên viết là:
- Đưa chương trình giải bài toán nhiệt độ
với N ngày bằng mảng một chiều lên bảng
Chú ý: Thuật toán trong sách giáo khoa
khai báo biến dem, i, N kiểu byte là chưa
đúng Phải khai báo là kiểu integer vì kiểu
Nhietdo[3];
Nhietdo[7];
Nhietdo[1]=35
Nhietdo: 35 34 36 35.5 36 34.5 37
Trang 17i, N có thể nhận giá trị lớn hơn 255.
- Chương trình đã khai báo hằng Max=366
nên trong khai báo mảng Max là một hằng
chứ không phải là một biến
Hỏi: Trong chương trình chúng ta khai báo
mảng theo cách nào?
- Trước khi nhập nhiệt độ cho từng ngày
thì chúng ta cần phải nhập số ngày Và ta
sử dụng câu lệnh for i:=1 to N do để nhập
nhiệt độ cho từng ngày
- Khi nhập ta cần phải tham chiếu đến các
ngày bằng cách: Readln(Nhietdo[i]);
Củng cố lại bài học:
- Hiểu thế nào là mảng 1 chiều
- Các cách khai báo mảng 1 chiều và
Quan sát chương trìnhtrên bảng và chăm chúnghe giảng
Trả lời: Trong chương
trình chúng ta khai báomảng theo cách gián tiếp
Quan sát chương trìnhtrên bảng và chăm chúnghe giảng
Trang 18các thành phần của khai báo.
2 Kết quả thu được
Trong quá trình học tập trao đổi, thảo luận, trình bày Học sinh đượcthể hiện khả năng vận dụng, hiểu biết của mình khi làm bài tập Đồngthời tiết kiểm tra các bài tập liên quan đến kiểu mảng đều đạt kết quảcao Tỉ lệ điểm khá trên tiết kiểm tra bài tập liên quan đến kiểu mảng
ở lớp 11B là 60% và lớp 11D là 52% không có học sinh đạt mức điểmdưới 5
Trang 19C KẾT LUẬN VÀ ĐỀ XUẤT
Tin học nói chung đóng vai trò rất quan trọng trong việc xây dựng cácchương trình ứng dụng để phục vụ cho cuộc sống Nhờ sự phát triểncủa tin học mà hiện nay hầu hết các lĩnh vực trong xã hội đã ứng dụngđược tin học để giải quyết công viêc nhanh, hiệu quả và chính xáchơn
Hiện nay, tin học phổ biến trên thế giới, được sử dụng trong lĩnh vựcgiảng dạy Trong quá trình giảng dạy các thầy cô có thể đưa ra cácvấn đề nho nhỏ trong tin học đời sống…để các em có thể chứng tỏđược khả năng của mình làm cho học sinh yêu thích môn học, hamhọc hỏi và tìm tòi sáng tạo
Đề tài này mang tính thực tiển rất cao cụ thể là: trong tiết học các emhọc sinh đã chủ động để tìm tòi lại kiến thức đã học qua đó giải quyếtđược vấn đề do giáo viên đặt ra Trong quá trình giải quyết vấn đề,giáo viên chỉ ra những sai lầm mà các em học sinh mắc phải do hiểukhông rõ vấn đề giúp cho các em hiểu rõ hơn về câu lệnh
Kết quả là có rất nhiều em đã dễ dàng vận dụng cấu trúc kiểu mảng
để giải các vấn bài toán do giáo viên đặt ra
Trang 20D TÀI LIỆU THAM KHẢO
1.Sách giáo khoa tin học 11 Hồ Sĩ Đàm chủbiên
2 Sách giáo viên tin học 11 Hồ Sĩ Đàm chủbiên
3 Một số ý kiến đóng góp vào sáng kiến kinh nghiệm của đồngnghiệp
Trang 21MỤC LỤC
A ĐẶT VẤN ĐỀ 1
I Lý do chon sáng kiến kinh nghiệm 1
II Mục đích của sáng kiến kinh nghiệm 2
III Nhiệm vụ của sáng kiến kinh nghiệm 2
IV Đối tượng nghiên cứu 2
V Phương pháp nghiên cứu 2
B GIẢI QUYẾT VẤN ĐỀ 3
I Cơ sở lí luận 3
II Nội dung và giải pháp thực hiện 1 Nội dung 3
2 Kết quả thu được 9
C KẾT LUẬN VÀ ĐỀ XUẤT 10
D TÀI LIỆU THAM KHẢO 11
XÁC NHẬN CỦA THỦ
TRƯỞNG ĐƠN VỊ
Thanh Hóa, ngày 05 tháng 06 năm 2013
Trang 22Tôi xin cam đoan đây là SKKN của mình viết, không sao chép nội dung của người khác.
Hoàng Lê Phong