Giáo án Tin học 8 - Tiết 39-40, Bài 9: Làm việc dãy số - Năm học 2008-2009

Giáo án Tin học 8 - Tiết 39-40, Bài 9: Làm việc dãy số - Năm học 2008-2009

I. MỤC TIÊU BÀI HỌC:

 1. Kiến thức :

 Biết khái niệm mảng một chiều, biết cấu trúc chung của câu lệnh khai báo mảng một chiều.

 2. Kĩ năng:

 - Viết được cấu trúc mảng một chiều và lấy được ví dụ minh họa

 - Đọc và tìm hiểu được ý nghĩa một số chương trình đơn giản.

 3. Thái đô:

 Tích cực trong các hoạt động, tuân thủ các quy tắc chung của câu lệnh.

II. CHUẨN BỊ:

 1. Giáo viên: Phấn màu, SGK, bài tập minh hoạ.

 2. Học sinh: Vở viết, SGK, đọc trước bài ở nhà

 

doc 5 trang Người đăng tranhiep1403 Lượt xem 1243Lượt tải 1 Download
Bạn đang xem tài liệu "Giáo án Tin học 8 - Tiết 39-40, Bài 9: Làm việc dãy số - 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
Ngày soạn: 03/05/09
Ngày giảng: Lớp 8A: 06/01/09
 8B: 07/01/09
 8C: 08/01/09
Tiết 39 – 40: Bài 9
Làm việc với dãy số
I. Mục tiêu bài học:
	1. Kiến thức :
	Biết khái niệm mảng một chiều, biết cấu trúc chung của câu lệnh khai báo mảng một chiều.
	2. Kĩ năng:
	- Viết được cấu trúc mảng một chiều và lấy được ví dụ minh họa
	- Đọc và tìm hiểu được ý nghĩa một số chương trình đơn giản.
	3. Thái đô:
	Tích cực trong các hoạt động, tuân thủ các quy tắc chung của câu lệnh.
II. Chuẩn bị:
	1. Giáo viên: Phấn màu, SGK, bài tập minh hoạ.
	2. Học sinh: Vở viết, SGK, đọc trước bài ở nhà
III. Tiến trình lên lớp
	1. ổn đinh tổ chức
	2. Kiểm tra: Không kiểm tra
	3. Nội dung bài mới:
Hoạt động của GV và HS
Nội dung bài học
Hoạt động 1:Dóy số và biến mảng
- G: Giới thiệu về dóy số và biến mảng liờn quan đến hai nội dung quan trọng: Nhu cầu của biến mảng trong ngụn ngữ lập trỡnh và thuật toỏn tỡm số lớn nhất của một dóy số.
 Như cỏc em đó biết về “thuật toỏn tỡm số lớn nhất của một dóy số” đó được tỡm hiểu ở bài 5 (vớ dụ 6). Vỡ vậy, ta khụng đề cập đến việc giải quyết nhiệm vụ này ntn.
 Mục tiờu là Gv dẫn đến nhu cầu cần cú biến mảng thụng qua vớ dụ 1: Viết chương trỡnh nhập điểm kiểm tra của cỏc HS trong một lớp và sau đú in ra màn hỡnh.
- HS: Nghe giảng và đọc ví dụ 1.
- G: Vỡ mỗi biến chỉ cú thể lưu một giỏ trị duy nhất, để cú thể nhập điểm và so sỏnh chỳng, ta cần sử dụng nhiều biến, mỗi biến cho một HS. Trong Pascal ta cần nhiều cõu lệnh khai bỏo và nhập dữ liệu như: Mỗi cõu lệnh tương ứng với điểm của một HS.
- HS: Nghe giảng 
- G: Nếu số HS trong lớp càng nhiều thỡ đoạn khai bỏo và đọc dữ liệu trong chương trỡnh càng dài  rất khú trỏnh khỏi những nhầm lẫn, sai sút.
- G: Vậy, ta cú thể sử dụng quy luật tăng hay giảm của “số thứ tự” và một vài cõu lệnh lặp để xử lớ dữ liệu một cỏch đơn giản ntn ?
ố Để giải quyết cỏc vấn đề trờn, hầu hết cỏc 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à gỡ ?
- HS: Trả lời : Dữ liệu kiểu mảng là tập hợp cỏc phần tử cú thứ tự, mọi phần tử đều cú cựng một kiều dữ liệu.
* Nhấn mạnh: Trong bài này, ta chỉ xột cỏc mảng cú cỏc phần tử kiểu số nguyờn hoặc số thực.
- GV: Giới thiệu cỏc khỏi niệm biến mảng và giỏ trị của biến mảng.
- HS: Ghi bài
1. Dóy số và biến mảng:
Vớ dụ 1: (SGK)/ Tr 75
- Khai bỏo và nhập dữ liệu mỗi cõu lệnh tương ứng với điểm của một HS:
Var Diem_1, Diem_2, Diem_3,  : real;
Read (Diem_1) ; Read (Diem_2) ; Read (Diem_3) ; 
- Ta cú thể sử dụng quy luật tăng hay giảm của “số thứ tự” và một vài cõu lệnh lặp để xử lớ dữ liệu một cỏch đơn giản:
+ Với i = 1 đến 100: Hóy nhập Diem_i;
+ Với i = 1 đến 100: Hóy so sỏnh Max với Diem_i;
* 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ử.
 Việc sắp xếp thứ tự thực hiện bằng cỏch gỏn cho mỗi phần tử một chỉ số:
+ Biến mảng: Là khi khai bỏo một biến cú kiểu dữ liệu là kiểu mảng.
+ Giỏ trị của biến mảng là một mảng. (tức là một dóy số: nguyờn - thực cú thứ tự)
Hoạt động 2: Ví dụ về biến mảng
- GV: Cỏch khai bỏo biến mảng trong cỏc ngụn ngữ lập trỡnh cú thể khỏc nhau, nhưng luụn cần chỉ rừ những gỡ ?
- HS: Nghiên cứu SGK trả lời
- GV: Cho HS đọc vớ dụ, rồi hướng dẫn cỏch khai bỏo trong ngụn ngữ Pascal:
Var Chieucao : array [1..50] of real;
Var Tuoi : array [21..80] of integer;
=> Cỏch khai bỏo mảng trong Pascal ntn ? 
- HS: Thực hiện theo hướng dẫn của GV
- Từ vớ dụ 1, GV dẫn dắt HS cỏch khai bỏo biến mảng:
 Var Diem : array [1..50] of real;
+ Biến mảng cú 50 phần tử được đỏnh từ 1 đến 50. Cỏc phần tử được “đặt tờn” ntn ?
=> Cỏch khai bỏo và sử dụng biến mảng như trờn cú lợi gỡ ?
- GV: Để thay rất nhiều cõu lệnh nhập và in dữ liệu ra màn hỡnh, ta dựng một cõu lệnh nào ?
( For do )
 - GV: Để viết giỏ trị của cỏc phần tử ra màn hỡnh người ta kết hợp giữa For do với lệnh nào ?
- GV: Để giỳp tiết kiệm rất nhiều thời gian và cụng sức viết chương trỡnh, thay vỡ phải viết 50 cõu lệnh khai bỏo và 50 cõu lệnh nhập, ta chỉ cần viết 2 cõu lệnh là đủ và kết quả đạt được như nhau. Đưa ra 1 cỏch khai bỏo cho HS rừ.
=> HS tự khai bỏo nhiều biến mảng cho cỏc mụn học ntn ?
- HS : làm theo hướng dẫn của GV
- GV: Sau khi một mảng đó được khai bỏo, chỳng ta cú thể làm việc với cỏc phần tử của nú như làm việc với một biến thụng thường. Vậy làm việc với một biến thụng thường ntn ?
- HS: như gỏn giỏ trị, đọc giỏ trị và thực hiện cỏc tớnh toỏn với cỏc giỏ trị đú.
* Lưu ý HS: Sử dụng cấu trỳc For  do phự hợp, dễ hiểu hơn cấu trỳc Whiledo vỡ biết trước số lần lặp.
* Củng cố:Làm BT 1, 2/ SGK/ Tr 79
2. Vớ dụ về biến mảng:
- Cỏch khai bỏo biến mảng trong cỏc ngụn ngữ lập trỡnh cú thể khỏc nhau, nhưng luụn cần chỉ rừ: tờn biến mảng, số lượng phần tử, kiểu dữ liệu chung của cỏc phần tử.
 Vớ dụ: (SGK)/ Tr 76
* Cỏch khai bỏo mảng trong Pascal:
Tờn mảng : array [..] of ;
 Trong đú: 
 + Chỉ số đầu và chỉ số cuối: là 2 số nguyờn hoặc biểu thức nguyờn (Chỉ số đầu Ê chỉ số cuối );
 + Kiểu dữ liệu: integer hoặc real
* Vớ dụ 2: (SGK)/ Tr 76.
 - Khai bỏo biến mảng Diem như sau:
 Var Diem : array [1..50] of real;
- Dựng một cõu lệnh lặp, cú thể thay rất nhiều cõu lệnh nhập và in dữ liệu ra màn hỡnh, như:
 For i:= 1 to 50 do readln ( Diem [ i ] );
- Để so sỏnh điểm của mỗi HS với một giỏ trị nào đú, ta cũng chỉ cần một cõu lệnh lặp, như:
For i:= 1 to 50 do 
If Diem [ i ] > 8.0 then writeln ( ‘ Gioi ‘ );
- Để xử lớ đồng thời cỏc laọi điểm của từng mụn học, ta cú thể khai bỏo nhiều mảng:
Var DiemToan : array [1..50] of real;
Var DiemVan : array [1..50] of real;
Var DiemLi : array [1..50] of real;
hoặc:
Var DiemToan, DiemVan, DiemLi : array [1..50] of real;
- Khi một mảng đó được khai bỏo, chỳng ta cú thể làm việc với cỏc phần tử của nú như: gỏn giỏ trị, đọc giỏ trị và thực hiện cỏc tớnh toỏn với cỏc giỏ trị đú. Vớ dụ 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: For i:= 1 to 5 do readln ( A [ i ] );
Hoạt động 3: Tỡm giỏ trị lớn nhất và nhỏ nhất của dóy số
- GV: hướng dẫn HS tỡm hiểu lại thuật toỏn tỡm giỏ trị lớn nhất, nhỏ nhất của dóy số nguyờn ( đó học ở Bài 5 ).
 + GV : giải thớch về thuật toỏn tỡm giỏ trị lớn nhất của dóy số nguyờn  Sau đú cho HS nhắc lại.
- HS nghe và nhắc lại. Tham gia chỉnh sửa thuật toỏn trờn để tỡm ra số nhỏ nhất.
+GV: Cho HS thảo luận, chỉnh sửa thuật toỏn trờn để tỡm ra số nhỏ nhất.
- GV cho HS đọc vớ dụ 3:
- HS đọc vớ dụ 3.
? Để nhập cỏc số nguyờn sẽ được nhập vào, trước hết ta phải làm gỡ ?
+ HS: trước hết ta khai bỏo biến N.
? Sau khi khai bỏo N, biến lưu cỏc số được nhập vào như là cỏc phần tử của một biến mảng A. Ngoài ra, cần khai bỏo thờm cỏc biến nào nữa ?
+ HS: Cần khai bỏo thờm biến i làm biến đếm cho cỏc lệnh lặp, biến Max và Min để lưu số lớn nhất, nhỏ nhất.
- GV: Trỡnh bày phần khai bỏo chương trỡnh 
- HS theo dừi
- GV cho HS đọc phần ghi nhớ.
- HS: Đọc ghi nhớ
3. Tỡm giỏ trị lớn nhất và nhỏ nhất của dóy số: 
* Thuật toỏn tỡm giỏ trị lớn nhất ( Max ) của dóy số nguyờn nhập từ bàn phớm:
Bước 1: Nhập N và dóy A1,  , An;
Bước 2: Max ơ A1;
Bước 3: Với i từ 2 đến N thực hiện: Nếu Max < A1 thỡ Max ơ Ai;
Bước 4: Đưa ra màn hỡnh giỏ trị Max rồi kết thỳc
Vớ dụ 3: (SGK)/ Tr 78.
* Phần khai bỏo chương trỡnh cú thể như sau:
Program MaxMin;
Uses crt;
Var i, n, Max, Min : integer;
 A : array [1..100] of integer;
{Phần thõn chương trỡnh sẽ tương tự dưới đõy:}
Begin 
 Clrscr;
 Write ( ‘ Hay nhap do dai cua day so, N = ‘); readln (n);
 Writeln ( Nhap cac phan tu cua day so: m’);
 For i:= 1 to n do 
 Begin
 Write ( ‘ a[ , i , ] = ‘); readln (a[ i ] );
 End;
 Max:= a[1]; Min:= a[1];
 For i:= 2 to n do 
 Begin if Max < a[ i ] then Max:= a[ i ];
 if Min < a[ i ] then Min:= a[ i ];
 End;
 Write ( ‘ So lon nhat la Max = ‘ Max); 
 Write ( ‘ So nho nhat la Min = ‘ Min);
 readln (n);
End. 
** GHI NHỚ: (SGK)/ Tr 79.
4- Dặn dũ: - Về nhà học bài;
 - Làm cỏc Cõu hỏi và BTcũn lại: sgk/ Tr 79;
 - Chuẩn bị tiết sau: Bài thực hành 7.

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

  • docBai 9 Lam viec voi day so.doc