MUÏC TIEÂU: - Biết được kiểu dữ liệu mới là kiểu mảng một chiều và hai chiều :biết cấu trúc tạo mảng một chiều và hai chiều, cách tham chiếu đến phần tử của mảng một chiều và hai chiều, [r]
Trang 1Tin học 11
1
CHƯƠNG III : KIỂU DỮ LIỆU CÓ CẤU TRÚC
§11 KIỂU MẢNG
I MỤC TIÊU:
- Biết được kiểu dữ liệu mới là kiểu mảng một chiều và hai chiều :biết cấu trúc tạo mảng một chiều và hai chiều, cách tham chiếu đến phần tử của mảng một chiều và hai chiều, cách khai báo biến kiểu mảng một chiều và hai chiều
- Sử dụng kiểu mảng một chiều và hai chiều trong ngôn ngữ lập trình Pascal để giải quyết các bài toán cụ thể
II PHÂN TIẾT:
- Tiết 21: mục 1.a
- Tiết 22: mục 1.b (ví dụ 1,2)
- Tiết 23: mục 1.b (ví dụ 3)
- Tiết 24 : Luyện tập
- Tiết 25-26: Bài thực hành số 3
- Tiết 27: mục 2
III TIẾN TRÌNH BÀI HỌC:
TIẾT 21
A Ổn định lớp:
B Bài cũ :
C Bài mới:
Hoạt động 1 : Tìm hiểu kiểu mảng một chiều
Hoạt động của giáo viên Hoạt động của học sinh Nội dung
H1: Dẫn dắt đến kiểu mảng một
chiều:
- Xét input, output, thuật toán bài
toán nhiệt độ nhập vào nhiệt độ
(trung bình ) của mỗi ngày trong
tuần và đưa ra màn hình nhiệt độ
trung bình của tuần và số lượng
ngày có nhiệt độ cao hơn nhiệt độ
trung bình của tuần
- Cho HS tìm hiểu chương trình
Nhiêtdo_Tuan Sau đó phát vấn
HS để hiểu chương trình
- Nếu mở rộng chương trình là
một tháng, một năm thì các em có
nhận xét gì về chương trình
H2: Mảng một chiều.
- HS trả lời
- HS tìm hiểu chương trình và trả lời các câu hỏi phát vấn của GV
- Chương trình sử dụng rất nhiều biến và các đoạn lệnh chương trình khá dài
- Nghe, ghi và hiểu
1 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 phần tử của nó có một chỉ số
- Các ngôn ngữ lập trình có quy tắc và cách thức cho phép người lập trình xác định:
+ Tên kiểu mảng một chiều
+ 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 phần tử
Hoạt động 2 : Cách khai báo biến kiểu mảng một chiều trong Pascal
Lop11.com
Trang 2H2: Trong phần khai báo
chương trình có khai báo nào
mới?
H3: GV giải thích và dẫn dắt
đến phần khai báo
H4: Tìm hiểu lại chương trình
Nhietdo_Nngay hiểu cách khai
báo biến mảng, cách tham
chiếu đến phần tử của mảng
H5: Cho ví dụ về khai báo
mảng một chiều:
var Hocsinh : array[-100 100]
of char;
- Xác định tên biến mảng, số
lượng phần tử và kiểu dữ liệu
phần tử
- Chuyển sang khai báo cách 2
H6: Gọi HS cho ví dụ về khai
báo biến mảng môt chiều
- HS trả lời:
type Kmang1 = array[1 Max] of real;
var Nhietdo : Kmang1;
- HS xem SGK, nghe và hiểu
- Tìm hiểu chương trình để hiểu bài
- Tên kiểu mảng là Hoc sinh, mảng có
201 phần tử, kiểu các phần tử của mảng là kí tự
- type ArrChar = array[-100 100] of
char;
var Hocsinh : ArrChar;
- HS cho ví dụ
D.Củng cố và dặn dò:
- Nắm kiểu dữ liệu có cấu trúc mảng một chiều và biết cách khai báo mảng một chiều
- Về xem lại bài và xem trước mục 1b) Một số ví dụ
Trang 3Tin học 11
3
. TIẾT 22
A Ổn định lớp:
B Bài cũ : Thế nào là mảng một chiều? Cách khai báo biến mảng một chiều Cho ví dụ
khai báo biến mảng một chiều theo cách khai báo gián tiếp và cho biết tên kiểu mảng , số lượng phần tử của mảng và kiểu dữ liệu các phần tử của mảng
C Bài mới:
Hoạt động 1 : Tìm hiểu kiểu mảng một chiều thông qua ví dụ 1
Hoạt động của giáo viên Hoạt động của học sinh Nội dung
H1:Tìm hiểu bài toán tìm phần tử
lớn nhất của dãy số nguyên :
input, output, thuật toán(bảng
phụ)
H2: Phát vấn HS mô phỏng thuật
toán với kiểu dữ liệu cụ thể
H3: Tìm hiểu chương trình cài đặt
trong Pascal (có phát vấn HS) :
- Dùng một mảng một chiều có
kiểu phần tử là nguyên để biểu
diễn một dãy hữu hạn số nguyên
và cách khai báo mảng này
- Số lượng phần tử thực sự của
mảng do người chạy chương trình
nhập
- Câu lệnh for –do thứ nhất trong
chương trình thể hiện bước 1 trong
thuật toán dùng để nhập các phần
tử của mảng (lưu ý cho HS cách
tham chiếu đến phần tử của
mảng)
- Câu lệnh for –do thứ hai trong
chương trình thể hiện bước 3,4
trong thuật toán dùng để duyệt
tuần tự các phần tử của mảng
- HS trả lời theo câu hỏi của giáo viên
- HS trả lời
- HS hiểu chương trình thông qua phần giải thích của giáo viên và trả lời các câu hỏi phát vấn
b) Một số ví dụ
Ví dụ 1: SGK
Hoạt động 2 : Tìm hiểu kiểu mảng một chiều thông qua ví dụ 2
Hoạt động của giáo viên Hoạt động của học sinh Nội dung
H1:Tìm hiểu bài toán sắp xếp
của dãy số nguyên bàng thuật
toán tráo đổi : input, output, thuật
toán (bảng phụ)
H2: Phát vấn HS mô phỏng thuật
- HS trả lời theo câu hỏi của giáo viên
- HS trả lời
b) Một số ví dụ
Ví dụ 2: SGK
Lop11.com
Trang 4trong Pascal (có phát vấn HS) :
- Giải thích cho học sinh hiểu mục
đích trong câu lệnh:
for j := N downto 2 do
for i :=1 to j -1 do
if A[i]:=A[i+1] then
begin
t:=A[i];
A[i]:=A[i+1]
A[i+1]:=t;
end;
thông qua phần giải thích của giáo viên và trả lời các câu hỏi phát vấn
D.Củng cố và dặn dò:
- Nắm kiểu dữ liệu có cấu trúc mảng một chiều và biết cách khai báo mảng một chiều
- Về xem lại bài và xem trước mục 1b) Một số ví dụ : ví dụ 3
Trang 5Tin học 11
5
TIẾT 23
A Ổn định lớp:
B Bài cũ :
C Bài mới:
Hoạt động 1 : Tìm hiểu kiểu mảng một chiều thông qua ví dụ 3
Hoạt động của giáo viên Hoạt động của học sinh Nội dung
H1:Tìm hiểu bài toán nhị phân: ý
tưởng của bài toán, xác định
input, output thuật toán(bảng
phụ)
H2: Phát vấn HS mô phỏng thuật
toán với kiểu dữ liệu cụ thể
H3: Phát vấn HS về thuật toán:
- Phạm vi tìm kiếm được xác định
bởi ?
-Việc tìm kiếm là lặp với số lần
chưa biết trước ( chọn số hạng
“giữa” dãy, so sánh với k rồi căn
cứ vào kết quả so sánh này để kết
luận hoặc tìm thấy hoặc thu hẹp
phạm vi tìm kiếm) vậy vòng lặp
dừng lại khi nào?
H4:Từ thuật toán chuyển sang
chương trình: phát vấn HS từng
bước
- HS trả lời theo câu hỏi của giáo viên
- HS trả lời
- Được xác định bởi chỉ số
Dau và Cuoi.
- Khi xảy ra một trong hai điều kiện sau:
+Đã tìm thấy (AGiua=k)
+ Không gian tìm thấy trở
nên rỗng(Dau > Cuoi).
- HS hiểu chương trình thông qua phần giải thích của giáo viên và trả lời các câu hỏi phát vấn
b) Một số ví dụ
Ví dụ 3: SGK
D.Củng cố và dặn dò:
- Nắm kiểu dữ liệu có cấu trúc mảng một chiều và biết cách khai báo mảng một chiều
- Về xem lại bài và học bài
Lop11.com
Trang 6BÀI TẬP
A Ổn định lớp:
B Bài cũ :
C Bài mới:
Hoạt động của giáo viên Hoạt động của học sinh Nội dung
H1:Tìm hiểu bài toán nhị
phân:
+Ý tưởng của bài toán
+Xác định input, output
+ Thuật toán
H2: Phát vấn HS mô phỏng
thuật toán với kiểu dữ liệu
cụ thể
H3: Cài đặt chương trình
từng bước?
- HS trả lời theo câu hỏi của giáo viên
- HS trả lời
- HS trả lời
Bài toán:
Viết chương trình đảo ngược vị trí của dãy số N phần tử (N 300).
Input: Dãy A gồm N số :
A1, A2,…, AN
Output: Dãy A gồm N số :
AN, AN-1,…, A1
Thuật toán:
Bước 1: Nhập N , các số hạng A1, A2,…,
AN;
Bước 2: i 1;
Bước 3: Nếu i > thì xuất dãy A rồi
2
N
kết thúc;
Bước 4:
Bước 4.1: Hoán đổi Ai và AN-i+1;
Bước 4.2: i i +1 rồi quay lại bước 3;
Chương trình:
program Dao_nguoc_DS;
uses crt;
const Nmax = 300;
type ArrReal = array[1 Nmax] of real; var
N , i : integer;
tam : real;
A : ArrReal;
begin
clrscr;
write(‘Nhap so phan tu cua day so N= ’); readln(N);
write(‘Hay nhap day so vao!’);
for i := 1 to N do begin
write(‘A[’, i , ‘]=’);
readln(A[i]);
Trang 7Tin học 11
7
end;
for i := 1 to N div 2 do begin
tam := A[i];
A[i] := A[N – i +1];
A[N – i +1] := tam;
end;
for i := 1 to N do write(A[i] :8 :3,‘ ‘);
Readln
end.
D.Củng cố và dặn dò:
- Nắm kiểu dữ liệu có cấu trúc mảng một chiều và biết cách khai báo mảng một chiều
- Về xem lại bài và học bài để tiết sau thực hành
Lop11.com