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.. GV Đưa ra hình vẽ mô tả việc sắp xếp đư
Trang 1Ngà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:
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.
Trang 2trả 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ỉ
Trang 3GV: 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ị đó
Trang 4việ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