+ 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 + Để 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 + Để xử lí đồ[r]
Trang 1Tuần 55,56 Ngày soạn:
Bài 9: Làm việc với dãy số
I./ Mụcđích yêu cầu:
-Về kiến thức:
+ Hs biết được khái niệm mảng
+ Hs hiểu được thuật tốn tìm số lớn nhất của dãy
+ Hs hiểu được thuật tốn tìm nhỏ nhất của dãy
-Về kỹ năng:Hs biết cách khai báo mảng, nhập, in, truy cập các phần tử của mảng
-Về thái độ: tích cực tìm hiểu cách làm việc với dãy, cẩn thận khi viết chương trình
II./ Phương pháp,phương tiện:
-Phương pháp đàm thoại, so sánh, phân tích, trực quan, thực nghiệm và nêu vấn đề
III./ Lưu ý sư phạm:
IV./ Hoạt động dạy học:
Hoạt động của giáo viên Hoạt động của HS Nội dung bài học
HĐ1:Kiểm tra bài cũ (5 phút)
-GV yêu cầu hs lên bảng viết lại
câu lệnh While …do…
-GV cho ví dụ và giải thích ?
HĐ2 : Dãy số và biến mảng
-GV nhận xét :
“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) ; …
-GV: 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;
1 Dãy số và biến mảng:
Ví dụ 1: (SGK)/ Tr 75
* 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ự)
2 Ví dụ về biến mảng:
Vớ dụ: (SGK)/ Tr 76
* 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 >;
Trong đĩ:
+ Chỉ số đầu và chỉ số cuối: là 2 số nguyên
Trang 2- GV nhận xét :
+ 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ử.
+ 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
+ Để 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
+ Để xử lí đồng thời các loai
điểm của từng môn học, ta có thể
khai báo nhiều mảng
+ Khi một mảng đó được khai
báo, 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ị đó
-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
+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:
+ Để nhập các số nguyên sẽ được
nhập vào, trước hết phải làm gì ?
+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 ?
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
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 đó
For i:= 1 to 50 do
If Diem [ i ] > 8.0 then writeln ( ‘ Gioi ‘ );
- Để xử lí đồng thời các loai điểm => 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, có thể :
gán giá trị, đọc giá trị và thực hiện các tính toán với các giá trị đó
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 ] );
3 Tìm giá trị lớn nhất và nhỏ nhất của dãy số:
Tìm giá trị lớn nhất ( Max ) của dãy số nguyên nhập từ bàn phớm
Thuật toán
Bước 1: Nhập N và dóy A1 , … , A n ;
Bước 2: Max A 1 ;
Bước 3: Với i từ 2 đến N thực hiện: Nếu
Max < A 1 thỡ Max A i ;
Bước 4: Đưa ra màn hình giá trị Max rồi
kết thỳc
Ví dụ 3: (SGK)/ Tr 78.
Chương trình minh họa:
Trang 3-GV:Trình bày phần khai báo
chương trỡnh …
- HS đọc ví dụ 3
+ HS: …trước hết ta khai báo
biến N
+ 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
- HS theo dừi
- GV cho HS đọc phần ghi nhớ
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 pt 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.
IV.Củng cố, dặn dò:
Củng cố - Lưu ý: Sử dụng cấu trỳc For … do phù hợp, dễ hiểu hơn cấu trúc While…do vỡ biết
trước số lần lặp
- Nhận xét rút kinh nghiệm giờ học
Về nhà - Học sinh về nhà học bài
- Làm cỏc Cõu hỏi và BTcòn lại: sgk/ Tr 79;
IV./ Rút kinh nghiệm tiết dạy