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ử đó.. các phần tử của mảng đượ
Trang 1Tuầ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 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
Trang 2tự" 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
Trang 3cho 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
Trang 4Hoạt động 3: Tìm giá trị lớn nhất và nhỏ nhất của dãy sè
- 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ố:
Trang 51 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.