© T hế Duy – THPT Nguyễn Công Phương Giáo án Tin học 11
Ngày soạn: / / 2010
Tiết 20 – Tuần XX
KI U M NGỂ Ả
KI U M NGỂ Ả
I/ MỤC TIÊU:
- Biết được khái niệm dữ liệu kiểu mảng, biến có chỉ số.
- Biết được khái niệm mảng một chiều.
- Nhận biết được các thành phần trong khai báo mảng một chiều.
- Biết cách viết khai báo mảng đơn giản.
II/ CHUẨN BỊ:
- Giáo viên: SGK Tin học 11, SGV Tin học 11, giáo án.
- Học sinh: SGK Tin học 11, vở ghi.
III/ PHƯƠNG PHÁP:
- Tìm hiểu vấn đề.
IV/ HOẠT ĐỘNG DẠY VÀ HỌC:
Nội dung - Hoạt động của giáo viên Hoạt động của học sinh
Hoạt động 1: ổn định lớp (3 phút)
Ổn định lớp.
GV giới thiệu sơ lược nội dung chương
IV.
HS ổn định.
HS lắng nghe.
Hoạt động 2: khái niệm mảng một chiều (15 phút)
GV cho HS quan sát VD tính nhiệt độ
trong tuần (SGK) và đặt vấn đề:
Giả sử tính nhiệt độ của tháng thì chương
trình sẽ thế nào?
GV có thể dẫn dắt:
Để khắc phục những hạn chế trên, người
ta thường ghép chung bảy biến trên thành
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 đó:
+ Kiểu chỉ số thường là một đoạn số
nguyên (hoặc đoạn kí tự) liên tục, có dạng
n1..n2 với n1, n2 là các biểu thức nguyên
(hoặc kí tự) xác định chỉ số đầu và chỉ số
cuối của mảng (n1 ≤ n2).
+ Kiểu phần tử là kiểu dữ liệu chung của
mọi phần tử trong mảng.
GV đưa một số VD để HS quan sát và
nhận biết.
GV cho HS tìm hiểu cách khai báo mảng
trực tiếp.
GV yêu cầu HS chuyển các VD trên sang
cách khai báo trực tiếp.
GV giới thiệu cách tham chiếu đến từng
phần tử của mảng một chiều:
Tên biến mảng[chỉ số];
GV yêu cầu HS lấy VD.
HS thực hiện theo yêu cầu.
HS lắng nghe và ghi vở.
HS quan sát VD và phát biểu.
HS tìm hiểu cách khai báo mảng
trực tiếp:
var <tên biến mảng>: array[kiểu
chỉ số] of [kiểu phần tử];
HS thực hiện yêu cầu của GV.
HS quan sát.
Nội dung - Hoạt động của giáo viên Hoạt động của học sinh
Hoạt động 1: ổn định lớp và kiểm tra bài cũ (5 phút)
Ổn định lớp.
Câu hỏi kiểm tra bài cũ:
- Nêu khái niệm lập trình mảng một chiều.
- Khai báo mảng một chiều gồm 100 số
nguyên.
GV nhận xét và ghi điểm.
HS trả lời câu hỏi.
HS lắng nghe.
Hoạt động 2: bài toán tìm phần tử lớn nhất của dãy số nguyên (15 phút)
GV cho HS quan sát SGK và nhắc lại yêu
cầu của bài toán.
GV xác định lại bài toán:
- Input: số nguyên dương N (N ≤ 250) và
dãy số nguyên a
1
,…, a
n
, mỗi số a
i
≤ 500.
- Output: giá trị lớn nhất và chỉ số của
phần tử lớn nhất trong dãy.
B1: nhập N và dãy a
1
, a
2
,…, a
n
HS tìm hiểu từng câu lệnh trong chương
trình.
GV chạy chương trình để HS quan sát kết
quả.
HS tìm hiểu và nắm VD.
HS quan sát.
Hoạt động 3: bài toán sắp xếp dãy số nguyên bằng tráo đổi (20 phút)
GV giới thiệu và xác định lại bài toán để
HS nắm rõ yêu cầu:
- Input: số nguyên dương N (N ≤ 250) và
dãy số nguyên a
1
,…, a
n
, mỗi số a
i
≤ 500.
- Output: Dãy A được sắp xếp lại thành
dãy không giảm.
B1: Nhập N, dãy a
1
, a
2
,…, a
n
;
B2: M
←
N;
B3: Nếu M < 2 thì đưa ra dãy đã được sắp
hướng dẫn.
HS tìm hiểu và nắm VD.
HS quan sát.
Hoạt động 4: củng cố (5 phút)
- GV nhắc lại các kiến thức trong hai bài
toán đã tìm hiểu.
- Chuẩn bị bài toán tìm kiếm nhị phân.
HS chú ý lắng nghe.
HS ghi nhớ.
V/ RÚT KINH NGHIỆM:
Trang 48
© T hế Duy – THPT Nguyễn Công Phương Giáo án Tin học 11
Ngày soạn: / / 2010
Tiết 22 – Tuần XXI
KI U M NG (TT)Ể Ả
KI U M NG (TT)Ể Ả
I/ MỤC TIÊU:
- Củng cố cho HS hiểu sâu sắc hơn thuật toán tìm kiếm nhị phân đã học ở
lớp 10.
- Minh họa và củng cố kiến thức sử dụng mảng một chiều trong chương
trình.
II/ CHUẨN BỊ:
- Giáo viên: SGK Tin học 11, SGV Tin học 11, giáo án, VD mẫu, máy
chiếu Projector.
- Học sinh: SGK Tin học 11, vở ghi.
III/ PHƯƠNG PHÁP:
- Tìm hiểu vấn đề.
IV/ HOẠT ĐỘNG DẠY VÀ HỌC:
Nội dung - Hoạt động của giáo viên Hoạt động của học sinh
Hoạt động 1: ổn định lớp và kiểm tra bài cũ (5 phút)
N
;
B2: Dau
←
1, Cuoi
←
N;
B3: Giua
←
2
Dau cuoi+
;
B4: Nếu a
Giua
= k thì thông báo chỉ số Giua
rồi kết thúc;
B5: Nếu a
Giua
> k thì đặt Cuoi = Giua – 1
HS quan sát và lắng nghe.
Trang 49
§11
© T hế Duy – THPT Nguyễn Công Phương Giáo án Tin học 11
rồi chuyển đến B7;
B6: Dau
←
I/ MỤC TIÊU:
- Biết được khái niệm mảng hai chiều.
- Nhận biết được các thành phần trong khai báo mảng hai chiều.
- Biết cách viết khai báo mảng đơn giản.
II/ CHUẨN BỊ:
- Giáo viên: SGK Tin học 11, SGV Tin học 11, giáo án, VD mẫu, máy
chiếu Projector.
- Học sinh: SGK Tin học 11, vở ghi.
III/ PHƯƠNG PHÁP:
- Tìm hiểu vấn đề.
IV/ HOẠT ĐỘNG DẠY VÀ HỌC:
Nội dung - Hoạt động của giáo viên Hoạt động của học sinh
Hoạt động 1: ổn định lớp (1 phút)
Ổn định lớp. HS ổn định.
Hoạt động 2: khái niệm mảng hai chiều (15 phút)
GV giới thiệu VD SGK và đưa kết quả ra
màn hình.
GV đặt vấn đề;
- Nếu sử dụng kiến thức mảng một chiều
thì cần dùng bao nhiêu mảng để lưu trữ
bảng cửu chương?
- Có những khó khăn gì?
GV dẫn dắt:
Để khắc phục các khó khăn này, ta xem
một mảng một chiều là một phần tử, ta
ghép chín mảng một chiều thành một
mảng hai chiều.
GV yêu cầu HS tìm hiểu mảng hai chiều.
GV đặt vấn đề:
Để mô tả mảng hai chiều ta cần xác định
liên tục, có dạng n1..n2 với n1, n2 là các
biểu thức nguyên (hoặc kí tự) xác định chỉ
số đầu và chỉ số cuối (n1 ≤ n2).
+ Kiểu phần tử là kiểu dữ liệu chung của
mọi phần tử trong mảng.
GV đưa một số VD để HS quan sát và
nhận biết.
GV cho HS tìm hiểu cách khai báo mảng
trực tiếp.
GV yêu cầu HS chuyển các VD trên sang
cách khai báo trực tiếp.
GV giới thiệu cách tham chiếu đến từng
phần tử của mảng một chiều:
Tên biến mảng[chỉ số hàng, chỉ số cột];
GV yêu cầu HS lấy VD.
HS thực hiện theo yêu cầu.
HS lắng nghe và ghi vở.
HS quan sát VD và phát biểu.
HS tìm hiểu cách khai báo mảng
trực tiếp:
var <tên biến mảng>: array[kiểu
chỉ số hàng, kiểu chỉ số cột] of [kiểu
phần tử];
HS thực hiện yêu cầu của GV.
HS quan sát.
HS lấy VD.
Hoạt động 4: rèn luyện kĩ năng sử dụng kiểu mảng hai chiều (5 phút)
GV giới thiệu đề bài và yêu cầu HS xác
định cách thức tổ chức dữ liệu, chỉ ra các
nhiệm vụ chính của bài toán.
BÀI T P Và th c hành 3Ậ ự
I/ MỤC TIÊU:
- Củng cố lại các kiến thức cơ bản về kiểu dữ liệu mảng.
- Nâng cao kĩ năng sử dụng một số lệnh kiểu dữ liệu mảng một chiều trong
lập trình, cụ thể:
+ Khai báo kiểu dữ liệu mảng một chiều.
+ Nhập/xuất dữ liệu cho mảng.
+ Duyệt qua tất cả các phần tử của mảng để xử lí từng phần tử.
- Giải bài toán tính tổng các phần tử thỏa mãn điều kiện nào đó.
II/ CHUẨN BỊ:
- Giáo viên: SGK Tin học 11, SGV Tin học 11, giáo án, bài tập thực hành,
phòng máy tính có cài đặt phần mềm Turbo Pascal.
- Học sinh: SGK Tin học 11, vở ghi.
III/ PHƯƠNG PHÁP:
- Thực hành.
IV/ HOẠT ĐỘNG DẠY VÀ HỌC:
Nội dung - Hoạt động của giáo viên Hoạt động của học sinh
Hoạt động 1: ổn định (5 phút)
Ổn định lớp, chia nhóm thực hành. HS ngồi theo nhóm đã phân chia.
Hoạt động 2: tìm hiểu chương trình (10 phút)
GV đưa chương trình lên và hướng dẫn
HS tìm hiểu từng câu lệnh qua hệ thống
các câu hỏi:
- Khai báo Uses CRT; có ý nghĩa gì?
- MyArray là tên kiểu dữ liệu hay tên biến?
- Vai trò của nmax và n có gì khác nhau?
- Những dòng lệnh nào dùng để tạo biến
mảng a?
GV thực hiện chương trình để HS quan sát
kết quả.
a[i] chia hết k.
HS quan sát.
Hoạt động 3: thực hành (25 phút)
GV cho HS nhập chương trình vào máy
tính và kiểm tra kết quả.
GV đưa các câu lệnh cần thêm vào
chương trình ở câu a và hướng dẫn HS tìm
hiểu qua các câu hỏi:
- Ý nghĩa của biến posi, neg?
- Chức năng của lệnh:
If a[i]>0 then posi:=posi+1 Else
If a[i]<0 then neg:=neg+1;
GV hướng dẫn HS thêm nội dung, thực
hiện chương trình và báo cáo kết quả.
HS thực hành.
HS quan sát, suy nghĩ và trả lời câu
hỏi:
- Dùng để lưu số lượng đếm được.
- Đếm số dương hoặc đếm số âm.
HS thực hành.
Hoạt động 4: củng cố (5 phút)
- Nhắc lại một số vấn đề HS còn sai sót
trong buổi thực hành.
- Nhận xét và ghi điểm các nhóm, cá nhân
có thái độ và kết quả thực hành tốt.
- Chuẩn bị bài tập 2.
HS lắng nghe.
HS lắng nghe.
HS ghi nhớ.
V/ RÚT KINH NGHIỆM:
lớn nhất ta sửa ở chỗ nào?
GV đưa ra yêu cầu và hướng dẫn HS viết
chương trình đưa ra các chỉ số của các
phần tử có giá trị lớn nhất.
GV đưa một vài câu hỏi gợi ý:
- Cần giữ lại đoạn chương trình tìm giá trị
lớn nhất không?
- Cần thêm lệnh nào nữa?
- Vị trí thêm các lệnh đó.
HS quan sát đề, lắng nghe, suy nghĩ
và trả lời câu hỏi:
- So sánh lần lượt từ trái sang phải,
giữ lại chỉ số của phần tử lớn nhất.
HS quan sát chương trình, suy nghĩ
và trả lời:
- Giữ lại chỉ số của phần tử có giá
trị lớn nhất.
- Phép so sánh a[i]<a[j].
- Chuyển thứ tự duyệt từ n-1 về 1.
HS lắng nghe và suy nghĩ hướng
dẫn của GV để thực hành.
HS suy nghĩ trả lời theo gợi ý:
- Có
- Lệnh để in ra các chỉ số có giá trị
bằng giá trị lớn nhất tìm được.
- Sau khi tìm được giá trị lớn nhất.
Trang 56
© T hế Duy – THPT Nguyễn Công Phương Giáo án Tin học 11
GV thực hiện chương trình với bộ dữ liệu
mẫu để HS quan sát.