− Hiểu thuật toán tìm số lớn nhất nhỏ nhất của một dãy số.. − Hiểu và ứng dụng được thuật toán tìm số lớn nhất, số nhỏ nhất của một dãy số.. Thái độ: − Hiểu được tầm quan trọng của việc
Trang 1Tiết: 44 Ngày soạn: 27/01/2015
Ngày dự: 30/01/2015
I MỤC TIÊU:
1 Kiến thức:
− Biết cách khai báo mảng, nhập phần tử của mảng và in chúng ra màn hình
− Hiểu thuật toán tìm số lớn nhất nhỏ nhất của một dãy số
− Ôn luyện các cách sử dụng câu lệnh lặp for … do
− Hiểu và ứng dụng được thuật toán tìm số lớn nhất, số nhỏ nhất của một dãy số
− Hứng thú với học lập trình, yêu thích ngôn ngữ lập trình Pascal
2 Kỹ năng:
− Biết cách khai báo mảng và sử dụng biến mảng
− Cũng cố khả năng đọc hiểu và sửa lỗi các chương trình trong Pascal
− Vận dụng được cấu trúc dãy số trong các tình huống cụ thể
− Rèn luyện kĩ năng tìm giá trị lớn nhất và giá trị nhỏ nhất của dãy số
3 Thái độ:
− Hiểu được tầm quan trọng của việc khai báo biến mảng trong giải quyết các bài toán dãy số
− Nghiêm túc trong học tập, có tinh thần hay say phát biểu xây dựng bài, tích cực nghiên cứu tài liệu có liên quan …
II CHUẨN BỊ:
1 Chuẩn bị của giáo viên:
− Giáo án, sách giáo khoa, hình ảnh minh hoạ, nghiên cứu tài liệu
− Phương án dạy học: Giải quyết vấn đề, vấn đáp, hoạt động nhóm
2 Chuẩn bị của học sinh:
− Bút , sách, vở ghi, học bài trước khi đến lớp, xem trước nôi dung bài mới…
III HOẠT ĐỘNG DẠY HỌC:
1 Ổn định tình hình lớp: (1’)
− Kiểm tra sĩ số, nề nếp lớp học
2 Kiểm tra bài cũ: (4’)
− Câu hỏi: ? Dữ liệu kiểu mảng là gì? Hãy cho biết cách khai báo mảng trong Pascal
− Trả lời:
+ Dữ liệu kiểu mảng: là 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ố
+ Cách khai báo mảng trong Pascal:
var <tên mảng>: array[<chỉ số đầu> <chỉ số cuối>] of <kiểu dữ liệu>;
3 Giảng bài mới:
Trang 2− Gới thiệu bài mới: ( 1’)
Trong tiết trước chúng ta đã tìm hiểu khái niệm dữ liệu kiểu mảng, biết cách khai báo mảng trong ngôn ngữ lập trình Pascal và biết cách truy cập vào các phần tử của mảng Trong tiết này chúng ta sẽ tìm hiểu thuật toán
tìm giá trị lớn nhất, giá trị nhỏ nhất của một dãy số.
− Tiến trình bài dạy:
Thời
gian Hoạt động của giáo viên Hoạt động của học sinh Nội dung
33’ HĐ1: Tìm giá trị lớn nhất của dãy số 3 Tìm giá trị lớn nhất của dãy
số
Ví dụ 1: 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ố lớn nhất
và nhỏ nhất
Tìm Input, Output của bài
toán?
Để dễ hiểu hơn về thuật toán
bài này chúng ta sẽ tìm hiểu
thuật toán của bài tìm giá trị
lớn nhất
yêu cầu HS xác định lại Input
và Output của bài toán
Giáo viên nhận xét và giải
thích thuật toán này và cho ví
dụ minh hoạ
Cả lớp cùng đọc đề và xác định Input và Output của bài toán
- HS suy nghĩ và phát biểu
Input:
gồm các số a1, a2,
…, an (n ≥ 1)
Output:
nhất trong dãy a1, a2,…, an
(max=max{a1, a2,
… an}
Thuật toán:
Bước 1:MAX:= a1;
i:=1 Bước 2:Nếu ai >
MAX, MAX:= ai .
Bước 3: i:= i+1 Bước 4: Nếu i<= N thì quay lại bước 2
Bước 5: Thông báo giá trị MAX và kết thúc
Ví dụ 4(SGK trang 76)
- Input:
Số nguyên N
N số nguyên a1, a2, …, an (n ≥ 1)
- Output:
Số lớn nhất và nhỏ nhất trong dãy a1, a2, …, an
Bài toán: 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ố lớn nhất
Bài tập 1: Cho dãy số như hình vẽ dưới đây, hãy thực hiện các bước của thuật toán để tìm ra số lớn nhất
N=7
Trang 3- Em nào có thể xác định các
biến, kiểu biến và viết khai
báo biến?
- Đối với chương trình này
trước hết ta khai báo biến N
để nhập các số nguyên sẽ
được nhập vào từ bàn phím
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 vòng
lặp và biến Max để lưu giá trị
lớn nhất, min để lưu giá trị
nhỏ nhất
- Giải thích rõ ý nghĩa từng
câu lệnh cho hoc sinh hiểu
-Trong chương trình này,
chúng ta hãy lưu ý một số
điểm sau: Số tối đa các phần
tử của mảng phải được khai
báo bằng một số cụ thể (Ở
đây là 100)
thuật toán
Var i, n, Max :
Integer;
A : array[1 100]
of integer;
Dãy A 5 3 4 7 6 15 9
i>n ? s s s s s s s
Ai>Max s s s đ s đ s Max 5 5 5 7 7 15 15
Chương trình tìm số lớn nhất, nhỏ nhất cảu dãy số
Program Max_Min;
Uses crt;
Var n,I,max,min: integer;
A : array[1 100] of ineteger; begin
clrscr;
write('Hay nhap do dai cua day
so, = '); 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
Trang 4= ',Min);
readln;
end
Qua tiết học này HS cần nắm
rõ các nội dung sau:
+ Thuật toán tìm số lớn nhất
và nhỏ nhất của dãy số
+ Từ thuật toán đó để viết
đúng chương trình
Bài 1: Các lệnh khai
báo biến mảng trong Pascal
sau đây đúng hay sai? Hãy
giải thích.
A Sai, vì thừa một dấu chấm
(Giữa chỉ số đầu và chỉ số
cuối là dấu )
B Sai, vì n phải là số cụ thể
(Chỉ số phải là số cụ thể)
C Đúng
D Sai, vì chỉ số đầu phải nhỏ
hơn hoặc bằng chỉ số cuối
E Sai, vì các chỉ số phải viết
trong ngoặc vuông.
Bài 2: Câu lệnh điều kiện
nào sau đây tìm giá trị lớn
nhất của dãy số?
A If Max > a[i] then
Max :=a[i] ;
B If Max >= a[i] then
Max :=a[i] ;
C If Max = a[i] then
Max :=a[i] ;
D If Max < a[i] then
Max :=a[i] ;
Lắng nghe
4 Dặn dò học sinh chuẩn bị tiết học tiếp theo: (1’)
- Chuẩn bị bài mới: Xem nội dung bài thực hành 7: “Xử lý dãy số trong chương trình”
- Làm các bài tập: 2; 5 trang 78 SGK
IV RÚT KINH NGHIỆM, BỔ SUNG:
Trang 5
Quy Nhơn, ngày … tháng … năm 2015 Quy Nhơn, ngày … tháng … năm 2015