SKKN Dạy học kiểu dữ liệu mảng theo định hướng phát triển năng lực học sinh

SKKN Dạy học kiểu dữ liệu mảng theo định hướng phát triển năng lực học sinh

Qua nghiên cứu thực tế dạy học cho thấy việc rèn luyện phương pháp học tập cho học sinh không chỉ là một biện pháp nâng cao hiệu quả dạy học mà còn là mục tiêu dạy học. Hiện nay một số học sinh học rất chăm chỉ nhưng vẫn học chưa tốt, nhất là ở các môn tự nhiên, các em không nhớ được những kiến thưc đã học, học phần sau đã quên phần trước và không biết liên kết các kiến thức với nhau, không biết vận dụng kiến thức đã học. Phần lớn số học sinh này khi đọc sách hoặc nghe giảng trên lớp không biết cách tự ghi chép để lưu thông tin, lưu kiến thức trọng tâm vào trí nhớ của mình. Dạy học theo định hướng phát triển năng lực học sinh sẽ học được phương pháp học, tăng tính độc lập, chủ động, sáng tạo và phát triển tư duy. Cách học này còn phát triển được năng lực riêng của từng học sinh không chỉ về trí tuệ, hệ thống hóa kiến thức (huy động những điều đã học trước đó để chọn lọc các ý để ghi) mà còn là sự vận dụng kiến thức được học qua sách vở vào cuộc sống. Kể từ năm học 2014 - 2015, hình thức dạy học theo định hướng phát triển năng lực đã tập huấn đến từng giáo viên. Phương pháp có ưu điểm là phát huy tối đa tính sáng tạo của học sinh, phát triển năng khiếu. Tất cả những điều đó làm học sinh giảm áp lực trong học tập.

 Phương pháp dạy học theo định hướng phát triển năng lực trong dạy học Tin học sẽ dần dần hình thành cho học sinh tư duy mạch lạc, hiểu biết vấn đề một cách sâu sắc, có cách nhìn vấn đề một cách hệ thống, khoa học. Chính vì vậy, tôi mạnh dạn viết sáng kiến “DẠY HỌC KIỂU DỮ LIỆU MẢNG THEO ĐỊNH HƯỚNG PHÁT TRIỂN NĂNG LỰC HỌC SINH”. Hy vọng rằng những kinh nghiệm này của tôi có thể góp phần giúp các em học sinh hiểu bài, vận dụng tốt đồng thời có hứng thú hơn với môn Tin học.

 

doc 21 trang thuychi01 6240
Bạn đang xem 20 trang mẫu của tài liệu "SKKN Dạy học kiểu dữ liệu mảng theo định hướng phát triển năng lực học sinh", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
MỤC LỤC
Trang 
I. Mở đầu . 2
 1.1. Lí do chọn đề tài ... 2
 1.2. Mục đích nghiên cứu .... 2
 1.3. Đối tượng nghiên cứu  3
 1.4. Phương pháp nghiên cứu ... 3
II. Nội dung sáng kiến kinh nghiệm ........ 3
 2.1. Cơ sở lí luận ...... 3
 2.2. Thực trạng vấn đề trước khi áp dụng SKKN .... 4
2.3. Giải quyết vấn đề và tổ chức thực hiện ........ 4
 2.4. Hiệu quả bước đầu của SKKN .... 18
III. Kết luận, kiến nghị .... 18
3.1. Kết luận  18
3.2. Kiến nghị .. 19
DẠY HỌC KIỂU DỮ LIỆU MẢNG
THEO ĐỊNH HƯỚNG PHÁT TRIỂN NĂNG LỰC HỌC SINH
I. MỞ ĐẦU
1.1. Lí do chọn đề tài.
	Qua nghiên cứu thực tế dạy học cho thấy việc rèn luyện phương pháp học tập cho học sinh không chỉ là một biện pháp nâng cao hiệu quả dạy học mà còn là mục tiêu dạy học. Hiện nay một số học sinh học rất chăm chỉ nhưng vẫn học chưa tốt, nhất là ở các môn tự nhiên, các em không nhớ được những kiến thưc đã học, học phần sau đã quên phần trước và không biết liên kết các kiến thức với nhau, không biết vận dụng kiến thức đã học. Phần lớn số học sinh này khi đọc sách hoặc nghe giảng trên lớp không biết cách tự ghi chép để lưu thông tin, lưu kiến thức trọng tâm vào trí nhớ của mình. Dạy học theo định hướng phát triển năng lực học sinh sẽ học được phương pháp học, tăng tính độc lập, chủ động, sáng tạo và phát triển tư duy. Cách học này còn phát triển được năng lực riêng của từng học sinh không chỉ về trí tuệ, hệ thống hóa kiến thức (huy động những điều đã học trước đó để chọn lọc các ý để ghi) mà còn là sự vận dụng kiến thức được học qua sách vở vào cuộc sống. Kể từ năm học 2014 - 2015, hình thức dạy học theo định hướng phát triển năng lực đã tập huấn đến từng giáo viên. Phương pháp có ưu điểm là phát huy tối đa tính sáng tạo của học sinh, phát triển năng khiếu. Tất cả những điều đó làm học sinh giảm áp lực trong học tập.
      Phương pháp dạy học theo định hướng phát triển năng lực trong dạy học Tin học sẽ dần dần hình thành cho học sinh tư duy mạch lạc, hiểu biết vấn đề một cách sâu sắc, có cách nhìn vấn đề một cách hệ thống, khoa học. Chính vì vậy, tôi mạnh dạn viết sáng kiến “DẠY HỌC KIỂU DỮ LIỆU MẢNG THEO ĐỊNH HƯỚNG PHÁT TRIỂN NĂNG LỰC HỌC SINH”. Hy vọng rằng những kinh nghiệm này của tôi có thể góp phần giúp các em học sinh hiểu bài, vận dụng tốt đồng thời có hứng thú hơn với môn Tin học.
1.2. Mục đích nghiên cứu
Mục tiêu nghiên cứu của đề tài là giúp các em học sinh lớp 11 khi học kiểu dữ liệu mảng thay vì cách tiếp cận theo nội dung sẽ là cách tiếp cận theo định hướng phát triển năng lực. Thông qua các ví dụ và bài tập học sinh sẽ biết vận dụng kiểu dữ liệu mảng để viết chương trình. Đồng thời thông qua các bài tập này để phát triển năng lực tư duy phát hiện và giải quyết vấn đề, tư duy sáng tạo cho học sinh.
1.3. Đối tượng nghiên cứu
Đối tượng nghiên cứu của đề tài là kiểu dữ liệu mảng một chiều trong chương trình tin học 11. Sử dụng hình thức dạy học theo định hướng phát triển năng lực để học sinh nắm vững và vận dụng thành thạo các thao tác thường gặp khi làm việc với kiểu dữ liệu mảng một chiều.
1.4. Phương pháp nghiên cứu
Nghiên cứu lí luận: Nghiên cứu các tài liệu về kiểu dữ liệu có cấu trúc nói chung, kiểu dữ liệu mảng nói riêng trong chương trình tin học 11.
Nghiên cứu thực tiễn: Khảo sát năng lực học sinh khi sử dụng kiểu dữ liệu mảng để viết chương trình.
Thực nghiệm sư phạm: Tiến hành thực nghiệm trên những đối tượng học sinh cụ thể nhằm đánh giá hiệu quả của đề tài. 
II. NỘI DUNG SÁNG KIẾN KINH NGHIỆM
2.1. Cơ sở lí luận:    
    Môn Tin học không phải là môn khoa học lý thuyết thuần túy vì vậy học sinh không thể nhớ nếu như không hiểu bài. Việc giáo viên bắt học sinh ghi nhớ thụ động từng nội dung trong sách giáo khoa là một điều rất khó, cho dù học sinh có cố gắng ghi nhớ thì vẫn bị lẫn lộn. Do đó, giáo viên phải không ngừng đổi mới phương pháp dạy học, lấy “chuẩn kiến thức, kỹ năng” làm kim chỉ nam trong quá trình dạy học, đồng thời phải biết chọn nội dung “lồng ghép” phù hợp với kiến thức trong từng bài giảng, nhằm hình thành cho học sinh thói quen tích cực, độc lập, sáng tạo và giải quyết tình huống có vấn đề. Một trong những phương pháp dạy học mới và hiện đại nhất được đưa vào là phương pháp dạy học theo định hướng phát triển năng lực. Đây một phương pháp dạy học mới đang được rất nhiều nước trên thế giới áp dụng. Qua việc tìm hiểu và vận dụng phương pháp dạy học theo định hướng phát triển năng lực, tôi nhận thấy phương pháp dạy học này rất có hiệu quả trong quá trình dạy học của giáo viên và học tập của học sinh.
2.2. Thực trạng của vấn đề trước khi áp dụng SKKN
   Từ thực tiễn giảng dạy học phần “kiểu mảng” (mảng một chiều) trong chương trình tin học lớp 11 tại trường THPT Tống Duy Tân  tôi nhận thấy rằng: Sau khi học xong, giáo viên kiểm tra lại khả năng nhớ bài và khả năng trình bày lại phần nội dung chính trong bài thì học sinh thể hiện  rất máy móc, gò bó. Học sinh học bài theo hình thức thuộc lòng, những kỹ năng vận dụng rất hạn chế. Việc thực hành rất khó khăn. Do không nhớ được trình tự cú pháp các câu lệnh, các thao tác với mảng nên học sinh không viết ra được những gì mình nhớ, không lập trình được các bài toán cần sử dụng kiểu dữ liệu mảng để lưu trữ dữ liệu. Cũng chính vì vậy mà học sinh không hoàn thành được mục tiêu kiến thức kỷ năng mà giáo viên đã đặt ra.
2.3. Giải quyết vấn đề và tổ chức thực hiện
Bước 1: Lựa chọn chủ đề, nội dung dạy học
	Chủ đề: Kiểu dữ liệu mảng (mảng một chiều)
Bước 2: Xác định yêu cầu kiến thức, kĩ năng, thái độ
Kiến thức:
- Biết định nghĩa kiểu dữ liệu mảng;
	- Biết cú pháp khai báo mảng một chiều, tham chiếu đến phần tử của mảng một chiều;
 - Hiểu rõ kiểu mảng là một kiểu dữ liệu có cấu trúc, rất cần thiết và hữu ích trong nhiều chương trình.
 - Hiểu một số chương trình đơn giản có sử dụng kiểu dữ liệu mảng một chiều;
	Kỹ năng: 	
	 - Biết khai báo biến kiểu mảng một chiều;
 	- Biết sử dụng kiểu dữ liệu mảng trong các bài toán lập trình;
Thái độ: 
	- Thấy được sự cần thiết của kiểu dữ liệu mảng 
 - Học sinh làm quen dần với các chương trình có sử dụng dữ liệu kiểu mảng.
	- Tiếp tục rèn luyện tư duy lập trình.
Bước 3: Lập bảng mô tả yêu cầu cần đạt
Nội dung
Loại câu hỏi/bài tập
Nhận biết
Thông hiểu
Vận dụng thấp
Vận dụng cao
1. Khai báo.
Câu hỏi/bài tập định tính
HS chỉ ra được dữ liệu trong các bài toán không chỉ thuộc kiểu đơn giản chuẩn mà còn có kiểu dữ liệu có cấu trúc. 
HS chỉ ra và giải thích được một số bài toán lập trình ta không thể giải được (hoặc rất khó khăn) khi chỉ sử dụng các kiểu dữ liệu đơn giản chuẩn đã học. Kiểu dữ liệu mảng giúp giải quyêt các bài toán lập trình đơn giản hơn. 
HS tìm hiểu và đề xuất các cách khai báo và cú pháp tham chiếu khi làm việc với kiểu dữ liệu mảng một chiều.
HS chỉ ra được ưu điểm và sự cần thiết của kiểu dữ liệu mảng trong các bài toán lập trình.
Bài tập định lượng
Hs biết cú pháp khai báo mảng một chiều.
HS biết các cách khai báo mảng một chiều. Tham chiếu đến các phần tử trong mảng.
HS lấy được các ví dụ khai báo mảng một chiều.
Bài tập thực hành
HS thực hiện khai báo các biển kiểu mảng một chiều.
HS chỉ ra các khai báo kiểu mảng một chiều đúng (sai) trong các ví dụ khai báo mảng.
Học sinh chỉ ra cách tham chiếu đến từng phần tử trong mảng một chiều.
2. Một số ví dụ
Câu hỏi/bài tập định tính
HS biết được cú pháp tham chiếu đến phần tử trong mảng một chiều, các thao tác thường gặp khi làm việc với kiểu mảng một chiều (nhập dữ liệu vào mảng, xuất dữ liệu ra từ mảng)
HS hiểu được cách nhập xuất dữ liệu đối với phần tử mảng một chiều.
.
HS lấy được ví dụ thao tác dơn giản với phần tử mảng một chiều.
Bài tập định lượng
HS biết thao tác với mảng một chiều.
HS hiểu được ý nghĩa của mảng một chiều trong lập trình.
HS viết được chương trình có sử dụng mảng một chiều.
HS viết được và so sánh chương trình sử dụng mảng một chiều và không sử dụng mảng một chiều (nếu có thể)
Bài tập thực hành
HS vận dụng kiểu dữ liệu mảng một chiều, các thao tác với phần tử mảng một chiều kết hợp với các kiêu dữ liệu khác đã học để viết được chương trình hoàn chỉnh, giải quyết vấn đề trong tình huống quen thuộc.
HS vận dụng kiểu dữ liệu mảng, các thao tác với mảng một chiều kết hợp với các kiêu dữ liệu khác đã học để viết được chương trình hoàn chỉnh giải quyết vấn đề trong tình huống mới.
Bước 4: Đề xuất năng lực có thể hướng tới
Qua dạy học chủ đề “kiểu dữ liệu mảng” có thể hướng tới hình thành và phát triển năng lực:
- Năng lực sử dụng ngôn ngữ, thao tác với kiểu dữ liệu mảng một chiều bước đầu làm quen với kiểu dữ liệu có cấu trúc.
- Năng lực thực hành thao tác với mảng.
- Năng lực thực hành, vận dụng kiến thức tin học vào cuộc sống..
Bước 5: Tiến trình dạy học.  
 Chuẩn bị của giáo viên và học sinh:
- Chuẩn bị của học sinh: Sách GK tin 11, vở ghi.
- Chuẩn bị của giáo viên:
+ Giáo án, Sách GK Tin 11, Sách GV Tin 11, chuẩn kiến thức kĩ năng Tin học 11, máy tính, máy chiếu;
+ Giáo viên chuẩn bị các chương trình có sử dụng kiểu dữ liệu mảng, các thao tác cơ bản với mảng (sử dụng để chạy minh họa các chương trình trong Pascal và trình chiếu)
Chương trình nhiệt độ trung bình tuần (chương trinh 1- hoạt động 2)
Chương trình nhập xuất dữ liệu từ phần tử mảng một chiếu (chương trinh 2- hoạt động 7)
Chương trình nhiệt độ trung bình N ngày (chương trình 3- hoạt động 9).
Chương trình kết hợp các thao tác với kiểu dữ liệu mảng một chiều bài tập 1 (chương trình 4 - hoạt động 10).
Chương trình kết hợp các thao tác với kiểu dữ liệu mảng một chiều bài tập 2 (chương trình 5 - hoạt động 10).
Chương trình kết hợp các thao tác với kiểu dữ liệu mảng một chiều bài tập 3 (chương trình 6- hoạt động 11)
Chương trình kết hợp các thao tác với kiểu dữ liệu mảng một chiều bài tập 4 (chương trình 7- hoạt động 11)
Chương trình kết hợp các thao tác với kiểu dữ liệu mảng một chiều bài tập 5 (chương trình 8- hoạt động 11)
Hoạt động 1. Lựa chọn tình huống công việc (gợi động cơ).
GV đặt vấn đề yêu cầu HS hãy cho biết các kiểu dữ liệu đã học.
GV nhận xét câu trả lời và nhấn mạnh các kiểu dữ liệu đã học trước đây gọi là các kiểu dữ liệu chuẩn (đơn giản chuẩn).
Hoạt động 2: Lựa chọn tình huống công việc.
	GV đặt vấn đề lập trình giải bài toán nhiệt độ trung bình tuần (ví dụ sgk).
 HS lập trình giải bài toán nhiệt độ tuần.
GV trình chiếu, chạy chương trình bài toán nhiệt độ tuần (chương trình chỉ sử dụng các kiểu dữ liệu chuẩn).
Program nhiet_do_tuan; {chuong trinh 1}
Var
 t1, t2, t3, t4, t5, t6, t7, tb: real;
	Dem: byte;
Begin
	Write(‘Nhap vao nhiet do 7 ngay trong tuan: ‘);
	Readln(t1, t2, t3, t4, t5, t6, t7);
	tb:= (t1+t2+t3+t4+t5+t6+t7)/7
	Dem:=0;
	If (t1 > tb) then Dem:= dem + 1;
	If (t2 > tb) then Dem:= dem + 1;
	If (t3 > tb) then Dem:= dem + 1;
	If (t4 > tb) then Dem:= dem + 1;
	If (t5 > tb) then Dem:= dem + 1;
	If (t6 > tb) then Dem:= dem + 1;
	If (t7 > tb) then Dem:= dem + 1;
	Write(‘Nhiet do trung binh trong tuan la: ‘, tb);
	Write(‘So ngay co nhiet do cao hon nhiet do tb trong tuan la: ‘,dem);
Readln;
 End.
Hoạt động 3: Phát hiện tình huống có vấn đề.
GV đặt vấn đề nếu thay đổi yêu cầu của bài toán tính nhiệt độ trung bình năm (số liệu là nhiệt độ trung bình của 365 ngày trong năm) thì việc khai báo các biến trong chương trình như thế nào?
HS từ bài lập trình nhiệt độ tuần và chương trình trên máy chiếu học sinh sẽ tính được số lượng các biến cần phải dùng trong chương trình nhiệt độ trung bình năm.
GV nhận xét và trình bày cho học sinh thấy nếu chỉ sử dụng kiểu dữ liệu chuẩn thì phải dung rất nhiều biến. 
GV giới thiệu kiểu dữ liệu mảng một chiều có thể khắc phục các nhược điểm trên.
Hoạt động 4 HS đọc skg.
Hoạt động 5: Tìm hiểu về định nghĩa mảng một chiều
 GV yêu cầu học sinh cho biết định nghĩa mảng một chiều.
 GV trình bày để học sinh biết được khi làm việc với mảng một chiều ta cần xác định những yếu tố nào của mảng?
Hoạt động 6: Tìm hiểu về cú pháp khai báo mảng một chiều.
GV yêu cầu học sinh đọc tìm hiểu SGK và cho biết cú pháp khai báo mảng một chiều.
	GV trình bày cú pháp khai báo mảng một chiều. 
	GV trình bày (ghi bảng) cú pháp khai báo mảng một chiều
 Cách 1. Khai báo trực tiếp
 VAR : array[..] of ;
 Cách 2. Khai báo gián tiếp
 	TYPE = array[..] of ;
 	VAR : ;
 	GV giải thích các thành phần trong cú pháp khai báo mảng một chiều. Lưu ý học sinh không cần phải ghi phần giải thích.
 GV lưu ý cách khai báo gián tiếp (cách 2). Đây là lần đầu tiên học sinh được làm quen với cách khai báo này.
 GV đưa ra các ví dụ về khai báo mảng một chiều. Yêu cầu học sinh lấy ví dụ tương tự về việc khai báo mảng một chiều.
 Ví dụ 1: 
 Khai báo mảng A có 10 phần tử kiểu số thực.
 VAR A: array[1..10] of real;
 Khai báo mảng B có 100 phần tử kiểu số nguyên.
 VAR B: array[1..100] of integer;
 GV yêu cầu học sinh chỉ ra các khai báo đúng trong phần khai báo sau:
 Ví dụ 2:
 VAR
 A: array[-10..10] of byte;
 B,C : array[1..100] of integer;
 A,B,C : array[100 ..1] of real;
 GV nhận xét phần trả lời của học sinh. Đồng thời nhắc lại để học sinh ghi nhớ cách đặt chỉ số đầu và chỉ số cuối (chỉ số đầu <= chỉ số cuối). Lưu ý thông thường người ta chọn chỉ số đầu là 1 để dể khai báo và sử dụng mảng một chiều.
Hoạt động 7: Tìm hiểu cách tham chiếu đến các phần tử trong mảng một chiều.
 GV yêu cầu học sinh cho biết cách thức tham chiếu (truy cập) phần tử trong mảng một chiều.
 Ví dụ 3:
 Khai báo mảng A có 10 phần tử kiểu nguyên.
 VAR A: array[1..10] of integer;
 Tham chiếu đến phần tử thứ 1 ta viết A[1];
 Tham chiếu đến phần tử thứ 2 ta viết A[2];
 . . .
 Tham chiếu đến phần tử thứ 10 ta viết A[10];
Hoạt động 8: Tìm hiểu về các thao tác với mảng một chiều.
 GV Trình bày để học sinh biết được thao tác chủ yếu đối với mảng một chiều đó là nhập dữ liệu vào mảng một chiều và in (xuất) dữ liệu ra từ mảng một chiều. 
GV nhấn mạnh khi đã tham chiếu đến đên phần tử mảng một chiều, thì việc nhập xuất dữ liệu trong phần tử mảng tương tự như các biến thông thường (biến đơn).
GV trình bày (ghi bảng) cú pháp nhập dữ liệu vào mảng.
 Ví dụ 4: Nhập dữ liệu vào mảng A (ví dụ 3)
 Writeln(‘Nhap du lieu vào mang A’);
 Readln(A[1], A[2], A[3], A[4], A[5], A[6], A[7], A[8], A[9], A[10]);
GV đặt vấn đề trong cú pháp nhập dữ liệu vào mảng chỉ thay đổi các chỉ số (tên mảng được giữ nguyên). Vậy ta có thể sử dụng phần tử tổng quát của mảng này là A[i], i chạy từ 1 đến 10.
GV yêu cầu học sinh trả lới có thể sử dụng câu lệnh nào để nhập dữ liệu cho các phần tử mảng.
 HS trình bày cách sử dụng câu lệnh lặp (số lần lặp biết trước) để nhập dữ liệu vào phần tử mảng.
 For i:=1 to 10 do
 Readln(A[i]);
GV (gợi động cơ) tương tư như thao tác nhập dữ liệu vào mảng. Thao tác in dữ liệu từ mảng ra ta cũng sử dụng câu lênh lặp (với số lần biết trước).
HS trình bày cú pháp in dữ liệu ra từ mảng.
 Writeln(‘in du lieu tu mang’);
	 For i:=1 to 10 do
 Writeln(A[i]);
GV yêu cầu học sinh in dữ liệu mảng một chiều theo hàng ngang và giữa các phần tử có khoảng cách.
HS trình bày cú pháp đoạn chương trình.
 Writeln(‘in du lieu tu mang’);
	 For i:=1 to 10 do
 Write(A[i], ‘ ‘);
 GV trình chiếu mô phỏng các thao tác nhập xuất dữ liệu vào phần tử mảng một chiều chương trình đã được chuẩn bị sẵn (chương trình 2).
	 Program nhap_xuat; {chuong trinh 2}
 Var
 A: array[1..10] of integer;
 i:Byte;
 Begin
 Writeln(‘nhap du lieu vao phan tu mang’);
	 For i:=1 to 10 do
 Begin
 Write (‘Nhap phan tu thu ‘, i); 
 Readln(A[i]);
 End;
 Writeln(‘In ket qua tu mang’);
 For i:=1 to 10 do
 Write(A[i], ‘ ‘);
 readln;
 End. 
 GV chạy chương trình, cho HS xem kết quả. 
 Hoạt động 9: Vận dụng kiểu dữ liệu mảng một chiều giải bài toán nhiệt độ trung bình N ngày (N<=365). Nhập vào số nguyên dương N, nhiệt độ trung bình N ngày. Tính nhiệt độ trung bình N ngày. Cho biết có bao nhiêu ngày nhiệt độ cao hơn trung bình. Đưa các kết quả ra màn hình. (vận dụng thấp)
 GV có thể gợi ý cho HS vân dụng các câu lênh như trong chương trình 2 vừa trình chiếu (chương trình nhập xuất dữ liệu mảng một chiều).
GV yêu cầu một HS lên bảng trình bày. Học sinh có thể làm một trong các chương trình tương đương như sau (chương trình 3).
 Program nhiet_do_N_ngay; {chuong trinh 3}
 Var
 A: array[1..365] of real;
 i, N, dem: integer; 
 tb, tong :real; 
 Begin
 Writeln(‘nhap so ngay’);
 Readln(N);
 Writeln (‘nhap nhiet do trung binh cac ngay’);
	 For i:=1 to N do
 Begin
 Write (‘Nhap nhiet do trung binh ngay thu ‘, i); 
 Readln(A[i]);
 End;
 tong:=0;
 For i:=1 to N do {tinh tong}
 tong:= tong +A[i];
 tb:=tong/N; {tinh trung binh n ngay} 
 dem:=0; 
 For i:=1 to 10 do
 If A[i] >tb then dem:=dem+1; {dem so ngay cao hon trung binh}
 Writeln(‘nhiet do trung binh N ngay la’, tb);
 Writeln(‘so ngay cao hon nhiet do trung binh’, dem);
 readln;
 End. 
Hoạt động 10: Vận dụng kiểu dữ liệu mảng một chiều (vận dụng thấp).
 GV yêu cầu HS hoàn thành bài tập sau: (Bài tập giải quyết tình huống thực tế).
	Bài tập 1:Viết chương trình nhập vào từ bàn phím số nguyên dương N (0<N<=100) và dãy A gồm N số nguyên A1, A2, A3,...,AN. Hãy tìm giá trị lớn nhất (phần tử lớn nhất) của dãy, đưa kết quả ra màn hình. 
GV có thể gợi ý cho HS vân dụng các câu lênh như trong chương trình 3 vừa trình chiếu (chương trình tính nhiệt độ trung bình N ngày).
GV yêu cầu một HS lên bảng trình bày. Lưu ý bài toán chỉ yêu cầu đưa ra giá trị lớn nhất trong dãy (mảng). Học sinh có thể làm một trong các chương trình tương đương như sau (chương trình 4).
Program bai_tap1; {Chuong trinh4}
 Var A: array[1..100] of integer;
 N, i, max : integer;
 Begin
Write(‘Nhap so phan tu cua day so, N=’);
Readln(N);
For i:=1 to N do
 Begin
 Write(‘Phan tu thu ‘, i );
 Readln(A[i]);
 End;
Max:=A[1]; 
For i:=2 to N do
 If A[i] > max then {tim gia tri lon nhat}
 Begin
 max := A[i];
 End;
writeln(‘Gia tri lon nhat trong day la:’, max);
 Readln;
End.
GV nhận xét cho điểm bài làm của học sinh. Yêu cầu HS lên thực hiện phần bài làm trên máy tính và chạy chương trình trong TP (trình chiếu trước lớp). HS có thể hoàn thành nhanh được yêu cầu do đã làm bài trên bảng.
 Bai tập 2: Viết chương trình nhập vào từ bàn phím số nguyên dương N (0<N<=100) và dãy A gồm N số nguyên dương A1, A2, A3,...,AN. Tính trung bình cộng các phần tử chẵn trong dãy. Yêu cầu đưa kết quả ra màn hình.
GV gợi ý cho hoc sinh vận dụng chương trình nhiệt độ N ngày để hoàn thành chương trình bài tập 2. Lưu ý điểm khác biệt so với bài toán nhiệt độ N ngày là yêu cầu của bài toán tính trung bình cộng các số chẵn (dãy có thể có cả số chẵn và lẻ). 
GV yêu cầu một HS lên bảng trình bày. HS có thể làm một trong các chương trình tương đương như sau.
Program bai_tap2; {Chương trình 5}
 Var A: array[1..1000] of word;
 N, i, dem : integer;
 Tong: longint;
 tb: real;
 Begin
Write(‘Nhap so phan tu cua day so, N=’);
Readln(N);
For i:=1 to N do
 Begin
 Write(‘Phan tu thu ‘, i );
 Readln(A[i]);
 End;
Tong:=0; dem:=0;
For i:=1 to N do
 If A[i] mod 2 = 0 then 
 Begin
 tong:=tong +A[i]; {tinh tong}
 dem:=dem +1; {dem cac phan tu chan}
 End;
 tb:=tong/dem;
writeln(‘Trung binh cong cac so chan trong day la:’, tb);
 Readln;
End.
GV nhận xét cho điểm bài làm của học sinh. Yêu cầu HS lên thực hiện phần bài làm trên máy tính và chạy chương trình trong TP (trình chiếu trước lớp)
Hoạt động 11: Vận dụng cao kiểu mảng một chiều.
 GV đặt vấn đề trong các bài tập và ví dụ ở trên chúng ta đã sử dụng các thao tác thường gặp khi làm việc với kiểu dữ liệu mảng một chiều. Trong thực tế có những bài toán cần kết hợp các thao tác xử lí mảng một chiều để viết chương trình.
 Bài tập 3: Viết chương trình nhập vào từ bàn phím số nguyên dương N (0<N<=100) và dãy A gồm N số nguyên dương A1, A2, A3,...,AN, trong dãy đó có ít nhất hai số 0. Tính tổng các số (phần tử) nằm giữa số 0 đầu tiên và số 0 cuối cùng trong dãy. Yêu cầu đưa kết quả ra màn hình.
GV gợi ý cho HS đây là bài toán tính tổng như các ví dụ và bài tập đã làm (bài toán nhiệt độ N ngày, bài tâp 2). Lưu ý học sinh cần xác định vị trí số 0 đầu tiên và số 0 cuối cùng trong dãy (mảng một chiều

Tài liệu đính kèm:

  • docskkn_day_hoc_kieu_du_lieu_mang_theo_dinh_huong_phat_trien_na.doc