Giáo án giảng dạy môn Tin học 11 - Trường THPT Hà Huy Tập

Giáo án giảng dạy môn Tin học 11 - Trường THPT Hà Huy Tập

I. Mục tiêu

1. Kiến thức:

- Hiểu khả năng của ngôn ngữ lập trình bậc cao, phân biệt được với ngôn ngữ máy và hợp ngữ.

- Hiểu ý nghĩa và nhiệm vụ của chương trình dịch. Phân biệt được biên dịch và thông dịch.

2. Thái độ: Ham muốn tìm hiểu các ngôn ngữ lập trình.

II. Tiến trình tiết dạy:

1. Ổn định lớp, kiểm tra sỉ số:

2. Nội dung:

Hoạt động 1: Tìm hiểu khái niệm lâp trình và ngôn ngữ lập trình

 

doc 55 trang Người đăng quocviet Lượt xem 1504Lượt tải 0 Download
Bạn đang xem 20 trang mẫu của tài liệu "Giáo án giảng dạy môn Tin học 11 - Trường THPT Hà Huy Tập", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tuần: 01 	 	 	 	 
Tiết: 01 	 	 
Chương I : 	 MỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH
Tiết: 1	 Bài 1: KHÁI NIỆM LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH
I. Mục tiêu
1. Kiến thức: 
- Hiểu khả năng của ngôn ngữ lập trình bậc cao, phân biệt được với ngôn ngữ máy và hợp ngữ.
- Hiểu ý nghĩa và nhiệm vụ của chương trình dịch. Phân biệt được biên dịch và thông dịch.
2. Thái độ: Ham muốn tìm hiểu các ngôn ngữ lập trình.
II. Tiến trình tiết dạy:
1. Ổn định lớp, kiểm tra sỉ số:
2. Nội dung:
Hoạt động 1: Tìm hiểu khái niệm lâp trình và ngôn ngữ lập trình
Hoạt động của giáo viên
Hoạt động của học sinh
Nội dung
- Cho bài toán sau: Kết luận nghiệm của phương trình ax + b=0
+ Hãy xác định Input, Output của bài toán trên.
+ Hãy xác định các bước để giải bài toán trên
- Hệ thống các bước này chúng ta gọi là thuật toán. Làm thế nào để máy tính điện tử có thể hiểu được thuật toán này?
- Diễn giải: Hoạt động để diễn đạt một thuật toán thông qua một ngôn ngữ lập trình được gọi là lập trình.
- Các em hãy cho biết khái niệm về lập trình?
- Kết quả của hoạt động lập trình?
- Ngôn ngữ lập trình gồm những loại nào?
- Theo các em chương trình được viết bằng ngôn ngữ bậc cao và chương trình được viết bằng ngôn ngữ máy khác nhau ntn?
- Làm thế nào để chuyển một chương trình viết bằng ngôn ngữ bậc cao sang ngôn ngữ máy?
-Vì sao không lập trình trên ngôn ngữ máy để khỏi mất công chuyển đổi khi lập trình với ngôn ngữ bậc cao
- Quan sát bài toán và trả lời câu hỏi.
+ Input: a, b
+ Output: x=-b/a, vô nghiệm, vô số nghiệm.
+ B1: Nhập a, b.
 B2: Nếu a 0 kết luận có nghiệm x=-b/a.
 B3: Nếu a=0 và b0, kết luận vô nghiệm.
 B4: Nếu a=0 và b=0, kết luận vô số nghiệm. 
- Dùng ngôn ngữ lập trình.
- Nghiên cứu Nội dung trong SGK và trả lời câu hỏi
+ Được một chương trình.
-Nghiên cứu SGK và trả lời câu hỏi.
+ Chương trình viết bằng ngôn ngữ máy có thể nạp trực tiếp vào bộ nhớ và thực hiện ngay.
+ Chương trình viết bằng ngôn ngữ lập trình bậc cao phải được chuyển đổi thành chương trình trên ngôn ngữ máy thì mới thực hiện được.
- Phải sử dụng một chương trình dịch để chuyển đổi.
- Ngôn ngữ bậc cao dễ viết, dễ hiểu. Ngôn ngữ máy khó viết.
1. Khái niệm lâp trình và ngôn ngữ lập trình
a. Khái niệm lập trình
- Lập trình là việc sử dụng cấu trúc dữ liệu và các lệnh của ngôn ngữ lập trình cụ thể để mô tả dữ liệu và diễn đạt các thao tác của thuật toán.
b. Ngôn ngữ lập trình:
Ngôn ngữ máy, hợp ngữ và ngôn ngữ bâc cao.
Hoạt động 2: Tìm hiểu hai loại chương trình dịch: thông dịch và biên dịch
Hoạt động của giáo viên
Hoạt động của học sinh
Nội dung
- Theo các em đối với chương trình dịch: chương trình nào là chương trình nguồn và chương trình đích 
- Nêu vấn đề: Em muốn giới thiệu về trường mình cho một người khách du lịch quốc tế biết tiếng Anh, có hai cách thực hiện:
C1: Cần một người biết tiếng Anh dịch từng câu nói của em sang tiếng Anh cho người khách. Cách này gọi là thông dịch
C2: Em soạn Nội dung giới thiệu ra giấy và người phiên dịch dịch toàn bộ Nội dung đó sang tiếng Anh rồi đọc cho khách nghe. Cách này gọi là biên dịch.
Tương tự chương trình dịch có hai loại là thông dịch và biên dịch.
- Các em hãy cho biết tiến trình của thông dịch và biên dịch.
-Nghiên cứu SGK và trả lời câu hỏi: 
+ Chương trình nguồn là chương trình viết bằng ngôn ngữ lập trình bậc cao.
+ Chương trình đích là chương trình thực hiện chuyển đổi sang ngôn ngữ máy.
- Nghiên cứu SGK và trả lời câu hỏi:
2. Thông dịch và biên dịch:
- Chương trình dịch gồm thông dịch và biên dịch.
a. Thông dịch:
B1: Kiểm tra tính đúng đắn của câu lệnh tiếp theo trong chương trình nguồn
B2: Chuyển lệnh đó thành ngôn ngữ máy
B3: Thực hiện các câu lệnh vừa được chuyển đổi.
b. Biên dịch: 
B1: Duyệt, phát hiện lỗi, kiểm tra tính đúng đắn của các câu lệnh trong chương trình nguồn.
B2: Dịch toàn bộ chương trình nguồn thành một chương trình đích có thể thực hiện trên máy và có thể lưu trữ để sử dụng lại khi cần thiết
Hoạt động 3: Củng cố kiến thức 
	- Khái niệm lập trình và ngôn ngữ lập trình.
	- Các ngôn ngữ lập trình: ngôn ngữ máy, ngôn ngữ bậc cao, hợp ngữ.
	- Khái niệm chương trình dịch.
	- Thông dịch và biên dịch.
Tuần: 02 	 	 	 	 
Tiết: 02 	 	
Tiết: 2	Bài 2:	 CÁC THÀNH PHẦN CỦA NGÔN NGỮ LẬP TRÌNH
I. Mục tiêu:
1. Kiến thức:
- Biết ngôn ngữ lập trình có ba thành phần cơ bản là: Bảng chữ cái, cú pháp và ngữ nghĩa. hiểu được ba thành phần này
- Biết một số khái niệm: Tên, tên chuẩn, tên dành riêng(từ khoá), hằng và biến.
2. Kỹ năng:
- Phân biệt được ba thành phần: bảng chữ cái, cú pháp và ngữ nghĩa
- Phân biệt được tên, hằng và biến. Biết đặt tên đúng
3. Tư duy và thái độ :
- Tư duy logic
- Thái độ cẩn thận, chính xác.
II. Tiến trình tiết dạy:
1. Ổn định lớp, kiểm tra sỉ số:
2. Kiểm tra bài cũ:
CH: Phân biệt quá trình thông dịch và biên dịch
3. Nội dung:
Hoạt động1: Tìm hiểu các thành phần cơ bản
Hoạt động của giáo viên
Hoạt động của học sinh
Nội dung
- Để diễn tả một ngôn ngữ tự nhiên ta cần phải biết những gì? 
- Giới thiệu bảng chữ cái:
GV treo bảng phụ 1(SGK Trang 9)
- Bảng chữ cái trong ngôn ngữ lập trình khác nhau có sự khác nhau. Ví dụ bảng chữ cái trong ngôn ngữ lập trình C++ chỉ khác pascal là sử dụng thêm các kí tự như dấu nháy kép (“), dấu sổ ngược (\), dấu chấm than (!).
- Giớ thiệu cú pháp
- Cú pháp ngôn ngữ lập trình khác nhau cũng khác nhau ngôn ngữ pascal dùng cặp từ Begin- End để gộp nhiều lệnh thành một lệnh nhưng trong C++ dùng cặp kí hiệu {}.
Ví dụ : Xét 2 biểu thức A+B (1) A, B là các số thực.
I+J (2) với I, J là các số nguyên
Hỏi: Về ngữ nghĩa 2 biểu thức trên có khác nhau không?
- Mỗi ngôn ngữ khác nhau cũng có ngữ nghĩa khác nhau
- Chữ cái
- Cú pháp
- Ý nghĩa của điều cần diễn tả.
HS chú ý
HS lắng nghe
Khác nhau: Dấu cộng trong (1) là cộng 2 số thực cộng trong (2) là cộng 2 số nguyên 
HS lắng nghe và ghi chép.
1. Các thành phần cơ bản
- Mỗi ngôn ngữ lập trình thường có ba thành phần cơ bản là: bảng chữ cái, cú pháp và ngữ nghĩa.
a. Bảng chữ cái:
Là tập các kí hiệu dùng để viết chương trình
b. Cú pháp:
- Là bộ quy tắc để viết chương trình
 c. Ngữ nghĩa:
- Xác định ý nghĩa thao tác cần phải thực hiện, ứng với tổ hợp kí tự dựa vào ngữ cảnh của nó.
Tóm lại:
- Cú pháp cho biết cách viết một chương trình hợp lệ, còn ngữ nghĩa xác định ý nghĩa của các tổ hợp kí tự trong chương trình.
- Các lỗi cú pháp được chương trình dịch phát hiện và thông báo cho người lập trình biết. chương trình không còn lỗi cú pháp thì mới có thể dịch sang ngôn ngữ máy.
- Lỗi ngữ nghĩa được phát hiện khi chạy chương trình
Hoạt động2: Tìm hiểu một số khái niệm
Hoạt động của giáo viên
Hoạt động của học sinh
Nội dung
- Trong các ngôn ngữ lập trình nói chung, các đối tượng sử dụng trong chương trình đều phải đặt tên để tiện cho việc sử dụng. Việc đặt tên trong các ngôn ngữ khác nhau là khác nhau, có ngôn ngữ phân biệt chữ hoa, chữ thường, có ngôn ngữ không phân biệt chữ hoa, chữ thường.
- Ngôn ngữ lập trình pascal không phân biệt chữ hoa chữ thường nhưng một số ngôn ngữ lập trình khác(như C++) lại phân biệt chữ hoa, chữ thường
Lắng nghe và ghi chép
2 Một số khái niệm
a. Tên:
- Mọi đối tượng trong chương trình đều phải được đặt tên theo quy tắc của ngôn ngữ lập trình
- Trong ngôn ngữ turbo pascal tên là một dãy liên tiếp không quá 127 kí tự bao gồm: chữ số, chữ cái hoặc dấu gạch dưới và bắt đầu bằng chữ cái hoặc gạch dưới
- Ví dụ: Trong ngôn ngữ pascal
+ Các tên đúng: A, Bre1, -ten, . . .
+ Các tên sai: a bc, 6hgf, x # y, ....
* Tên dành riêng: Là những tên được ngôn ngữ lập trình quy định với ý nghĩa riêng xác định mà người lập trình không được dùng với ý nghĩa khác
Tên dành riêng được gọi là từ khoá
Ví dụ: một số tên dành riêng:
Trong pascal: program, uses, var, const, ....
Trong c++: main, include, if,...
* Tên chuẩn: là nhữnh tên được ngôn ngữ lập trình dùng với ý nghĩa nhất định nào đó. Trong các thư viện của ngôn ngữ lập trình.
- Ví dụ : Một số tên chuẩn
Trong pascal: real, integer, char, ...
- Trong c++: cin, count,...
* Tên do người lập trình đặt: Được xác định bằng cách trước khi sử dụng, không được trùng với tên dành riêng
GV đưa ra ví dụ: Để viết một chương trình giải phương trình bậc hai ta cần khai báo những tên sau:
a,b,c là ba tên dùng để lưu ba hệ số của phương trình.
- x1,x2 là hai tên dùng để lưu nghiệm ( nếu có).
- Delta là tên dùng để lưu giá trị của delta.
- Biến là đối tượng sử dụng nhiều nhất trong khi viết chương trình. Biến là đại lượng có thể thay đổi được nên thường dùng để lưu trữ kết quả
Lắng nghe
Lắng nghe
b. Hằng và biến:
* Hằng: Là đại lượng có giá trị không đổi trong quá trình thực hiện chương trình
- Các ngôn ngữ lập trình thường có:
+ Hằng số học: số nguyên hoặc số thực
+ Hằng logic: Là các giá trị đúng hoặc sai
Ví dụ: (bảng phụ 2: vd về hằng sgk trang 12)
* Biến: Là đại lượng được đặt tên, dùng để lưu trữ gí trị và giá trị có thể được thay đổi trong quá trình thực hiện chương trình 
- Biến phải khai báo trước khi sử dụng.
c. Chú thích:
- Trong khi viết chương trình có thể viết các chú thích cho chương trình. Chú thích không làm ảnh hưởng đến chương trình
- Trong pascal chú thích được đặt trong {} hoặc (* *)
- Trong C++ chú thích đặt trong: /* */
Hoạt động 3: Củng cố toàn bài
Giáo viên mở một chương trình pascal đơn giản có chứa các thành phần là các khái niệm của bài học, nếu không có máy thì sử dụng bảng phụ để chỉ cho HS từng khái niệm trong chương trình.
Tuần: 03 	 	 	 	 
Tiết: 03 	 	 
BÀI TẬP CHƯƠNG 1
Mục tiêu:
1. Về kiến thức:
- Biết có 3 lớp ngôn ngữ lập trình và các mức của ngôn ngữ lập trình: ngôn ngữ máy, hợp ngữ và ngôn ngữ bậc cao.
- Biết vai trò của chương trình dịch.
- Biết khái niệm biên dịch và thông dịch.
- Biết các thành phần cơ bản của ngôn ngữ lập trình: bảng chữ cái, cú pháp và ngữ nghĩa.
- Biết các thành phần cơ sở của Pascal: bảng chữ cái, tên, tên chuẩn, tên riêng (từ khóa), hằng và biến.
2. Về kỹ năng:
- Biết viết hằng và tên đúng trong một ngôn ngữ lập trình cụ thể.	 	
3. Về tư duy và thái độ:
- Nhận thức được quá trình phát triển của ngôn ngữ lập trình gắn liền với quá trình phát triển của tin học nhằm giải các bài toán thực tiễn ngày càng phức tạp.
- Ham muốn học một ngôn ngữ lập trình cụ thể để có khả năng giải các bài toán bằng máy tính điện tử.
II. Tiến trình tiết dạy:
1. Ổn định lớp, kiểm tra sỉ số
2. Kiểm tra bài cũ.
	Câu 1: Có mấy loại tên trong ngôn ngữ Pascal ?.
	Câu 2: Khái niệm hằng và biến ?
2. Nội dung:
Hoạt động 1: Tìm hiểu và trả lời các câu hỏi trong SGK
Hoạt động của giáo viên
Hoạt động của học sinh
Nội dung
- ĐVĐ: Trước khi giải bài tập trong SGK, các em tự ôn lại một số kiến thức mà chúng ta đã học ở các bài trước dựa trên yêu cầu của câu hỏi trang 13 SGK.
- Đặt câu hỏi số 1: Tại sao người ta phải xây dựng các ngôn ngữ lập trình bậc cao?
- Nhận xét, đánh giá và bổ sung hướng dẫn cho học sinh trả lời câu hỏi số 1:
- Đặt câu hỏi 2: Chương trình dịch là gì? Tại sao cần phải có chương trình dịch?
- Đặt câu hỏi 3: Biên dịch và thông d ... g một chiều xuất hiện trong một chương trình.
	+ Biết cách khai báo mảng đơn giản và chỉ số kiểu miền con của kiểu nguyên.
- Về tư duy, thái độ:
	+ Có tư duy đúng đắn trong việc áp dụng mảng 1 chiều để giải các bài toán đơn giản.
II/ Chuẩn bị của gv, hs:
	+ Giáo viên: Sgk, sbt, sgv, tranh sơ đồ.
	+ Học sinh: Sgk, sbt.
III/Phương pháp:
	Trực quan, thuyết trình kết hợp với hỏi - đáp.
IV/ Tiến trình tiết dạy::
Hoạt động 1: Tìm hiểu về sự cần thiết của chương IV(Kiểu dữ liệu có cấu trúc) và định nghĩa mảng 1 chiều.
TG
H/động của hs
H/động của gv
N ội dung Nội dung
25’
- Trả lời
- Trả lời
- Nhắc lại những kiểu dl đã học?
- GV nêu lên sự cần thiết phải có kiểu dl có cấu trúc
- Tìm hiểu về mảng 1 chiều.
- Hãy trình bày ý tưởng để giải bài toán trên
- Ta có thể viết ct bằng NN Pascal như sau:
-Nếu ta viết bằng mảng 1 chi ều: 
-So s ánh 2 ch/tr trên
-Thế nào là mảng 1 chiều?
Bài11 KIỂU MẢNG 
1. Kiểu mảng 1 chiều:
- Xét ví dụ:
Nhập vào nhiệt độ trung bình của mỗi ngày trong tuần, tính và đưa ra màn hình nhiệt độ trung bình của tuần và số lượng ngày trong tuần có nh/độ cao hơn nh/độ t/bình của tuần.
- Giải:
Program nhdo;
Var t2,t3,t4,t5,t6,t7,cn,tb: real;
d: integer;
Begin
Writeln('Nhap vao nhiet do cua cac thu trong tuan'); Readln(t1,t2,t3,t4,t5,t6,t7,cn);
Tb:=(t2+t3+t4+t5+t6+t7+cn)/7;
 D:=0;
If t2>tb then d:=d+1;
If t3>tb then d:=d+1;
If t4>tb then d:=d+1;
If t5>tb then d:=d+1;
If t6>tb then d:=d+1;
If t7>tb then d:=d+1;
If cn>tb then d:=d+1;
Writeln('Nhiet do tr/binh tuan: ',tb:5:2);
Writeln('So ngay nh/do cao hon nh/do t/binh la: ',d);
Readln;
End.
Dùng mảng 1 chiều:
Program nhdo;
Const max = 20;
Type a = array[1..max] of real;
Var ndo:a; d,i,n: byte; t,tb: real;
Begin
Writeln('Nhap so ngay: ');
Readln(n);
T:=0; d:=0;
For i:=1 to n do
 Begin
 Writeln('Nhap vao nhiet do cua ngay thu ',i,':'); Readln(ndo[i]);
 T:=t+ndo[i];
 End;
 Tb:=t/n;
For i:=1 to n do
 If ndo[i]>tb then d:=d+1;
Writeln('Nhiet do tr/binh tuan: ',tb:5:2);
Writeln('So ngay nh/do cao hon nh/do t/binh la: ',d);
Readln;
End.
A/ Định nghĩa:sgk
	Hoạt động 2: Tìm hiểu cách khai báo mảng 1 chiều
TG
H/động của hs
H/động của gv
Nội dung Nội dung
15’
Trả lời
- Lên bảng
Có mấy cách để khai báo mảng 1 chiều?
- Hãy khai báo mảng trong vd trên bằng cách khai báo trực tiếp.
- Để tham chiếu đến nh/độ của thứ 2 ta viết ndo[2]
B/Khai báo:
Cách 1: Khai báo trực tiếp:
Var : array[kiểu chỉ số] of ;
Cách 2: Khai báo gián tiếp
Type = array[kiểu chỉ số] of ;
Var :;
Trong đó: +Kiểu chỉ số thường là một đoạn số nguyên liên tục có dạng n1...n2(n1<n2)(n1,n2 là các hằng hoặc biểu thức)
+ Kiểu phần tử là kiểu dl của các phần tử của mảng.
Hoạt động 3: Củng cố: 5 ‘
Thế nào là mảng 1 chiều?
Cách khai báo biến mảng
Hoạt động 4: Bài tập về nhà:
Nhập vào một dãy số và in ra màn hình những số chẵn.
Ngày soạn: 	14/11/07
Tiết thứ:.BÀI 11: KIỂU MẢNG (TT)
 I. Mục Tiêu:
1)Về kiến thức: Thể hiện các thuật toán cơ bản về tìm kiếm và sắp xếp: sắp xếp dãy số nguyên bằng phương pháp trao đổi và tìm kiếm nhị phân .
2)Về kỹ năng : Biết cách sử dụng mảng 1 chiều trong chương trình thể hiện các thuật toán ở trên.
 3)Về tư duy thái độ :	
 	 + Ý thức rèn luyện kỹ năng các thao tác trên mỗi kiểu dữ liệu có cấu trúc 
 	+ Hứng thú tìm hiểu các thuật toán thường gặp trên các mô hình dữ liệu .	
II. Chuẩn bị của giáo viên và học sinh:
1)Về giáo viên: Chuẩn bị 1 số bài tập liên quan đến tìm kiếm và sắp xếp trong mảng 1 chiều .
2) Về học sinh: Xem lại 3 thuật toán đã học ở lớp 10 (Tìm GTLN của 1 dãy số nguyên, sắp xếp bằng trao đổi và tìm kiếm nhị phân)
III. Phương pháp : gợi mở 
IV. Tiến trình tiết dạy: :
1) Kiểm tra bài cũ (10ph) Trình bày thao tác nhập, xuất mảng 1 chiều .
2) Nội dung bài mới :
TG
Hoạt động của GV
Hoạt động của HS
Nội dung
Hoạt động 1:Vidụ 1
Hãy trình bày phương pháp của sắp xếp trao đổi?
Cho dãy số nguyên sau 
 K={ 10,7,2,15,8,4}
Hãy xác định input và output của bài toán sắp xếp bằng phương pháp trao đổi?
Hướng dẫn học sinh hiểu những đoạn câu lệnh trong thuật toán ở vd2 sgk trang 57
Sắp xếp và đổi chỗ các phần tử liên tiếp nếu chúng ngược thứ tự nhau
Input:dãy số đã cho (chưa sắp xếp )
Output: đưa ra dãy số đã sắp xếp 
Theo dõi Sgk/57
Vidụ 1: Sắp xếp dãy số nguyên bằng phương pháp trao đổi 
 Sgk/57
Hoạt động2:Vidụ 2
Trình bày phương pháp 
tìm kiếm nhị phân?
Cho dãy số nguyên : 
 K = {5,7,10,17,21,25} với khoá A=21. Hãy xác định khoá A có nằm trong dãy K hay không? Xác định Input và Output?
Hướng dẫn học sinh hiểu những đoạn câu lệnh trong thuật toán tìm kiếm nhị phân ở ví dụ 3 SGK trang 58 
Chia đôi 1 mảng đã sắp xếp rồi so sánh phần tử giữa lớn hơn hay nhỏ hơn giá trị A cần tìm ở bên phải hay bên trái của mảng 
Trả lời câu hỏi của giáo viên 
Input :
Output:
Xem Sgk trang 58
Ví dụ 2 : Tìm kiếm nhị phân
 Sgk trang 58
III.Củng cố : (5 ‘)
Nhắc lại kiểu mảng, những bài toán tìm kiếm, sắp xếp
IV.Bài tập về nhà : Yêu cầu học sinh chạy thử chương trình sắp xếp bằng phương pháp tráo đổi trong bài tập 1 Sgk trang 58.
Ngày soạn : 22/11/07
Tiết thứ:..	BÀI 11: KIỂU MẢNG (Tiết 3)
I/. Mục tiêu:
	1/. Về kiến thức:
	- Biết được một kiểu dữ liệu mới là kiểu mảng hai chiều.
- Biết được cách tạo kiểu mảng hai chiều, cách khai báo biến, tham chiếu đến từng phần tử của mảng.
	2/. Về kĩ năng:
	- Nhận biết được các thành phần trong khai báo kiểu mảng hai chiều.
- Nhận biết được định danh của một phần tử mảng hai chiều xuất hiện trong một chương trình. Cách tham chiếu đến một phần tử của mảng hai chiều.
	- Viết được khai báo mảng hai chiều với các chỉ số thuộc kiểu nguyên.
	3/. Về tư duy và thái độ:
	- Xây dựng lòng yêu thích giải toán bằng lập trình trên máy tính.
	- Rèn luyện được các phẩm chất cần thiết của người lập trình như: ý thức chọn và xây dựng kiểu dữ liệu khi thể hiện những đối tượng trong thực tế, ý thức rèn luyện kĩ năng sử dụng các thao tác trên mỗi kiểu dữ liệu có cấu trúc, hứng thú tìm hiểu các thuật toán trên mỗi kiểu dữ liệu có cấu trúc ... Luôn muốn cải tiến chương trình nhằm nâng cao hiệu quả chương trình.
II/. Chuẩn bị của giáo viên và học sinh:
	1/. Giáo viên: Sách giáo khoa, bảng phụ.
	2/. Học sinh: Sách giáo khoa.
III/. Phương pháp: Trực quan, suy luận, kiểm tra, giải quyết vấn đề.
IV/. Tiến trình tiết dạy::
	* Hoạt động 1: Kiểm tra bài cũ và khởi động bài mới.
TG
Hoạt động của Giáo viên
Hoạt động của học sinh
Nội dung
2’
5’
5’
1. Ổn định lớp.
2. Kiểm tra bài cũ:
HS1: Tại sao mảng là kiểu dữ liệu có cấu trúc?
HS2: Tại sao phải khai báo kích thước của mảng?
3. Đặt vấn đề:
- GV gọi HS nhắc lại khái niệm mảng một chiều?
- Gọi HS lên bảng ghi lại cách khai báo biến mảng một chiều?
- GV treo bảng phụ có hình minh họa bảng cửu chương và đưa ra câu hỏi: Làm thế nào để in ra một bảng cửu chương có dạng như thế này?
- Để giải quyết vấn đề này, trước hết chúng ta sẽ đi tìm hiểu thế nào là mảng hai chiều.
- HS lên bảng trả bài cũ.
- HS đứng tại chỗ trả lời câu hỏi.
- HS lên bảng trả lời.
- HS theo dõi và suy nghĩ câu hỏi của GV đưa ra.
- HS lắng nghe.
	* Hoạt động 2: Tìm hiểu về kiểu mảng hai chiều.
TG
Hoạt động của Giáo viên
Hoạt động của học sinh
Nội dung
15’
- Sử dụng kiến thức về mảng một chiều, các em hãy đưa ra cách sử dụng kiểu mảng đó để lưu trữ bảng cửa chương này?
- Với cách lưu trữ như vậy thì ta phải khai báo bao nhiêu biến mảng?
- Như vậy thì nó có những khó khăn gì?
- Để khắc phục các khó khăn này, ta xem 1 mảng một chiều là 1 phần tử, ta ghép 9 mảng một chiều thành 1 mảng hai chiều.
- Thế thì mảng hai chiều là mảng như thế nào?
- Để mô tả kiểu mảng hai chiều ta cần xác định những yếu tố chính nào?
- Bây giờ chúng ta sẽ đi tìm hiểu cách khai bái kiểu mảng hai chiều như thế nào?
- Tương tự như kiểu mảng một chiều, em nào có thể lên bảng viết cách khai báo kiểu mảng hai chiều trong ngôn ngữ Pascal?
- GV đưa ra ví dụ và yêu cầu HS chỉ ra đâu là chỉ số của mảng, số dòng, số cột và kiểu của mỗi phần tử trong mảng?
- Sử dụng 9 mảng một chiều, mỗi mảng lưu 1 hàng của bảng.
- Khai báo 9 biến mảng một chiều.
- Khai báo nhiều biến, viết chương trình nhập xuất dữ liệu dài.
- HS chú ý lắng nghe.
- HS đứng tại chỗ trả lời câu hỏi.
- HS đứng tại chỗ trả lời câu hỏi.
- HS theo dõi và lắng nghe.
- HS lên bảng trả lời câu hỏi.
- HS trả lời:
+ Chỉ số của mảng: 1..9, 1..10
+ Số dòng: 9; số cột: 10
+ Kiểu: số nguyên.
2/. Kiểu mảng hai chiều:
- Mảng hai chiều là mảng một chiều mà mỗi phần tử là mảng một chiều.
- Các yếu tố xây dựng mảng hai chiều:
+ Tên kiểu mảng hai chiều.
+ Số lượng phần tử của mỗi chiều.
+ Kiểu dữ liệu của phần tử.
+ Cách khai báo biến.
+ Cách tham chiếu đến phần tử.
a/. Khai báo:
- Cách 1: Khai báo trực tiếp.
Var : array [kiểu chỉ số hàng, kiểu chỉ số cột] of ;
- Cách 2: Khai báo gián tiếp.
Type = array [kiểu chỉ số hàng, kiểu chỉ số cột] of ;
Var : ;
* Ví dụ:
- Cách 1:
Var A : array [1..9,1..10] of Integer;
- Cách 2:
Type bang = [1..9,1..10] 
TG
Hoạt động của Giáo viên
Hoạt động của học sinh
Nội dung
- Gọi một vài HS lên bảng cho ví dụ và yêu cầu các em chỉ ra đâu là chỉ số của mảng, số dòng, số cột và kiểu của mỗi phần tử trong mảng.
- GV minh họa bằng hình ảnh mảng hai chiều ở ví dụ trên và cách viết truy cập phần tử mảng.
- HS lên bảng cho ví dụ và trả lời.
- Ví dụ:
A[1,8] ; A[3,5] ...
of Integer;
Var A : bang;
- Cách truy cập phần tử mảng:
[chỉ số dòng, chỉ số cột]
	* Hoạt động 3: Rèn luyện kĩ năng sử dụng kiểu mảng hai chiều.
TG
Hoạt động của Giáo viên
Hoạt động của học sinh
Nội dung
7’
1/ GV treo bảng phụ đã viết sẵn chương trình đưa ra màn hình bảng nhân.
- Yêu cầu HS xác định cách tổ chức dữ liệu?
- Nhiệm vụ chính của bài toán cần giải quyết?
- Yêu cầu HS giải thích các lệnh trong chương trình?
- GV đưa ra các số cụ thể để HS thực hiện chương trình và đưa ra kết quả.
2/ GV treo bảng phụ đã viết sẵn chương trình.
- GV thực hiện chương trình để HS thấy được kết quả của nó.
- Yêu cầu HS đặt ra 1 số câu hỏi thắc mắc trong chương trình để GV trả lời, giải thích.
- HS chú ý theo dõi.
- Dùng 1 mảng hai chiều.
- Điền giá trị cho a[i,j]=i*j và xuất giá trị a[i,j] theo từng dòng.
- HS giải thích.
- HS thực hiện chương trình và đưa ra kết quả.
- HS chú ý theo dõi.
- HS quan sát và chú ý những giải thích của GV.
- HS đặt ra các câu hỏi thắc mắc.
b/. Một số ví dụ:
* Ví dụ 1: Chương trình sau tính và đưa ra màn hình bảng nhân.
* Ví dụ 2: Chương trình sau nhập vào từ bàn phím các phần tử của mảng hai chiều B gồm 5 dòng, 7 cột với các phần tử là các số nguyên và 1 số nguyên k. Sau đó, đưa ra màn hình các phần tử của mảng có giá trị nhỏ hơn k.
	* Hoạt động 4: (3’) Củng cố
	Gọi HS nhắc lại:
	- Tạo kiểu mảng hai chiều.
	- Khai báo biến mảng hai chiều.
	- Tham chiếu đến từng phần tử.
	* Hoạt động 5: (2’) Bài tập về nhà
	- Làm các bài tập số 8, 9 trong SGK.
	- Xem trước Nội dung của bài thực hành số 3 trong SGK.
---------------------------------//--------------------------------

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

  • docTIN 11 HKII 3 COT.doc