Giáo án Tin học 8 - Bài 9: Làm việc với dãy số

-Làm quen với việc khai báo và sử dụng các biến mảng.

-Ôn luyện cách sử dụng câu lệnh lặp for.do.

-Củng cố các kĩ năng đọc, hiểu và chỉnh sửa chương trình.

-Việc gán giá trị, nhập giá trị và tính toán với các giá trị của một phầntử trong biến mảng được thực hiện thông qua chỉ số tương ứng của phần tử đó.

 

doc 4 trang Người đăng nguyenphuong Lượt xem 1758Lượt tải 0 Download
Bạn đang xem tài liệu "Giáo án Tin học 8 - Bài 9: Làm việc với dãy số", để 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: 27/02/09
Tiết 39-40
	 Làm việc với dãy số
I.Mục tiờu: 
-Làm quen với việc khai báo và sử dụng các biến mảng.
-Ôn luyện cách sử dụng câu lệnh lặp for....do.
-Củng cố các kĩ năng đọc, hiểu và chỉnh sửa chương trình.
-Việc gán giá trị, nhập giá trị và tính toán với các giá trị của một phầntử trong biến mảng được thực hiện thông qua chỉ số tương ứng của phần tử đó.
II.Chuẩn bị của GV, HS
	1. Chuẩn bị của GV:Giáo án máy chiếu
	2. Chuẩn bị của HS:đò dùng học tập
III. Tiến trỡnh lờn lớp:
 1. Ổn định lớp : kiểm tra lớp
 2.Kiểm tra bài cũ:
Câu lệnh lặp while.....do có dạng như thế nào?
while do 
Câu lệnh này được thực hiện như thế nào?
Kiểm tra điều kiện. 
Nếu điều kiện sai, câu lệnh sẽ bị bỏ qua và chuyển sang câu lệnh tiếp theo trong chương trình. Nếu điều kiện đúng thực hiện câu lệnh và quay lại bước.kiểm tra điều kiện
3. Bài mới:
Hoạt động của giáo viên và học sinh
Nội dung
- GV: yờu cầu HS đọc vớ dụ 1
- GV: Ví dụ như trong Pascal ta cần nhiều câu lệnh khai báo và nhập dữ liệu dạng sau đây, mỗi câu lệnh tương ứng với điểm của một học sinh
Var Diem_1, Diem_2, Diem_3,... : real;
Read(Diem_1);Read(Diem_2), Read(Diem_3); ...
Giả sử chúng ta có thể lưu nhiều dữ liệu có liên quan với nhau (như Diem_1, Diem_2, Diem_3,... ở trên) bằng một biến duy nhất và đánh "số thứ tự" cho các giá trị đó, 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 hơn, chẳng hạn: 
Với i = 1 đến 50: hãy nhập Diem_i; 
Với i = 1 đến 50: hãy so sánh Max với Diem_i;
Từ hai ví dụ trên, có thể thấy 
Hình 41
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 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ụ 2 cũng cho thấy rằng, chúng 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ử đó. Chẳng hạn, trong câu lệnh trên Diem[i] là phần tử thứ i của biến mảng Diem.
- GV: . Để làm việc với các dãy số nguyên hay số thực, chúng ta phải khai báo biến mảng có kiểu tương ứng trong phần khai báo của chương trình. 
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ử.
- GV: Cách khai báo đơn giản một biến mảng trong ngôn ngữ Pascal như sau:
var Chieucao: array[1..50] of real;
var Tuoi: array[21..80] of integer;
Với câu lệnh thứ nhất, ta đã khai báo một biến có tên Chieucao gồm 50 phần tử, mỗi phần tử là biến có kiểu số thực. Với câu lệnh khai báo thứ hai, ta có biến Tuoi gồm 60 phần tử (từ 21 đến 80) có kiểu số nguyên. 
Cách khai báo và sử dụng biến mảng như trên có lợi gì? 
Trước hết, có thể thay rất nhiều câu lệnh nhập và in dữ liệu ra màn hình bằng một câu lệnh lặp. Chẳng hạn, ta có thể viết
để nhập điểm của các học sinh. 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 hai câu lệnh là đủ và kết quả đạt được là như nhau.
Ta còn có thể sử dụng biến mảng một cách rất hiệu quả trong xử lí dữ liệu. Để so sánh
điểm của mỗi học sinh với một giá trị nào đó, ta cũng chỉ cần một câu lệnh lặp, chẳng hạn
Điều này giúp tiết kiệm rất nhiều thời gian và công sức viết chương trình. 
Hơn nữa, mỗi học sinh có thể có nhiều điểm theo từng môn học: điểm Toán, điểm Văn, điểm Lí,... Để xử lí đồng thời các loại điểm này, ta có thể khai báo nhiều biến mảng:
Khi đó, ta cũng có thể xử lí điểm thi của một học sinh cụ thể (ví dụ như tính điểm trung bình của Lan, tính điểm cao nhất của Châu,...) hoặc tính điểm trung bình của cả lớp,...
Gv đưa ra thuật toán tìm Max của dãy số nguyên
được nhập vào từ bàn phím
Học sinh đọc và nghiên cứu tìm hiểu ý nghĩa từng câu lệnh trong chương trình
Trong chương trình này, chúng ta hãy lưu ý điểm sau: Số tối đa các phần tử của mảng (còn gọi là kích thước của mảng) phải được khai báo bằng một số cụ thể (ở đây là 100, mặc dù số các số nhập vào sau này có thể nhỏ hơn nhiều so với 100).
y/c hs đọc ghi nhớ (sgk)
1, Dãy số và biến mảng
 Ví dụ 1. Giả sử chúng ta cần viết chương trình nhập điểm kiểm tra của các học sinh trong một lớp và sau đó in ra màn hình điểm số cao nhất. 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 học sinh. 
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 thứ tự đượ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 mảng. 
Giá trị của biến mảng là một mảng, tức 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
Cách khai báo mảng trong Pascal như sau:
Tên mảng : array[.. ] of 
trong đó chỉ số đầu và chỉ số cuối là hai số nguyên hoặc biểu thức nguyên thoả mãn chỉ số đầu ≤ chỉ số cuối và kiểu dữ liệu có thể là integer hoặc real.
Ví dụ 2. Tiếp tục với ví dụ 1, thay vì khai báo các biến Diem_1, Diem_2, Diem_3,... để lưu điểm số của các học sinh, ta khai báo biến mảng Diem như sau: 
var Diem: array[1..50] of real;
For i:=1 to 50 do readln(Diem[i]);
 For i:=1 to 50 do 
if Diem[i]>8.0 then writeln('Gioi');
var DiemToan: array[1..50] of real;
var DiemVan: array[1..50] of real;
var DiemLi: array[1..50] of real;
hay
var DiemToan, DiemVan, DiemLi: array[1..50] of real;
Nhập giỏ trị cho biến mảng:
-Gỏn trực tiếp bằng lệnh gỏn: vớ dụ: A[1] := 8, A[2] := 9.5.
-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])
*viết ra màn hỡnh những điểm số lớn hơn hoặc bằng 9
For i:=1 to 50 do 
if Diem[i] >= 9 then writeln(Diem[i]);
3: Tìm giá trị lớn nhất và nhỏ nhất của dãy số
Ví dụ 3. Viết chương trình nhập N số nguyên từ bàn phím và in ra màn hình số nhỏ nhất và số lớn nhất. N cũng được nhập từ bàn phím (sgk)
Thuật toỏn tỡm Max của dóy số nguyờn nhập từ bàn phớm như sau:
Bước 1. Nhập N và dóy A1,..., An
Bước 2. Max ơ A1
Bước 3. Lần lượt gỏn giỏ trị từ 2 đến N cho i. Với mỗi giỏ trị của i thỡ thực hiện: Nếu Max <Ai thỡ MaxơAi
Bước 4. Đưa ra màn hỡnh giỏ trị Max rồi kết thỳc.
viết cõu lệnh thực hiện cỏc bước nhập N, nhập cỏc phần tử của mảng, tỡm Max, in Max ra màn hỡnh.
program P_Max;
Var
 i, N, Max : integer;
 A: array[1..100] of integer;
Begin
	{Nhap N}
write('Hay nhap do dai cua day so, N ='); readln(N);
	{Nhap day so}
writeln('Nhap cac phan tu cua day so:');
 For i:=1 to N do
 Begin
 write('a[',i,']='); readln(a[i]);
 End;
	{Tim Max}
 Max:=a[1];
 for i:=2 to n do if Max<a[i] then Max:=a[i];
	{Hien thi Max ra man hinh}
 write('So lon nhat la Max = ',Max);
 readln;
End.
Ghi nhớ(sgk/79)
IV. Củng cố: 
Bài tập 2sgk Hãy tìm lỗi trong các câu lệnh sau: 
a)Lỗi dấu , giữa chỉ số đầu và chỉ số cuối
b) lỗi chỉ số cuối là số thực
c)chỉ số đầu và chi số cuối phải là 2 số nguyên. 
Bài 4 sgk
V. Dặn dò, hướng dẫn học sinh học tập ở nhà:
 Học bài và xem trước nội dung bài thự hành 7
 ôn lại bài và làm các câu hỏi 1, 2, 3, 4 trang 79 Sgk.

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

  • docBài 9. Làm việc với dãy số (3).doc