GV: Lấy một ví dụ thực tiễn: Người mù tìm viên sỏi có kích thước lớn nhất trong một dãy các viên sỏi để gợi ý cho học sinh thuật toán tìm giá trị lớn nhất.. GV: Nêu thuật toán tìm phần t[r]
Trang 1Tiết 28: BÀI TẬP VÀ THỰC HÀNH 3 (tiết 2)
I Mục tiêu
1 Kiến thức:
- Củng cố cho học sinh kiến thức kiểu mảng
- Mô tả được cách khai báo, tham chiếu đến các phần tử của mảng,
cách nhập xuất các phần tử của mảng
- Biết giải một số bài toán tính toán, tìm kiếm đơn giản trên máy tính
2 Kỹ năng: Nâng cao kỹ năng sử dụng một số câu lệnh và một số kiểu dữ
liệu thông qua việc tìm hiểu, chạy thử các chương trình có sẵn
II Chuẩn bị
1 Giáo viên: Giáo án, SGK, sách giáo viên, phòng máy, máy chiếu.
2 Học sinh: Vở ghi, sách giáo khoa, đồ dùng học tập.
III Tổ chức các hoạt động học tập
1 Ổn định tổ chức lớp:
2. Ti n trình b i h c ến trình bài học ài học ọc
Hoạt động 1: Hướng dẫn HS thực hành
(15p)
B1: chuyển giao nhiệm vụ học tập
GV nêu yêu cầu của bài toán
Chia lớp theo nhóm thảo luận
GV: Giới thiệu nội dung thực hành:
HS: Quan sát nội dung thực hành
GV: Lấy một ví dụ thực tiễn: Người mù
tìm viên sỏi có kích thước lớn nhất trong
một dãy các viên sỏi để gợi ý cho học sinh
thuật toán tìm giá trị lớn nhất
GV: Nêu thuật toán tìm phần tử có giá trị
lớn nhất
B2: Thực hiện nhiệm vụ học tập
HS thảo luận nhóm
GV quan sát giúp đỡ HS gặp khó khăn
HS: So sánh lần lượt từ trái sang phải, giữ
lại chỉ số của phần tử lớn nhất
GV: Yêu cầu học sinh tìm hiểu chương
trình tìm chỉ số và giá trị lớn nhất
- Chiếu chương trình ví dụ, sách giáo khoa
trang 64
- Hỏi: Vai trò của biến j trong chương
trình?
HS: Giữ lại chỉ số của phần tử có giá trị
lớn nhất
GV: Nếu muốn tìm phần tử lớn nhất với
Bài 2: Viết chương trình tìm phần tử có giá trị lớn nhất của mảng và in ra màn hình chỉ số và giá trị của phần tử tìm được Nếu
có nhiều phần tử có cùng giá trị lớn nhất thì chỉ đưa ra phần tử có chỉ số nhỏ nhất
Chương trình như sau:
Program timmax;
Uses crt;
Var A: array[1 250] of integer;
n,i,max,csmax: Integer;
Begin clrscr;
Write('Nhap n = ');
Readln(n);
For i:= 1 to n do Begin
Write('a[',i,'] = ');
readln(a[i]);
End;
max:= a[N];
csmax:= 1;
For i:= n-1 downto 1 do
If a[i] > max then Begin
max:= a[i];
csmax:=i;
End;
Writeln('Gia tri lon nhat: ',max);
Trang 2chỉ số nhỏ nhất ta sửa ở chỗ nào?
B3: Báo cáo kết quả thảo luận
Các nhóm báo cáo kết quả thảo luận
HS: Duyệt chương trình từ n-1 đến 1 GV:
Đặt yêu cầu mới: Viết chương trình đưa ra
các chỉ số của các phần tử có giá trị lớn
nhất
HS: Theo dõi yêu cầu, suy nghĩ các câu
hỏi định hướng để viết chương trình
GV: Cần giữ lại đoạn chương trình tìm giá
trị lớn nhất không?
HS: Có
GV: Cần thêm lệnh nào nữa?
HS: Lệnh để in ra các chỉ số có giá trị bằng
giá trị lớn nhất tìm được
GV: Vị trí thêm các lệnh đó?
Sau khi tìm được giá trị lớn nhất
B4: Đánh giá kết quả thực hiện nhiệm vụ
học tập
GV nhận xét kết quả thực hiện nhiệm vụ
của các nhóm và chính xác hóa kiến thức
Hoạt động 2: Học sinh thực hành (25p)
GV: Yêu cầu Viết chương trình hoàn
thiện
- Yêu cầu học sinh nhập dữ liệu vào của
giáo viên và báo kết quả
- Đánh giá kết quả của học sinh
- Soạn chương trìnhvào máy Thực hiện
chương trình và thông báo kết quả
- Nhập dữ liệu vào và thông báo cho
giáo viên dữ liệu ra
Writeln('chi so ptu lon nhat: ',csmax); Readln;
End.
4 Tổng kết và hướng dẫn học tập ở nhà (05p)
* Củng cố
Một số thuật toán cơ bản:
+ Tìm tổng các phần tử thỏa mãn điều kiện nào đó
+ Đếm số các phần tử thỏa mãn điều kiện nào đó
+ Tìm phần tử lớn nhất, nhỏ nhất
* Câu hỏi và bài tập về nhà.
- Xem nội dung của bài thực hành số 4, sách giáo khoa, trang 65