GVHD : LÂM THANH VIỆT SVTT : DANH PHƯƠNG VŨ
Ngày soạn : 28 – 02 – 2010
Ngày dạy : 04 – 03 – 2010
Lớp dạy : 8A1
GIÁO ÁN TIN HỌC 8
Bài 9: LÀM VIỆC VỚI DÃY SỐ
I. MỤC TIÊU:
1. Kiến thức
- Biết được khái niệm mảng
- Hiểu thuật toán tìm số lớn nhất và nhỏ nhất của dãy số
2. Kỹ năng
- Biết cách khai báo mảng, nhập in, truy cập các phần tử của mảng
- Viết được đoạn chương trình có sử dụng biến mảng ở bài toán đơn giản.
3. Thái độ
- Rèn luyện tư duy khoa học, tư duy logic.
- Rèn luyện ý thức học tập, ham thích tìm hiểu.
II. CHUẨN BỊ
1. Giáo viên:
- SGK, giáo án, phòng máy tính đã được cài sẵn Tubo Pascal, bảng phụ.
2. Học sinh
SGK, đồ dùng học tập…
III. HOẠT ĐỘNG DẠY VÀ HỌC
1. Ổn định lớp
2. Kiểm tra bài cũ
- Câu 1.Viết cú pháp hai dạng câu lệnh lặp trong ngôn ngữ Pascal ?
- Câu 2. Cho biết ý nghĩa của câu lệnh lặp While….do?
3. Bài mới:
Hoạt động của GV và HS Nội dung
GV: Em thường nhìn thấy việc xếp hàng để mua
vé, xếp hàng trước khi vào lớp…
Ta thấy việc sắp xếp cộng việc có lợi ích gì?
HS: Suy nghĩ trả lời
- …làm cho hoạt động diễn ra một cách trật tự
và nhanh chóng.
GV: Trong lập trình cũng vậy nếu biết bố trí dữ
liệu theo dãy, việc khai báo và xử lý dữ liệu trở
nên đơn giản rất nhiều. Thay vì phải viết rất
nhiều câu lệnh giống nhau, ta có thể dùng vài câu
lệnh lặp và nhường lại phần lớn công việc cho
máy tính thực hiện.
GV: Nêu ví dụ 1 trong Sgk. Cho HS đọc và tìm
hiểu câu lệnh khai báo, qua thảo luận nhóm để
1. Dãy số và biến mảng.
Giáo án Tin học 8 Trường THCS Mỹ Xuyên
GVHD : LÂM THANH VIỆT SVTT : DANH PHƯƠNG VŨ
trả lời câu hỏi:
- Nếu làm theo cách viết chương trình trong ví
dụ 1, em thấy việc khai báo thế nào?
HS: Suy nghĩ trả lời
-…mất thời gian và dễ nhầm lẫn.
GV: dẫn dắt như trong ví dụ Sgk và dẫn đến
giới thiệu dữ liệu kiểu mảng.
GV Đưa ra hình vẽ mô tả việc sắp xếp được thực
hiện bằng cách gán cho mỗi phần tử một chỉ số:
GV: Khi khai báo một biến có kiểu dữ liệu là
kiểu mảng, biến đó được gọi là biến gì?
GV: Giới thiệu biến mảng.
GV: Trong bài này ta chỉ xét các phần tử kiểu
số: số nguyên hoặc số thực.
- Vậy biến mảng có tác dụng gì?
- Cho HS nghiên cứu kiến thức trong phần 2
Sgk, thảo luận nhóm để trả lời câu hỏi:
+ Tương tự như khai báo biến đơn, câu lệnh
khai báo mảng phải được thực hiện ở đâu?
+ Khi khai báo biến mảng trong mọi ngôn ngữ
lập trình cần chỉ rõ ít nhất yếu tố nào?
HS: - Suy nghĩ trả lời…
GV: Đưa ra ví dụ về cách khai báo như trong
Sgk.
GV: Ở câu lệnh thứ nhất ta khai báo biến có tên
là gì? Gồm bao nhiêu phần tử? Kiểu dữ liệu mỗi
phần tử của biến là gì?
HS: …trả lời
-…biến có tên là chiều cao, gồm 50 phần tử,
mỗi phần tử của biến có kiểu dữ liệu số thực.
GV: Tương tự cho HS phân tích ý nghĩa câu
lệnh thứ 2.
GV: Qua VD GV tổng quát câu lệnh khai báo
mảng trong Pascal.
- Để giúp cho việc sắp xếp
được thuận tiện và đơn giản, mọi
ngôn ngữ lập trình đều có một
kiểu dữ liệu được gọi là kiểu
mảng.
- Dữ liệu kiểu mảng là một tập
hợp hữu hạn các phần tử có thứ
tự, mọi phần tử đều có cùng một
kiểu dữ liệu gọi là kiểu của phần
tử.
- Khi khai báo một biến có
kiểu dữ liệu là kiểu mảng, biến
đó được gọi là biến mảng.
- Giá trị của biến mảng là một
mảng, tức là một dãy số (số
nguyên hoặc số thực) có thứ tự,
mỗi số là giá trị của biến thành
phần tương ứng.
2. Ví dụ về biến mảng
- Để làm việc với dãy số ta
khai báo biến mảng có kiểu số
tương ứng trong phần khai báo.
- Khi khai báo biến mảng cần
chỉ rõ: tên biến mảng, số lượng,
kiểu dữ liệu của phần tử.
- Ví dụ:
Var Chieucao: array[1 50] of
real;
Var Tuoi: array[21 80] of
integer;
* Cách khai báo biến mảng:
Var < tên biến >: array [<chỉ
Giáo án Tin học 8 Trường THCS Mỹ Xuyên
GVHD : LÂM THANH VIỆT SVTT : DANH PHƯƠNG VŨ
GV: phân tích: chỉ số đầu, chỉ số cuối là các số
nguyên hoặc biểu thức nguyên (chỉ số đầu nhỏ
hơn hoặc bằng chỉ số cuối). Kiểu dữ liệu có thể
là Integer hoặc Real.
GV: Đưa ví dụ 2 lên màn hình
GV phân tích ích lợi của sử dụng biến mảng
qua câu lệnh lặp để đọc và ghi dữ liệu ra màn
hình (thay vì 50 câu lệnh khai báo và 50 câu lệnh
đọc ta chỉ cần viết 2 câu lệnh).
GV: Đưa ra cách viết câu lệnh lặp để so sánh
điểm Toán với một giá trị nào đó.
For i:= 1 to 50 do
If diem[i] > 8.5 then writeln(‘gioi’);
GV: Cách khai báo và sử dụng biến mảng như ví
dụ 2 có lợi gì?
HS: …tiết kiệm rất nhiều thời gian và công sức
viết chương trình.
GV: Giả sử lớp em có 50 bạn, em thử khai báo
một biến mảng có tên diemtoan?
HS: ….
Var diemtoan : array[1 50] of real;
GV: Gọi một HS phân tích ý nghĩa của câu lệnh
khai báo trên.
GV: Mỗi HS có thể có nhiều loại điểm khác
nhau, để xử lý đồng thời các loại điểm thì làm
thế nào?
HS: …khai báo nhiều mảng.
GV: Tương tự vài bạn khác hãy khai báo biến
mảng có tên diemli, diemvan?
Var diemli : array[1 50] of real;
Var diemvan : array[1 50] of real;
GV: Trong thực tế ta nên khai báo gộp như sau:
Var diemtoan, diemli, diemvan:
array[1 50] of real;
Ta có thể xử lí điểm thi của một HS cụ thể
như: tính điểm trung bình của Lan, tính điểm cao
nhất của Châu,…
GV: Đưa lên bảng:
GV: Sau khi khai báo một mảng, ta có thể làm
số đầu > < chỉ số cuối >] of
<kiểu phần tử >;
- Ví dụ 2: Để lưu điểm số của
mỗi HS ta khai báo biến mảng
điểm như sau:
Var Diem: array[1 50] of real;
- Có thể thay thế nhiều câu lệnh
đọc và ghi dữ liệu ra màn hình
bằng một câu lệnh lặp chẳng
hạn:
For i:=1 to 50 do
readln(diem[i]);
- Để xử lí đồng thời các loại
điểm thì khai báo nhiều mảng
chẳng hạn:
Var Diemtoan, Diemvan,
Diemli: array[1 50] of real;
- Sau khi khai báo một mảng, ta
có thể làm việc với các phần tử
của nó như một biến thông
thường như gán giá trị, đọc giá
trị và thực hiện tính toán với các
giá trị đó.
Giáo án Tin học 8 Trường THCS Mỹ Xuyên
GVHD : LÂM THANH VIỆT SVTT : DANH PHƯƠNG VŨ
việc với các phần tử của nó như một biến thông
thường.
GV:
* Lưu ý: Ta gán giá trị, đọc giá trị và tính toán
với các giá trị của một phần tử trong biến mảng
thông qua chỉ số tương ứng của phần tử đó.
- Ví dụ: Diem [i] là phần tử thứ i của mảng
điểm.
GV: Đưa ví dụ việc gán giá trị phần tử của mảng
như Sgk.
- Việc gán giá trị cho các phần
tử của mảng có thể thực hiện
trực tiếp qua câu lệnh:
A[1]:=5;
A[2]:=8;
Hoặc nhập dữ liệu từ bàn phím
bằng câu lệnh lặp:
For i:=1 to 5 do readln(a[i]);
IV. CỦNG CỐ VÀ DẶN DÒ
- Nêu lợi ích của việc sử dụng biến mảng?
- Trả lời các câu hỏi 1, 3, 4 Sgk.
- Về nhà đọc và tìm hiểu một số chương trình trong Pascal có khai báo và sử dụng
biến mảng.
- Soạn phần 3 tiếp theo.
Mỹ Xuyên, ngày / / 2010
Người duyệt Người soạn
GVHD : LÂM THANH VIỆT SVTT : DANH PHƯƠNG VŨ
Giáo án Tin học 8 Trường THCS Mỹ Xuyên