Giáo án Tin học 11 - Tiết 20, 21, 22: Kiểu mảng

Giáo án Tin học 11 - Tiết 20, 21, 22: Kiểu mảng

I. MỤC TIÊU BÀI HỌC:

1. Kiến thức

- Hiểu được khái niệm mảng một chiều.

- Hiểu cách khai báo mảng một chiều.

- Cài đặt đựơc thuật toán của một số bài toán đơn giản với kiểu dữ liệu mảng một chiều.

- Thực hiện được khai báo mảng, truy cập, tính toán các phần tử của mảng

2. Kĩ năng

- Khai báo thành thạo mảng một chiều.

- Truy cập các phần tử của mảng

3. Thái độ: Nghiêm túc, chăm chỉ

4. Phát triển năng lực:

- Phát triển năng lực tự học, tư duy logic, sáng tạo của học sinh trong môn tin học lập trình pascal

II. PHƯƠNG PHÁP DẠY HỌC TRÊN LỚP:

- Phương pháp thuyết trình, pháp vấn, giải quyết vấn đề, hoạt động nhóm

III. CHUẨN BỊ CỦA GV & HS

1. Chuẩn bị của giáo viên: Máy tính, máy chiếu.

2. Chuẩn bị của học sinh: SGK, đọc trước bài học.

IV. TIẾN TRÌNH LÊN LỚP:

1. Kiểm tra bài cũ:

 2. Bài mới:

 2.1 Hoạt động khởi động

 

docx 9 trang Người đăng hoan89 Lượt xem 1019Lượt tải 3 Download
Bạn đang xem tài liệu "Giáo án Tin học 11 - Tiết 20, 21, 22: Kiểu mảng", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
 Chương IV: KIỂU DỮ LIỆU CÓ CẤU TRÚC
Tiết 20-21-22
Ngày Soạn : 02/01/2020	
KIỂU MẢNG
I. MỤC TIÊU BÀI HỌC:
1. Kiến thức
- Hiểu được khái niệm mảng một chiều.
- Hiểu cách khai báo mảng một chiều.
- Cài đặt đựơc thuật toán của một số bài toán đơn giản với kiểu dữ liệu mảng một chiều.
- Thực hiện được khai báo mảng, truy cập, tính toán các phần tử của mảng
2. Kĩ năng
- Khai báo thành thạo mảng một chiều.
- Truy cập các phần tử của mảng
3. Thái độ: Nghiêm túc, chăm chỉ
4. Phát triển năng lực:
- Phát triển năng lực tự học, tư duy logic, sáng tạo của học sinh trong môn tin học lập trình pascal
II. PHƯƠNG PHÁP DẠY HỌC TRÊN LỚP:
Phương pháp thuyết trình, pháp vấn, giải quyết vấn đề, hoạt động nhóm
III. CHUẨN BỊ CỦA GV & HS
1. Chuẩn bị của giáo viên: Máy tính, máy chiếu.
2. Chuẩn bị của học sinh: SGK, đọc trước bài học.
IV. TIẾN TRÌNH LÊN LỚP:
1. Kiểm tra bài cũ: 
	2. Bài mới:
	2.1 Hoạt động khởi động
Bài toán ví dụ: 
 Chương trình giải quyết bài toán có thể viết như sau :
// NhietdoTuan
#include	
using namespace std;
double t1,t2,t3,t4,t5,t6,t7,tbl;
Short dem; 
{
    cout<<“Nhap vao nhiet do cua 7 ngay :“<<endl; 
    cin>>t1>>t2>>t3>>t4>>t5>>t6>>t7; 
    tb:= (t1+t2+t3+t4+t5+t6+t7)/7; 
 dem:= 0;
 if( t1>tb) dem= dem+1;
 if (t2>tb) dem= dem+1;
 if (t3>tb) dem= dem+1;
 if (t4>tb) dem= dem+1;
 if (t5>tb) dem= dem+1;
 if (t6>tb) dem= dem+1;
 if (t7>tb) dem= dem+1;
    cout<<“Nhiet do trung binh tuan : “<<tb<<endl; 
    cout<<“So ngay nhiet do cao hon trung binh “<<dem; 
    return 0;
}
	2.2 Hình thành kiến thức mới. 
(1) Mục tiêu: Học sinh có mong muốn tìm hiểu về mảng một chiều, cách khái báo mảng một chiều, cách nhập và in mảng một chiều.
(2) Phương pháp/kĩ thuật dạy học: Nêu và giải quyết vấn đề.
(3) Hình thức tổ chức hoạt động: Làm việc cá nhân, thảo luận nhóm.
(4) Phương tiện dạy học: SGK, Projector, máy tính, bảng phụ.
(5) Kết quả: Học sinh biết thế nào là mảng một chiều, cách khai báo biến mảng một chiều, hiểu cách nhập và in mảng một chiều, hiểu được một số ví dụ giải bài toán về mảng một chiều.
Nội dung hoạt động
Hoạt động giáo viên
Hoạt động học sinh
Nội dung
(?) Mảng một chiều là gì?
- Nhận xét, chốt nội dung.
- Đưa ra một số ví dụ.
(?) Khi làm việc với mảng một chiều cần xác định những gì?
- Nhận xét, chốt nội dung.
- Đưa ra một số ví dụ.
(?) Với mảng một chiều vừa cho ta xác định được gì?
- Nhận xét.
- Tóm tắt nội dung phần khái niệm và dẫn dắt vào phần 1a).
- Tham khảo SGK và trả lời.
- Lắng nghe, ghi bài.
- Quan sát, ghi chú.
- Tham khảo SGK và trả lời.
- Lắng nghe, ghi bài.
- Quan sát, ghi bài.
- Suy nghĩ trả lời.
- Ghi nhớ.
- Lắng nghe, ghi nhớ.
Kiểu mảng một chiều
Mảng một chiều là một dãy hữu hạn các phần tử cùng kiểu. Mảng được đặt tên và mỗi phần tử của dãy sẽ có một chỉ số.
* Khi làm việc với mảng một chiều ta cần xác định được:
+ Tên mảng;
+ Số lượng phần tử;
+ Kiểu dữ liệu của phần tử;
+ Cách khai báo biến mảng;
+ Cách tham chiếu đến một phần tử.
Ví du: A
5	8	7	1
Chỉ số 1 2 3 4
+ Tên mảng: A
+ Số lượng phần tử: 4
+ Kiểu dữ liệu: Số nguyên
+ Tham chiếu đến PT thứ 3, ta viết A[3].
(?) Có mấy cách khai báo mảng một chiều ?
- Nhận xét, chốt nội dung.
(?) Cú pháp khai báo trực tiếp?
- Nhận xét, chốt nội dung.
- Cho ví dụ.
(?) Khai báo mảng B có tối đa 50 phần tử kiểu nguyên 
- Treo kết quả của một nhóm làm nhanh nhất và một nhóm bất kỳ.
- Nhận xét, cộng điểm.
- Giải thích ví dụ rõ để học sinh phân biệt tên biến mảng.
- Tóm tắt nội dung phần 1a) và dẫn dắt vào phần 1b).
- Tham khảo SGK và trả lời.
- Lắng nghe.
- Tham khảo SGK và trả lời.
- Lắng nghe, ghi bài.
- Quan sát, ghi bài.
- Làm việc nhóm.
- 
Quan sát, nhận xét.
- Nghe giảng.
- Lắng nghe, ghi nhớ.
a) Khai báo
* Khai báo 
 [];
- Ví dụ: Khai báo mảng A có tối đa 10 phần tử kiểu thực.
Double A[9] ;
- Giới thiệu có hai thao tác cơ bản khi làm việc với mảng một chiều.
(?) Muốn nhập mảng một chiều đầu tiên ta cần xác định cái gì?
- Nhận xét và (?) sử dụng lệnh gì để nhập số lượng phần tử?
- Nhận xét, chốt nội dung.
(?) Giá trị của từng phần tử mảng xác định được chưa, làm thế nào để có các giá trị đó?
- Nhận xét, chốt nội dung.
(?) Dùng lệnh gì để in mảng một chiều?
- Sử dụng chương trình đã chuẩn bị trước để minh họa cho học sinh quan sát.
- Tóm tắt nội dung phần 1b).
- Lắng nghe, ghi nhớ.
- Tham khảo SGK và trả lời.
- Lắng nghe, gợi nhớ và trả lời.
- Lắng nghe, ghi bài.
- Tham khảo SGK và suy nghĩ trả lời.
- Lắng nghe, ghi bài.
- Gợi nhớ và trả lời.
- Quan sát.
b) Các thao tác trên mảng một chiều
* Nhập mảng một chiều
- Trước tiên, cần xác định có bao nhiêu phần tử cần dùng:
Cout<<nhap so luong ptu: <<;
Cin>>n;
- Dùng vòng lặp For để nhập giá trị cho từng phần tử A[i]:
For (i=0;i<=n;i++)
 {
 Cout<<”Nhap ptu thu:<< i;
 Cin>>A[i];
 }
* In mảng một chiều
Dùng vòng lặp For để in các phần tử trong mảng:
For (i=0;i<=n;i++)
 Cout<<A[i];
2.3. Hoạt động luyện tập, vận dụng
(1) Mục tiêu: Giúp học sinh thực hiện được thao tác tạo khai báo, nhập và in mảng một chiều
(2) Phương pháp/kĩ thuật dạy học: Nêu và giải quyết vấn đề 
(3) Hình thức tổ chức hoạt động: Làm việc nhóm.
(4) Phương tiện dạy học: SGK, Projector, máy tính, bảng phụ.
(5) Kết quả: Học sinh biết vận dụng kiến thức đã học vào giải quyết tình huống thực tiễn cụ thể.
Nội dung hoạt động
Hoạt động của giáo viên
Hoạt động cuả học sinh
Nội dung
(?) Chiếu nội dung bài tập.
- Treo kết quả của nhóm làm nhanh nhất và một nhóm bất kỳ.
- Nhận xét, cộng điểm
- Quan sát, thảo luận nhóm và viết bài làm vào bảng phụ.
- Quan sát, nhận xét.
- Lắng nghe và quan sát.
Cho khai báo biến mảng sau
short A[99];
- Em hãy cho biết:
+ Mảng tên gì? 
+ Được nhập tối đa bao nhiêu phần tử cho mảng? 
+ Các giá trị phần tử có kiểu dữ liệu gì? 
2.4. Vận dụng mở rộng
(1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình.
(2) Phương pháp/kĩ thuật dạy học: Làm việc cá nhân, nhóm.
(3) Hình thức tổ chức hoạt động: Ngoài lớp học
(4) Phương tiện dạy học: SGK, máy tính.
(5) Kết quả: Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể.
Nội dung hoạt động
Viết chương trình nhập dãy N số nguyên (tối đa 50 phần tử). In giá trị phần tử cuối và đầu của dãy số.
Xem trước các ví dụ ở SGK 
§11. KIỂU MẢNG (tiếp theo)
I. MỤC TIÊU
1. Về kiến thức
- Hiểu khái niệm mảng một chiều.
- Hiểu cách khai báo và truy cập đến các phần tử của mảng.
2. Về kĩ năng
- Cài đặt được thuật toán giải một số bài toán đơn giản với kiểu dữa liệu mảng một chiều.
- Thực hiện khai báo mảng, truy cập, tính toán, đếm các phần tử trong mảng.
3. Về thái độ
- Thái độ nghiêm túc trong học tập.
- Chủ động tìm hiểu kiến thức mới.
4. Phát triển năng lực:
- Phát triển năng lực tự học, tư duy logic, sáng tạo của học sinh trong môn tin học lập trình pascal
II. PHƯƠNG PHÁP DẠY HỌC TRÊN LỚP:
Phương pháp thuyết trình, pháp vấn, giải quyết vấn đề, hoạt động nhóm
III. CHUẨN BỊ CỦA GV & HS
1. Chuẩn bị của giáo viên: Máy tính, máy chiếu.
2. Chuẩn bị của học sinh: SGK, đọc trước bài học.
IV. TIẾN TRÌNH LÊN LỚP:
1. Kiểm tra bài cũ: 
Viết khai báo biến mảng?Khai báo mảng 100 số thực.
 [ Kiểu chỉ số];
double A [99];
	2. Bài mới:
2.1. Hoạt động khởi động
(1) Mục tiêu: Giúp học sinh hệ thống lại kiến thức của phần 1a, b đồng thời tạo động cơ để HS có nhu cầu vận dụng các kiến thức đã học để hiểu rõ hơn về các ví dụ.
(2) Phương pháp/kĩ thuật dạy học: Nêu và giải quyết vấn đề.
(3) Hình thức tổ chức hoạt động: Làm việc cá nhân.
(4) Phương tiện dạy học: SGK, Projector, máy tính.
(5) Kết quả: Học sinh trả lời được các câu hỏi của GV.
Nội dung hoạt động
Hoạt động của giáo viên
Hoạt động cuả học sinh
Nội dung
(?) Khai báo dãy C gồm 20 phần tử kiểu kí tự? 
- Nhận xét, cho điểm.
(?) Hãy cho biết với dãy số trên.
+ Mảng tên gì? 
+ Được nhập tối đa bao nhiêu phần tử cho mảng? 
+ Các giá trị phần tử có kiểu dữ liệu gì? 
- Nhận xét, cho điểm.
- Tóm tắt nội dung phần 1a, b và dẫn dắt vào phần ví dụ.
- Lên bảng viết đáp án.
- Lắng nghe và quan sát.
- Suy nghĩ, gợi nhớ, trả lời.
- Lắng nghe và quan sát.
2.2. Hình thành kiến thức
2.3. Hoạt động luyện tập, vận dụng
(1) Mục tiêu: Giúp học sinh hiểu được thao tác khai báo, nhập và in mảng một chiều
(2) Phương pháp/kĩ thuật dạy học: Nêu và giải quyết vấn đề 
(3) Hình thức tổ chức hoạt động: Làm việc nhóm.
(4) Phương tiện dạy học: SGK, Projector, máy tính, bảng phụ.
(5) Kết quả: Học sinh biết vận dụng kiến thức đã học để giải thích các bài toán cụ thể trong thực tế.
Nội dung hoạt động
Hoạt động giáo viên
Hoạt động học sinh
Nội dung
- Chiếu ví dụ 1.
(?) Xác định bài toán?
- Nhận xét, chốt nội dung và giải thích chi tiết bài toán bằng ví dụ cụ thể.
(?) Giải thích thuật toán?
- Nhận xét, chốt nội dung.
(?) Hãy cho biết với dãy số trên.
+ Mảng tên gì? 
+ Được nhập tối đa bao nhiêu phần tử cho mảng? 
+ Các giá trị phần tử có kiểu dữ liệu gì? 
+ Cách khai báo trên là trực tiếp hay gián tiếp?
- Nhận xét, cho điểm.
(?) Câu lệnh dùng để khai báo dãy số?
- Nhận xét, cộng điểm.
(?) Câu lệnh dùng để nhập số lượng phần tử của dãy số?
- Nhận xét, cộng điểm.
(?) Câu lệnh dùng để nhập giá trị các phần tử của dãy số?
- Nhận xét, cộng điểm.
(?) Điều kiện để tìm ra vị trí và giá trị của phẩn tử lớn nhất?
- Nhận xét, cộng điểm.
- Chạy chương trình để HS quan sát.
- Tóm tắt nội dung ví dụ 1 và dẫn dắt vào ví dụ 2
- Chiếu ví dụ 2 và (?) HS giải thích.
- Chạy chương trình để HS quan sát.
- Chiếu ví dụ 3 và (?) Xác định bài toán?
- Nhận xét, cộng điểm.
(?) Thảo luận nhóm và đưa ra thuật toán.
- Treo kết quả của hai nhóm.
- Nhận xét, chốt nội dung, cộng điểm.
(?) Thảo luận nhóm và hoàn chỉnh chương trình.
- Treo kết quả của hai nhóm.
- Nhận xét, chốt nội dung, cộng điểm.
- Chạy chương trình.
- Tóm tắt nội dung tiết học.
- Quan sát. 
- Tham khảo SGK và trả lời.
- Lắng nghe, ghi bài.
- Gợi nhớ và giải thích thuật toán.
- Lắng nghe, ghi bài.
- Gợi nhớ và trả lời.
- Quan sát, ghi bài.
- Quan sát, trả lời.
- Lắng nghe, ghi nhớ.
- Quan sát, trả lời.
- Lắng nghe, ghi nhớ.
- Quan sát, trả lời.
- Lắng nghe, ghi nhớ.
- Quan sát, trả lời.
- Lắng nghe, ghi nhớ.
- Quan sát, ghi nhớ.
- Lắng nghe, ghi nhớ.
- Quan sát, giải thích.
- Quan sát, ghi chú.
- Quan sát, trả lời.
- Quan sát.
- Thảo luận nhóm.
- Quan sát và nhận xét.
- Lắng nghe, ghi bài.
- Thảo luận nhóm.
- Quan sát và nhận xét.
- Lắng nghe, ghi bài.
- Quan sát.
- Lắng nghe, ghi nhớ.
3. Một số ví dụ
Ví dụ 1: Tìm phẩn tử lớn nhất của dãy số nguyên.
- Input: Số nguyên dương N và dãy gồm N sô nguyên dương a1, a2, , an. 
- Output: Max(a1, a2, , an), chỉ số Max.
Thuật toán:
B1: Nhập N, và dãy a1, a2, , an.
B2: Max ç a0; i ç 1;
B3: Nếu i > N thì đưa ra Max, rồi kết thúc;
B4: 
Nếu ai> Max thì Max ç ai;
i ç i + 1 rồi quay lại B3.
* Chương trình
#include	
using namespace std;
short A: array[249] ;
short N, i, Max, csmax;
{
Cout<<”Nhap so phan tu cua day so, N=”;
Cin>>N;
For (i=0,i<= N;i++)
 {
 Cout<<”Phan tu thu << i<<” =”;
 Cin>>A[i];
 }
Max=A[0]; csmax=0;
For (i=1,i<= N;i++)
 If (A[i] > Max) 
 {
 Max = A[i];
 csmax = i;
 }
Cout<<”Gia tri cua p.tu max la:”<< Max;
cout<<”Chi so cua p.tu max la:”<< csmax;
return 0;
 }
Ví dụ 2: Sắp xếp dãy số thành dãy không giảm.
Ví dụ 3: Viết chương trình nhập từ bàn phím số nguyên dương N (N<=100) và dãy A gồm N số nguyên A1, A2, AN. Tìm và in ra màn hình giá trị nhỏ nhất của dãy số vừa nhập?
- Input: Số nguyên dương N và dãy gồm N sô nguyên dương a1, a2, , an. 
- Output: Phần tử min của dãy số.
Thuật toán:
B1: Nhập N, và dãy a1, a2, , an.
B2: Min:= a0; i:= 1;
B3: Nếu i > N thì đưa ra Min, rồi kết thúc;
B4: 
Nếu ai< Min thì Min:= ai;
i:= i + 1 rồi quay lại B3.
* Chương trình
#include	
using namespace std;
short A: array[249] ;
short N, i, Min;
{
Cout<<”Nhap so phan tu cua day so, N=”;
Cin>>N;
For (i=0,i<= N;i++)
 {
 Cout<<”Phan tu thu << i<<” =”;
 Cin>>A[i];
 }
Min=A[0]; 
For (i=1,i<= N;i++)
 If (A[i] < Min) 
 Min = A[i];
 Cout<<”Gia tri cua p.tu min la:”<< Min;
return 0;
 }
2.4 Vận dụng mở rộng
 (1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình.
(2) Phương pháp/kĩ thuật dạy học: Làm việc cá nhân, nhóm.
(3) Hình thức tổ chức hoạt động: Ngoài lớp học
(4) Phương tiện dạy học: SGK, máy tính.
(5) Kết quả: Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể.
Nội dung hoạt động
Bài 1: Viết chương trình nhập từ bàn phím số nguyên dương N (N<=100) và dãy A gồm N số nguyên A1, A2, AN. Tìm và in ra màn hình các phần tử chia hết cho 3?
 Bài 2: Viết chương trình nhập vào một mảng gồm n số nguyên (1<=n<= 100), mỗi số có giá trị tuyệt đối không quá 300. Tính tổng giá trị các phần tử có giá trị chia hết cho k?
V. RÚT KINH NGHIỆM
...........................................................................................................................................................
...........................................................................................................................................................
Mỹ Tho, ngày.....tháng.....năm.......
KÍ DUYỆT

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

  • docxgiao_an_tin_hoc_11_tiet_20_21_22_kieu_mang.docx