Tuần 31: Tiết 61: Làm Việc Với Dãy Số
I. Mục tiêu
1. Ki ế n th ứ c
• Làm quen với việc khai báo và sử dụng các biến mảng.
• Cách sử dụng câu lệnh lặp for…do trong cấu trúc biến máng
• Củng cố các kó năng đọc, hiểu và chỉnh sửa chương trình.
2. K ỹ n ă ng
- Gán giá trò, nhập 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 được thực
hiện thông qua chỉ số tương ứng của phần tử đó.
3. Thái độ
II.Chuẩn bị của GV, HS
1. Chuẩn bị của GV: máy chiếu, giáo án
2. Chuẩn bị của HS:bài cũ, sách, vở
III. Tiến trình lên lớp:
1. Ổn định lớp : 1’
2.Kiểm tra bài cũ: 5’
Câu lệnh lặp while…do có dạng như thế nào?
while <điều kiện> do <câu lệnh>;
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.
3. Bài mới:
1. Đặt vấn đề:
Hoạt động của thầy: Hoạt động của trò:
Hoạt động 1: Dãy số và biến mảng(15’)
- GV: gọi hs đọc ví dụ 1
hs đọc
- 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ứ
1.Dãy số và biến mãng
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;
? Thế nào là dữ liệu của 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ử.
Gv nhận xét
? Các phần tử trong mảng được gán các giá trò
giống nhau và khác nhau được không? Vì sao?
các phần tử của mảng được gán giá trò có thể
giống và khác nhau/ vì mỗi phần tử của mảng lưu
trữ một giá trò(chỉ số) riêng biệt
Gv nhận xét
? Các phần tử trong mảng có cùng một kiểu dữ
liệu hay các kiểu dữ liệu khác nhau? Vì sao?
các phần tử có cùng một kiểu dữ liệu vì nó
thuộc kiểu dữ kiệu của biến mảng
Gv nhận xét
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. Có thể
nói rằng, khi sử dụng biến mảng, về thực chất
chúng ta sắp thứ tự theo chỉ số các biến có
cùng kiểu dưới một tên duy nhất.
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.
Hoạt động 2: Ví dụ về biến mảng (20’)
GV cho HS đọc phần 2.
? Cấu trúc khai báo mảng trong pascal?
Tên mảng: Array [chỉ số đầu chỉ số cuối] of kiểu dữ
liệu
Chỉ số đầu <= Chỉ số cuối
Kiểu dữ liệu là kiểu nguyên hoặc kiểu thực
Xét ví dụ 2:
Gv cho hs đọc kó Ví dụ 2và thảo luận theo nhóm 2 hs một
nhóm
? Hãy mô tả cách lưu trữ dữ liệu trong các phần tử của
mảng?dựa vào hình 41 hãy nêu thứ tự các phần tử trong
từng mảng?Nếu lấy phần tủ thứ 2 của mảng điểm lí cộng
cho phần tử thứ 2 của điểm văn thì có giá trò bao nhiêu?
Hs: mỗi phần tử lưu trữ các giá trò riêng biệt
Ví dụ ta có mảng lưu trữ điểm lì thì phần tử thứ nhất lưu trữ
số 8 và phần tử thứ 2 lưu trữ số 6 và theo thứ tự cho tới khi
phần tử cuối cùng của mảng
Giá trò là 14
GV chiếu một bài toán thực hiện vòng lặp For to…do và
2. Ví dụ về biến mảng
Cách khai báo mảng trong Pascal
Tên mảng: Array [chỉ số đầu chỉ
số cuối] of kiểu dữ liệu
cho hs nhận xét
Chương trình:
Program vd1;
Var i,x: interger;
Begin
For i:= 1 to 5 do begin
Write(‘ ban hay nhap giá tri cho 5 so’);
readln(x) ;
end.
Write(‘ hien thò gia tri X’); write(X);
Readln;
End.
Chương trình thực hiện nhập giá trò cho biến x đúng 5 lần
Gv: chúng ta quan sát các giá trò được nhập vào là một dãy
số
? Trong chương trình ta sử dụng bao nhiêu biến để lưu trữ
giá trò cho 5 số được nhập vào?
Một biến duy nhất là X
Gv: khi ta hiển thò giá trò của X thì X sẽ hiển thò bao nhiêu
giá trò
Một giá trò cuối cùng mà ta vừa nhập vào
Gv nhận xét
Gv cho hs quan sát chương trình 2 và nhận xét
Program vd2;
Var i,x: interger;
X : array[ 1 5] of Interger;
Begin
For i:= 1 to 5 do begin
Write(‘ ban hay nhap giá tri cho 5 so’);
readln(X[i]) ;
end.
For i:=1 to 5 do begin
Write(‘ hien thò gia tri X’, i); write(X[i]);end;
Readln;
End.
Hs nhận xét
Gv nhận xét và rút ý
củng cố: nhăùc lại kiểu dữ liệu mảng là gì? Các giá trò trong mảng giống và khác nhâu được không?
Vì sao? Nhắc lại cách khai báo kiểu mảng trong Pascal?
Dặn dò: về nhà học bài và chuẩn bò các phần sau:
Xem chương trình trong ví dụ 3? Hãy giải thích từng lệnh trong chương trình và chương trình hoạt
động như thế nào
Hoạt động 3: Tìm giá trò lớn nhất và nhỏ nhất của dãy sè
Hoạt động của thầy: Hoạt động của trò:
- GV: Trước hết ta khai báo biến N để
nhập số các số nguyên sẽ được nhập
vào. Sau đó 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 một biến i làm biến đếm cho
các lệnh lặp và biến Max để lưu số
lớn nhất, Min để lưu số nhỏ nhất.
Phần khai báo của chương trình có thể
như sau:
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).
Ghi nhớ
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ự và mọi phần
tử đều có cùng một kiểu dữ liệu.
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ần tử
trong biến mảng được thực hiện thông
qua chỉ số tương ứng của phần tử đó.
Sử dụng các biến mảng và câu lệnh
lặp giúp cho việc viết chương trình
được ngắn gọn và dễ dàng hơn.
HS 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
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:');
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;
End.
IV. Củng cố:
1. 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ự và mọi phần
tử đều có cùng một kiểu dữ liệu.
2. 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ần tử trong
biến mảng được thực hiện thông qua chỉ số tương ứng của phần tử đó.
3. Sử dụng các biến mảng và câu lệnh lặp giúp cho việc viết chương trình được
ngắn gọn và dễ dàng hơn.
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.