MỤC TIÊU:
1.1. Kiến thức:
- HS biết: Được khái niệm mảng một chiều
- HS hiểu: Cách khai báo mảng, nhập, in, truy cập các phần tử của mảng.
1.2. Kỹ năng:
- HS thực hiện được: Viết, dịch được đoạn chương trình có sử dụng biến mảng ở các bài toán đơn giản.
- HS thực hiện thành thạo: Viết, dịch được đoạn chương trình.
1.3. Thái độ:
4 trang |
Chia sẻ: vivian | Lượt xem: 1819 | Lượt tải: 5
Bạn đang xem nội dung tài liệu Bài giảng Bài 9: Làm việc với dãy số (tiếp theo), để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Tuần :TPPCT:
Ngày dạy:./../..
Bài 9:
LÀM VIỆC VỚI DÃY SỐ (tt)
1- MỤC TIÊU:
1.1. Kiến thức:
- HS biết: Được khái niệm mảng một chiều
- HS hiểu: Cách khai báo mảng, nhập, in, truy cập các phần tử của mảng.
1.2. Kỹ năng:
- HS thực hiện được: Viết, dịch được đoạn chương trình có sử dụng biến mảng ở các bài toán đơn giản.
- HS thực hiện thành thạo: Viết, dịch được đoạn chương trình.
1.3. Thái độ:
- Thói quen: Học hỏi, nghiêm túc khi sử dụng phòng máy
- Tính cách: Có thái độ đúng đắn trong nhận thức về bộ môn
2- NỘI DUNG HỌC TẬP:
- Dãy số và biến mảng.
3- CHUẨN BỊ:
3.1 Giáo viên: Giáo án, sách giáo khoa, một số bài tập pascal, phòng máy tính.
3.2. Học sinh: Sách giáo khoa, vở ghi bài, hăng say xây dựng bài.
4- TỔ CHỨC CÁC HOẠT ĐỘNG HỌC TẬP:
4.1. Ổn định tổ chức và kiểm diện (3p):
4.2. Kiểm tra miệng:
4.3. Tiến trình bài học:
HOẠT ĐỘNG CỦA GV VÀ HS
NỘI DUNG BÀI HỌC
Hoạt động 1 (10p): Ví dụ về mảng (tt)
GV: Đưa ra cách viết câu lệnh lặp để so sánh điểm toán với 1 giá trị nào đó?
GV: Cách khai báo và sử dụng biến mảng như ví dụ 2 có lợi gì?
GV: đưa ra một số ví dụ.
GV: Gọi 1 HS phân tích ý nghĩa của câu lệnh khai báo trên.
GV: mỗi HS có thể có nhiều loại điểm khác nhau, để xử lý đồng thời các loại điểm thì làm thế nào?
GV: Tương tự vài bạn khác hãy khai báo biến mảng có tên DiemLi, DiemVan?
GV: Trong thực tế ta nên khai báo gộp như sau:
GV: Sau khi khai báo một mảng, ta có thể làm việc với các phần tử của nó như một biến thông thường.
Hoạt động 2 (27p): Tìm giá trị lớn nhất và nhỏ nhất của dãy số.
GV: Cho HS đọc ví dụ 3 trong sách giáo khoa.
GV: Giải thích thuật toán tìm giá trị lớn nhất:
+ Đầu tiên gán giá trị số thứ nhất của dãy số cho Max (ban đầu tạm thời coi số thứ nhất là số lớn nhất tạm thời)
+ So sánh số lớn nhất tạm thời này với số thứ 2, nếu số thứ 2 lớn hơn số thứ nhất tạm thời – max thì gán giá trị của số thứ 2 cho max. Như vậy, đến thời điểm này, Max là số lớn nhất của số thứ 1 và thứ 2.
+ Cứ tiếp tục như vậy, đem so sánh max với tất cả các số còn lại, gặp số nào lớn hơn Max thì lại gán giá trị của số đó cho Max. Sau khi so sánh đến số cuối cùng của dãy số thì Max chính là giá trị lớn nhất của dãy số.
GV: Cho HS thảo luận nhóm để nghiên cứu cách viết chương trình dựa trên các câu hỏi:
+ Hãy nêu yêu cầu của chương trình ?
+ Trong chương trình đã khai báo những biến gì? Nêu tác dụng của từng biến? phân loại từng biến ?
+ Theo em mảng A có bao nhiêu phần tử ?
+ Hãy giải thích các câu lệnh trong phần thân của chương trình.
Các nhóm HS thảo luận và cử đại diện trả lời.
GV: Trong chương trình vừa nghiên cứu ta
Chú ý: Số phần tử của mảng phải được khai báo bằng số cụ thể.
GV: Nhấn mạnh: Qua ví dụ ta thấy sự khác biệt giữa người và máy tính khi giải quyết công việc. Trong nhiều tình huống con người giải các bài toán hiệu quả hơn máy tính nhiều. Còn máy tính lại hơn hẳn con người đối với những tính toán số lớn hoặc với số nhiều
2. Ví dụ về mảng (tt)
For i:=1 to 50 do
If Diem[i] > 8.5 then Writeln(’Gioi’);
HS trả lời: tiết kiện rất nhiều thời gian và công sức viết chương trình.
Ví dụ 3a,
Giả sử lớp em có 50 bạn, em thử khai báo một biến mảng có tên DiemToan?
Var DiemToan: array[1..50] of real;
HS trả lời.
HS trả lời: khai báo nhiều mảng
2 HS khai báo:
Var DiemVan: array[1..50] of real;
Var DiemLy: array[1..50] of real;
Lưu ý: để xử lý dữ liệu đồng thời ta khai báo:
-Var DiemToan, DiemVan, DiemLy: array[1..50] of real;
Ta có thể xử lí điểm thi của một HS cụ thể như: Tính điểm trung bình của Lan, Tính điểm trung bình cao nhất của Châu
- Sau khi khai báo một mảng, ta có thể làm việc với các phần tử của nó như một biến thông thường như: gán giá trị, đọc giá trị và thực hiện tính toán với các giá trị đó.
3. Tìm giá trị lớn nhất và nhỏ nhất của dãy số.
- Ví dụ 3: SGK/78
Thuật toán tìm giá trị lớn nhất.
HS thảo luận thuật toán.
+ Đầu tiên gán giá trị số thứ nhất của dãy số cho Max (ban đầu tạm thời coi số thứ nhất là số lớn nhất tạm thời)
+ So sánh số lớn nhất tạm thời này với số thứ 2, nếu số thứ 2 lớn hơn số thứ nhất tạm thời – max thì gán giá trị của số thứ 2 cho max. Như vậy, đến thời điểm này, Max là số lớn nhất của số thứ 1 và thứ 2.
+ Cứ tiếp tục như vậy, đem so sánh max với tất cả các số còn lại, gặp số nào lớn hơn Max thì lại gán giá trị của số đó cho Max. Sau khi so sánh đến số cuối cùng của dãy số thì Max chính là giá trị lớn nhất của dãy số.
program MaxMin;
uses crt;
Var
i, n, Max, Min: integer;
A: array[1..100] of integer;
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.
Qua ví dụ ta cần lưu ý: Số các phần tử của mảng (kích thước của mảng) cần được khai báo bằng một số cụ thể.
4.4. Tổng kết (2p):
* Củng cố:
GV yêu cầu HS trả lời các câu hỏi:
- Nêu cách khai báo mảng trong Pascal ?
- Xem lại nội dung ví dụ 2.
* Rút gọn kiến thức: HS học nội dung bài học.
4.5. Hướng dẫn học tập (3p):
* Đối với bài học tiết này:
- HS nắm rõ cách khai báo mảng?
* Đối với bài học tiếp theo:
- HS chuẩn bị trước tiết “ Bài tập”
File đính kèm:
- Tiet 57.doc