Giáo án Tin học 8 - Tiết 56-60 - Năm học 2008-2009

Giáo án Tin học 8 - Tiết 56-60 - Năm học 2008-2009

I. Mục Tiêu:

1. Kiến thức:

- Biết được khái niệm mảng.

- Biết cú pháp của mảng.

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, dịch được đoạn chương trình có sử dụng biến mảng ở các bài toán đơn giản.

3. Thái độ:

- Chú ý nghe giản, thực hiện theo sự hướng dẫn của giáo viên bộ môn.

- Hăng say phát biểu, tích cực hoạt động và tìm tòi.

II. Kiểm tra bài cũ:

?1. Nêu sự khác biệt giữa câu lệnh lặp với số lần biết trước và số lần lặp với số lần chưa biết trước.

?2. Viết cú pháp 2 dạng câu lệnh lặp trong ngôn ngữ Pascal mà em đã học.

III. Chuẩn bị:

- Giáo viên: Giáo án đầy đủ, khai thác hết nội dung, hình ảnh sgk.

- Học sinh: Xem trước bài và chuẩn bị bài mới.

 

doc 9 trang Người đăng tranhiep1403 Lượt xem 1335Lượt tải 0 Download
Bạn đang xem tài liệu "Giáo án Tin học 8 - Tiết 56-60 - Năm học 2008-2009", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tuần: 	Ngày soạn: / /2009
	Tiết: 	Ngày dạy: - / /2009
	Lớp: 8B-8A
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.
- Biết cú pháp của mảng.
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, dịch được đoạn chương trình có sử dụng biến mảng ở các bài toán đơn giản.
3. Thái độ:
- Chú ý nghe giản, thực hiện theo sự hướng dẫn của giáo viên bộ môn.
- Hăng say phát biểu, tích cực hoạt động và tìm tòi.
II. Kiểm tra bài cũ:
?1. Nêu sự khác biệt giữa câu lệnh lặp với số lần biết trước và số lần lặp với số lần chưa biết trước.
?2. Viết cú pháp 2 dạng câu lệnh lặp trong ngôn ngữ Pascal mà em đã học.
III. Chuẩn bị:
- Giáo viên: Giáo án đầy đủ, khai thác hết nội dung, hình ảnh sgk.
- Học sinh: Xem trước bài và chuẩn bị bài mới.
IV. Nội Dung Bài Mới:
Hoạt động của Gv + Hs
Nội dung cần đạt
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ó ích lợi gì?
Hs: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à sử 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 sách giáo khoa. Cho hs đọc và tìm hiểu câu lệnh khai báo, qua thảo luận nhóm để trả lời câu hỏi.
+ Nếu làm theo cách viết chưong trình trong ví dụ 1 , em thấy việc khai báo thế nào ?
Hs: mất thời gian và dễ nhầm lẫn.
Gv: Dẫn dắt như ví dụ trong sgk và dẫn đến giới thiệu dữ liệu kiểu mảng.
Đưa 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ố:
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 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?
Gv: Đưa ra 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: biến có tên là chieu_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.
Tương tự, cho Hs phân tích ý nghĩa câu lệnh thứ 2.
Qua ví dụ, gv tổng quát câu lệnh khai báo mảng trong pascal.
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à Real hoặc Integer.
Gv: Đưa ra ví dụ 2.
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 1 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ện 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 1 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?
2 Hs khai báo.
Var DiemVan: array[1..50] of real;
Var DiemLy: array[1..50] of real;
Gv: Trong thực tế ta nên khai báo gộp như sau:
Var DiemToan, DiemVan, DiemLy: 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 trung bình cao nhất của Châu
Đưa lên bảng:
Gv: 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.
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ư sách giáo khoa.
1. Dãy số và biến mảng:
- Để 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 và 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 ta khai báo biến mảngcó 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 : array[..] of ;
- Để 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ặop 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ì ta khai báo chẳng han:
Var DiemToan, DiemLy, DiemVan: 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ị đó.
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]);
V. Củng cố - dặn dò:
- Nêu ích lợi của việc sử dụng biến mảng?
- Làm các bài tập 1, 2, 3 sách giáo khoa
- Chuẩn bị phần bài còn lại cho tiết sau.	
	Tuần: 	Ngày soạn: / /2009
	Tiết: 	Ngày dạy: - / /2009
	Lớp: 8B-8A
Bài 9: LÀM VIỆC VỚI DÃY SỐ (tt)
I. Mục Tiêu:
1. Kiến thức: 
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, dịch được đoạn chương trình có sử dụng biến mảng ở các bài toán đơn giản.
3. Thái độ:
- Chú ý nghe giản, thực hiện theo sự hướng dẫn của giáo viên bộ môn.
- Hăng say phát biểu, tích cực hoạt động và tìm tòi.
II. Kiểm tra bài cũ:
III. Chuẩn bị:
- Giáo viên: Giáo án đầy đủ, khai thác hết nội dung, hình ảnh sgk.
- Học sinh: Xem trước bài và chuẩn bị bài mới.
IV. Nội Dung Bài Mới:
Hoạt động của Gv + Hs
Nội dung cần đạt
Gv: Cho Hs đọc ví dụ 3 trong sách giáo khoa.
Gv: Giải thích thuật toán tìm giá trị lớn nhất: 
Đầu tiên gán giá trị số thứ nhất của dãy số cho Max (ban đầu tạm thời coi số thứ nhất là số lớn nhất tạm thời)
+ So sánh số lớn nhất tạm thời này với số thứ 2, nếu số thứ 2 lớn hơn số thứ nhất tạm thời – max thì gán giá trị của số thứ 2 cho max. Như vậy, đến thời điểm này, Max là số lớn nhất của số thứ 1 và thứ 2.
+ Cứ tiếp tục như vậy, đem so sánh max với tất cả các số còn lại, gặp số nào lớn hơn Max thì lại gán giá trị của số đó cho Max. Sau khi so sánh đến số cuối cùng của dãy số thì Max chính là giá trị lớn nhất của dãy số.
Yêu cầu Hs trình bày lại thuật toán
Gv: Cho Hs thảo luận nhóm để nghiên cứu cách viết chương trình dựa trên các câu hỏi:
+ Hãy nêu yêu cầu của chương trình ?
+ Trong chương trình đã khai báo những biết gì? Nêu tác dụng của từng biến? phân loại từng biến ?
+ Theo em mảng A có bao nhiêu phần tử ?
+ Hãy giải thích các câu lệnh trong phần thân của chương trình.
Các nhóm Hs thảo luận và cử đại diện trả lời.
Gv: Trong chương trình vừa nghiên cứu ta Chú ý: Số phần tử của mảng phải được khai báo bằng số cụ thể.
Gv: Nhấn mạnh: Qua ví dụ ta thấy sự khác biệt giữa người và máy tính khi giải quyết công việc. Trong nhiều tình huống con người giải các bài toán hiệu quả hơn máy tính nhiều. Còn máy tính lại hơn hẳn con người đối với những tính toán số lớn hoặc với số nhiều
3. Tìm giá trị lớn nhất và nhỏ nhất của dãy số:
- Ví dụ 3 (sgk)
Qua ví dụ ta cần lưu ý: Số các phần tử của mảng (kích thước của mảng) cần được khai báo bằng một số cụ thể.
V. Củng cố - dặn dò:
- Về nhà đọc và tìm hiểu một số chương trình Pascal có khai báo và sử dụng biến mảng.
- Tập viết một số câu lệnh khai báo biến mảng, ôn luyện cách sử dụng các câu lệnh lặp.
- Nhớ lại các kỹ năng đọc, hiểu và chỉnh sửa chương trình.
	Tuần: 	Ngày soạn: / /2009
	Tiết: 	Ngày dạy: - / /2009
	Lớp: 8B-8A
BÀI TẬP
I. Mục Tiêu:
1. Kiến thức: 
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, dịch được đoạn chương trình có sử dụng biến mảng ở các bài toán đơn giản.
- Biết cách viết chương trình của các bài tập đơn giản
3. Thái độ:
- Chú ý nghe giản, thực hiện theo sự hướng dẫn của giáo viên bộ môn.
- Hăng say phát biểu, tích cực hoạt động nhóm
II. Kiểm tra bài cũ:
?1 Nêu cú pháp cách khai báo biến mảng?
?2. Để nhập dữ liệu cho biến mảng ta sử dụng câu lệnh gì?
III. Chuẩn bị:
- Giáo viên: Giáo án đầy đủ, khai thác hết nội dung liên quan đến bài học
- Học sinh: Xem lại bài và chuẩn bị các bài tập trong sách giáo khoa
IV. Nội Dung Bài Mới:
Hoạt động của Gv + Hs
Nội dung cần đạt
GV: Đưa ra các bài tập ở SGK và gọi học sinh lên bảng trả lời.
Hướng dẫn:
1) Lợi ích chính của việc sử dụng biến mảng là có thể sử dụng câu lệnh lặp để thay nhiều câu lệnh, tiết kiệm được thời gian và công sức viết chương trình. Ngoài ra chúng ta còn có thể lưu trữ và xử lí nhiều dữ liệu có nội dung liên quan đến nhau một cách hiệu quả
Gv: Cho Hs thảo luận, đại diện các nhóm trả lời.
Hướng dẫn:
2) Đáp án a) Sai. Phải thay dấu phẩy bằng hai dấu chấm; b) và c) Sai, vì giá trị nhỏ nhất và lớn nhất của chỉ số mảng phải là số nguyên; d) Sai, vì giá trị đâu của chỉ số mảng phải nhỏ hơn hoặc bằng chỉ số cuối; e) Đúng.
3) Đúng
4) Không. Giá trị nhỏ nhất và lớn nhất của chỉ số mảng phải được xác định trong phần khai báo chương trình.
Gv: Cho Hs nêu thuật toán, nêu các biến và cách khai báo.
Hs: Viết chương trình dưới sự hướng dẫn của giáo viên
Hướng dẫn: Chương trình có thể như sau:
Program tinh_trung_binh;
Uses crt;
Var 
N, i : Integer;
TB: real;
A: Array[1..100] of integer;
Begin
Clrscr;
Write(‘Nhap phan tu cua mang, n = ’); read(n);
TB:=0;
For i:= 1 to n do
Begin
Write(’nhap gia tri thu ‘,I,’ cua mang, a[‘,I,’] =’);
Readln(a[i]); TB:=TB+a[i];
End;
TB:=TB/n;
Write(trung binh bang: ‘, TB);
End.
1) Hãy nêu các lợi ích của việc sử dụng biến mảng trong chương trình.
2) Các khai báo biến mảng sau đây trong Pascal đúng hay sai?
a. var X: Array[10,13] Of Integer; 
b. var X: Array[5..10.5] Of Real; 
c. var X: Array[3.4..4.8] Of Integer; 
d. var X: Array[10..1] Of Integer; 
e. var X: Array[4..10] Of Real; 
3) "Có thể xem biến mảng là một biến được tạo từ nhiều biến có cùng kiểu, nhưng chỉ dưới một tên duy nhất". Phát biểu đó đúng hay sai?
4) Câu lệnh khai báo biến mảng sau đây máy tính có thực hiện được không?
var N: integer;
A: array[1..N] of real;
5. Viết chương trình sử dụng biến mảng để tính giá trị trung bình của N số nguyên được nhập từ bàn phím
V. Củng cố- dặn dò:
- Về nhà xem lại bài và học thuộc cú pháp khai báo mảng.
- Xem và chuẩn bị trước bài thực hành 7
	Tuần: 	Ngày soạn: / /2009
	Tiết: 	Ngày dạy: - / /2009
Bài thực hành 7:
XỬ LÍ DÃY SỐ TRONG CHƯƠNG TRÌNH
I. Mục Tiêu:
1. Kiến thức: 
- Thực hành khai báo và sử dụng biến
- Ôn luyện cách sử dụng câu lệnh: ifthen, fordo.
2. Kỹ năng: 
- Củng cố kĩ năng đọc, hiểu và chỉnh sửa chương trình.
- Hiểu và viết được chương trình với thuật toán tìm giá trị lớn nhất và nhỏ nhất của một dãy số, tính tổng dãy số.
3. Thái độ:
- Chú ý nghe giản, thực hiện theo sự hướng dẫn của giáo viên bộ môn.
- Hăng say phát biểu, tích cực hoạt động, thảo luận nhóm.
II. Kiểm tra bài cũ:
?1Viết lại câu lệnh lặp ifthen, fordo?
?2.Viết cú pháp khai báo biến mảng kiểu số nguyên và kiểu số thực?
III. Chuẩn bị:
- Giáo viên: Giáo án đầy đủ, khai thác hết nội dung liên quan đến bài học
- Học sinh: Xem lại lí thuyết và chuẩn bị các bài tập thực hành trong sách giáo khoa
IV. Nội Dung Bài Mới:
1. Thực hành ví dụ 3 sách giáo khoa.
* Gọi Hs nêu yêu cầu bài toán ở ví dụ 3.
* C ho Hs làm việc theo nhóm để gõ chương trình ở ví dụ 3 trong tiết lý thuyết trước.
* Các nhóm đọc, tìm hiểu ý nghĩa câu lệnh trong chương trình
Gv: Ở chương trình trên, ta đã khai báo những biết gì? Kiểu dữ liệu từng loại biến?
- Biến mảng A gồm bao nhiêu phần tử ?
- Gv: Yêu cầu Hs dịch và chạy chương trình với các bộ dữ liệu tùy ý.
* Các nhóm báo cáo kết quả, Gv nhận xét.
2. Bài 1 phần thực hành:
Gọi Hs đọc nội dung, yêu cầu của đề bài.
Gv: Để viết chương trình của bài 1, em cần sử dụng những biết nào? Em hãy thử khai báo các biến đó.
Hs:
Gv: Đưa phần khai báo biến (SGK) cho Hs tìm hiểu và cho các em nêu tác dụng của từng biến.
Cho các nhóm gõ phần khai báo biến vào máy.
Gv: Cho Hs nghiên cứu, tìm hiểu ý nghĩa các câu lệnh trong phần thân chương trình (SGK).
Các nhóm Hs gõ phần thân chương trình vào máy; dịch, sửa lỗi (nếu có) và chạy chương trình với các bộ dữ liệu tùy ý.
Các nhóm quan sát kết quả trên màn hình. Cử đại diện báo cáo.
Gv: Nhận xét các nhóm.
IV. Củng cố - dặn dò:
- Nhắc lại cách khia báo biến mảng
- Chuẩn bị tiếp phần bài còn lại.
- Về tập viết một số chương trình đơn giản và xem thêm sách tham khảo (nếu có)
	Tuần: 	Ngày soạn: / /2009
	Tiết: 	Ngày dạy: - / /2009
Bài thực hành 7:
XỬ LÍ DÃY SỐ TRONG CHƯƠNG TRÌNH (tt)
I. Mục Tiêu:
1. Kiến thức: 
- Thực hành khai báo và sử dụng biến
- Ôn luyện cách sử dụng câu lệnh: ifthen, fordo.
2. Kỹ năng: 
- Củng cố kĩ năng đọc, hiểu và chỉnh sửa chương trình.
- Hiểu và viết được chương trình với thuật toán tìm giá trị lớn nhất và nhỏ nhất của một dãy số, tính tổng dãy số.
3. Thái độ:
- Chú ý nghe giản, thực hiện theo sự hướng dẫn của giáo viên bộ môn.
- Hăng say phát biểu, tích cực hoạt động, thảo luận nhóm.
II. Kiểm tra bài cũ (không kiểm tra bài cũ, kết hợp kiểm tra trong quá trình thực hành)
III. Chuẩn bị:
- Giáo viên: Giáo án đầy đủ, khai thác hết nội dung liên quan đến bài học
- Học sinh: Xem lại lí thuyết và chuẩn bị phần còn lại bài tập thực hành trong sách giáo khoa
IV. Nội Dung Bài Mới:
3. Bài tập 2:
Gv: Nêu yêu cầu của bài 3 (nâng cao của bài 1), và Hs nhắc lại.
Gv: Tương tự bài 1, theo em phân khai báo viết như thế nào?
Đưa ra phần khai báo như sgk, cho Hs phân tích ý nghĩa các câu lệnh.
Gv: Cho Hs thảo luận nhóm để thực hiện các yêu cầu sau:
+ Viết câu lệnh tính trung bình của mỗi bạn trong lớp.
+ Viết câu lệnh tính điểm trung bình của cả lớp theo từng môn Toán và Ngữ văn.
Gv: Cho Hs nghiên cứu phần thân chương trình sgk
Hs làm việc theo nhóm để bổ xung các câu lệnh trên vào vị trí thích hợp trong chương trình. Thêm các lệnh cần thiết, cho dịch và chạy chương trình với các số liệu thử.
Các nhóm cử đại diện báo cáo.
Gv: Nhận xét các nhóm (có thể cho điểm).
4. Bài tập làm thêm:
Hãy viết chương trình in ra màn hình dãy số nhập từ bàn phím, tính tổng dãy số đó.
Yêu cầu Hs nêu ý tưởng bài toán, giới thiệu chương trình.
Program Tong_day_so;
Var
I, n, sum: integer;
A: arrray[1..100] of integer;
Begin
Write(‘Hay nhap do dai cua day so, N = ’); readln(n);
Writeln(’Nhap cac phan tu cua day so:’)
For i:= 1 to N do
Begin
Write(’a[’,i,’] = ’);
Readln(a[i]) ;
End;
Sum:=0 ;
For i:= 1 to N do Sum :=Sum+a[1];
Write(’Day so vua nhap la:’);
For i:= 1 to N do write(a[i], ’ ’);
Writeln;
Write(’Tong cua day so la: ’,sum);
Readln; 
End.
Cho Hs tím hiểu câu lệnh, đặt biệt câu lệnh viết về in phần tử của mảng ra màn hình
V. Củng cố - dặn dò:
- Gv: Nhận xét toàn bộ kiến thức chính đã học trong bài, gọi Hs đọc phần ghi nhớ và tổng kết cuối bài.
- Nhận xét, đánh giá giờ thực hành (ý thức tổ chức kỉ luật các nhóm). Tuyên dương cá nhân hoặc nhóm thực hành tốt.
- Về nhà ô lại một số câu lệnh có điều kiên, câu lệnh lặp, khai báo biến mảng và nhắc hs sử dụng hợp lý trogn khi viết chương trình.
- Tập viết một số chương trình đơn giản.

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

  • doctiet 5660 hay lam.doc