Bài tập: Hướng dẫn làm bài tập 5 sgk BTVN: Viết chương trình nhập một dãy số nguyên gồm n số và tính trung bình cộng của dãy số đó, n nhập từ bàn phím..[r]
Trang 1Tiết: 55 Lớp 8 1-2
I.Mục đích, yêu cầu:
- Biết được khái niệm mảng một chiều ;
- Biết cách khai báo mảng, nhập, in và truy cập các phần tử của mảng ;
- Hiểu thuật toán tìm số lớn nhất, số nhỏ nhất của một dãy số
II Chuẩn bị:
Gv: giáo án, bảng phụ
HS: SGK, vở ghi…
III Bài mới:
1 ổn định tổ chức
2 Bài mới:
Hoạt động 1: Dãy số và biến mảng.
?Viết thủ tục khai báo và nhập dữ liệu cho
bài toán ví dụ sau.
Gv : Ghi đề bài lên bảng
Hs : Trả lời
Gv : Giả sử trong trường hợp ta nhập điểm
kiểm TBm của các môn học
? Tại sao lại phải dùng nhiều biến như
vậy ?
HS : Vì mỗi biến chỉ có thể mang một giá
trị duy nhất
Gv : Trình bày và đưa tới kết luận NNLT
đã đưa ra kiểu dữ liệu là Kiểu mảng
?Dữ liệu kiểu mảng là gì ?
Gv : Trình bày các thành phần trong mảng
Ví dụ 1: 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.
Var Diem_1, Diem_2, Diem_3, :real;
Read(Diem_1); Read(Diem_2);
Read(Diem_3);
- Dữ liệu kiểu mảng là một tập hợp 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
+Chỉ số: số thứ tự của phần tử trong
mảng
+Kiểu dữ liệu: số nguyên, số thực.
+Biến mảng: có kiểu dữ liệu là kiểu mảng.
+Giá trị của biến mảng: dãy số.
+Giá trị của phần tử:
Hoạt động 2: Ví dụ về biến mảng.
? Để làm việc được với các biến thì chúng
ta phải làm gì để phần mềm hiểu?
Hs: Phải khai báo
Gv: Giới thiệu cách khai báo
a.Khai báo biến mảng:
Var Tênbiếnmảng : array [<chỉ số đầu>
<chỉ số cuối>] of <kiểu dữ liệu>;
Trong đó:
+ Tên biến mảng: tự đặt
Trang 2VD: Khai báo mảng biến Điểm trên cho 12
môn học
? Viết thủ tục khai báo mảng số nguyên
gồm 20 phần tử.
? Để dùng đến biến nào thì ta phải làm gì?
HS: Ta phải gọi đúng tên biến
Gv: trình bày cách truy cập phần tử
? Để tính toán được với biến thì ta phải
làm gì?
HS: Phải nhập dữ liệu từ bàn phím hoặc
gán giá trị cho biến
?Để nhập dữ liệu ta dùng thủ tục nào?
Hs: Read, readln
? Để nhập dữ liệu Diem cho 12 môn học ta
làm ntn?
HS: Read(Diem_1); Read(Diem_2);
Read(Diem_3); …
?Chúng ta thấy công việc này ntn?
HS: Lặp đi lặp lại
Gv: kết luận
Gv: trình bày cách nhập và gán dữ liệu cho
mảng
? Gán dữ liệu ta dùng lệnh gì?
?Để in dữ liệu ta dùng lệnh gì?
HS: Lệnh Write, Writeln
? Để in giá trị điểm của các môn trên
chúng ta làm ntn?
HS: Write(Diem_1); Write(Diem_2);
Write(Diem_3);…
?Chúng ta thấy công việc này ntn?
HS: Lặp đi lặp lại
Gv: kết luận
Gv: trình bày cách in giá trị dữ liệu
?Em có nhận xét gì khi chúng ta sử dụng
biến mảng thay cho việc sử dụng biến đơn.
Hs: Trả lời
GV: Kết luận
Ngoài ra trong quá trình xử lí dữ liệu biến
mảng cũng xử lí rất nhanh VD in ra màn
+ chỉ số đầu<=chỉ số cuối: số phần tử trong mảng
+kiểu dữ liệu: real, integer
VD: Var Diem:array[1 12] of real;
chieucao:array[1 50] of real;
Songuyen:array[1 20] of integer;
b.Truy cập phần tử:
Tên biến mảng[chỉ số]
VD: Diem[1]; songuyen[20]
c.Nhập dữ liệu cho mảng.
For i:=1 to 12 do read(Diem[i]);
Diem[1]:=10; Diem[5]:=7;
d.In dữ liệu
For i:=1 to 12 do write(Diem[i]);
Kết luận: Việc sd biến mảng trong chương trình giúp:
- Chương trình gọn hơn (sd vòng lặp)
- Tiết kiệm thời gian và công sức
- Tránh nhầm lẫn, sai sót
Trang 3For i:=1 to 50 do
If diem[i]>=8.0 then writeln(‘Gioi’);
Gv: Giải thích thêm tác dụng của biến
mảng
IV: Cũng cố:
Gv: nhắc lại kiến thức cần nhớ: + Khái niệm dữ liệu kiểu mảng
+ Cách khai báo, truy cập, nhập và in dữ liệu
Bài tập: Làm bài tập 2 sgk
BTVN: Làm lại các bài tập còn lại trong sgk.
I.Mục đích, yêu cầu:
- Hiểu thuật toán tìm số lớn nhất, số nhỏ nhất của một dãy số
II Chuẩn bị:
Gv: giáo án, bảng phụ
HS: SGK, vở ghi…
III Bài mới:
1 ổn định tổ chức
2.Bài cũ:
? Nêu khái niệm dữ liệu kiểu mảng và tác dụng của nó khi viết chương trình
? Cách khai báo, truy cập, nhập và in dữ liệu kiểu mảng
3 Bài mới:
Yêu cầu hs đọc ví dụ 3 sgk
? Nhắc lại thuật toán của bài toán trên
? Để làm được bài này chúng ta cần khai
báo những biến nào
HS : Biến N để nhập số các số nguyên, N
biến để lưu các số nhập vào tức là một
mảng A, biến i làm biến đếm, biến Max,
Min
?Hãy viết thủ tục khai báo chương trình.
Gọi 1 hs lên bảng làm
3.Tìm giá trị lớn nhất và nhỏ nhất của dãy.
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à 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 ;
Trang 4Gọi 1 hs lên bảng làm
?Nhắc lại thủ tục nhập điểm ở tiết trước ?
HS nhắc lại
?Hãy viết thủ tục nhập dữ liệu cho mảng A
từ bàn phím.
Gọi 1 hs lên bảng làm
Gv hướng dẫn cách viết các câu lệnh tiếp
theo
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ố:
Gv: nhắc lại kiến thức cần nhớ: + Cách khai báo, truy cập, nhập và in dữ liệu ở một bài
cụ thể
Đọc phần ghi nhớ sgk
Bài tập: Hướng dẫn làm bài tập 5 sgk
BTVN: Viết chương trình nhập một dãy số nguyên gồm n số và tính trung bình cộng
của dãy số đó, n nhập từ bàn phím