5 Sản phẩm: Học sinh nắm được những đặc điểm của hàm thông qua chương trình Max_ba_so Nội dung hoạt động HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG NỘI DUNG CỦA HS GV: Hãy xác định input, VD2: Tìm giá t[r]
Trang 1CHƯƠNG VI: CHƯƠNG TRÌNH CON VÀ LẬP TRÌNH CÓ CẤU TRÚC
-§18: VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG
CHƯƠNG TRÌNH CON
Chuẩn kiến thức, kỹ năng cần đạt của tiết học
- Về kiến thức
Học sinh cần:
Thấy được rằng: nĩi chung thủ tục cĩ cấu trúc tương tự như một chương trình
Hiểu mối liên quan giữa chương trình và thủ tục
Phân biệt được tham số giá trị và tham biến trong khai báo tham số hình thức của một thủ tục
- Về kỹ năng
Nhận biết được các thành phần trong đầu của thủ tục
Nhận biết được hai loại tham số hình thức trong phần đầu của thủ tục
Nhận biết được lời gọi thủ tục ở chương trình chính cùng các tham số thực sự
- Về tình cảm, tư tưởng
Học sinh thấy được sự cần thiết và tiện lợi của chương trình con
Làm cho học sinh yêu thích lập trình và mơn học hơn
- Phương pháp dạy học, phương tiện dạy học chủ yếu
Giáo viên: Giáo án, sách giáo khoa, bảng, phấn, tài liệu,
Học sinh: Vở ghi, sách giáo khoa tin học 11, bút,
- Định hướng hình thành năng lực
Rèn luyện phẩm chất của người lập trình như tinh thần hợp tác làm việc theo nhĩm, tuân thủ yêu cầu vì một cơng việc chung
A Khởi động
Hoạt động 1: Ví dụ đặt vấn đề.
Ngày soạn: 15/02/2018 Tiết chương trình : 46 Thời gian: 45 phút / 1 tiết Lớp : 11a7, 11a8, 11a9
Trang 2(1) Mục tiêu: Dẫn dắt học sinh đến tình huống dùng thủ tục để có thể tránh được việc lặp đi lặp lại đoạn lệnh
(2) Phương pháp/kỹ thuật dạy học: Đàm thoại, phát hiện
(3) Hình thức tổ chức hoạt động: Thảo luận nhóm
(4) Phương tiện dạy học: SGK, máy tính, máy chiếu
(5) Sản phẩm: Học sinh bước đầu hiểu được thủ tục (hay chương trình con) là một đoạn lệnh chịu trách nhiệm giải quyết một bài toán con
Nội dung hoạt động HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG
CỦA HS NỘI DUNG GV: Để vẽ được hình chữ
nhật như vậy thì ta phải
làm thế nào?
GV: Muốn vẽ thêm 3
hình chữ nhật như thế thì
ta phải làm như thế nào?
GV: Có nhận xét gì về
cách viết này?
GV: Để tránh phải viết
lặp lại nhiều lần những
câu lệnh giống nhau ta
đưa 3 câu lệnh writeln vào
một thủ tục có tên là
Ve_hcn Mỗi khi cần vẽ
một hình chữ nhật ta đưa
vào một câu lệnh gọi thủ
tục đó
HS: Suy nghĩ
và trả lời
HS: Viết thêm
9 lần câu lệnh writeln
HS: Cách viết
này làm mất nhiều thời gian
vì phải lặp lại nhiều lần những câu lệnh giống nhau
1 Cách viết và sử dụng thủ tục.
- Xét ví dụ vẽ hình chữ nhật có dạng như sau:
* * * * * * *
* *
* * * * * * *
- Ta có thể vẽ hình chữ nhật trên bằng 3 câu lệnh:
Writeln (‘* * * * * * *’); Writeln (‘* *’); Writeln (‘* * * * * * *’);
- Chương trình VD_thutuc1 gọi thủ tục Ve_hcn 3 lần để vẽ 3 hình chữ nhật:
Program VD_thutuc1;
Procedure Ve_hcn;
Begin
Writeln (‘* * * * * * *’); Writeln (‘* *’); Writeln (‘* * * * * * *’);
end;
Begin
Ve_hcn;
Writeln; writeln;
Ve_hcn;
Writeln; writeln;
Ve_hcn;
End.
B HÌNH THÀNH KIẾN THỨC VÀ LUYỆN TẬP
Hoạt động 2:
(1) Mục tiêu: Học sinh học về sử dụng tham số trong chương trình con
(2) Phương pháp/kỹ thuật dạy học: Đàm thoại, phát hiện
(3) Hình thức tổ chức hoạt động: Thảo luận nhóm
Trang 3(4) Phương tiện dạy học: SGK, máy tính, máy chiếu.
(5) Sản phẩm: Học sinh tìm hiểu được cấu trúc của thủ tục
Nội dung hoạt động HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG
CỦA HS NỘI DUNG GV: Chúng ta đã thấy được
lợi ích của việc sử dụng thủ
tục là tránh phải viết lặp đi
lặp lại một dãy lệnh nào đó
Vậy cấu trúc của thủ tục và
vị trí của nó trong chương
trình chính ra sao?
GV: Giới thiệu cấu trúc của
thủ tục
GV: Cho học sinh quan sát
chương trình có sử dụng
chương trình con và xác định
vị trí của chương trình con
GV: Thủ tục được khai báo
và mô tả trong phần khai báo
của chương trình chính, ngay
sau phần khai báo các biến
HS: Nghe
giảng và ghi chép bài
HS: Quan sát
và trả lời
a Cấu trúc của thủ tục.
- Thủ tục có cấu trúc như sau:
Procedure <tên thủ tục>[(<danh sách
tham số>)];
[<phần khai báo>]
Begin
[<dãy các lệnh>]
End;
+ Phần đầu thủ tục: gồm tên dành riêng
procedure, tiếp theo là tên thủ tục Danh
sách tham số có thể có hoặc không + Phần khai báo: dùng để xác định các hằng, kiểu, biến và cũng có thể xác định các chương trình con khác được sử dụng trong thủ tục
+ Dãy câu lệnh: được viết giữa cặp tên
dành riêng begin và end tạo thành thân
của thủ tục
Chú ý:
-Sau tên dành riêng end kết thúc chương trình chính là dấu chấm (.) còn sau end
kết thúc thủ tục là dấu chấm phẩy (;)
- Khi cần thực hiện, ta phải viết lệnh gọi thủ tục tương tự như các thủ tục chuẩn
C VẬN DỤNG, TÌM TÒI:
Hoạt động 3:
(1) Mục tiêu: Nhấn mạnh cho học sinh cách sử dụng thủ tục trong chương trình chính: Khi cần chương trình chính gọi thủ tục qua tên của nó, như gọi các thủ tục chuẩn
(2) Phương pháp/kỹ thuật dạy học: Rèn tư duy phân tích, tổng hợp
(3) Hình thức tổ chức hoạt động: Làm việc cá nhân, thảo luận nhóm
(4) Phương tiện dạy học: SGK, máy tính, máy chiếu
(5) Sản phẩm: Học sinh nắm được cách xây dựng một chương trình cụ thể
Nội dung hoạt động HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG NỘI DUNG
Trang 4CỦA HS GV: Chương trình VD_thutuc1
(sgk trang 96) chỉ vẽ được hình
chữ nhật có kích thước cố định là
7x3 Vậy nếu muốn vẽ nhiều
hình chữ nhật có kích thước khác
nhau ta làm thế nào?
GV: Để thủ tục Ve_hcn thực
hiện được điều đó ta cần có 2
tham số cho dữ liệu vào là chiều
dài và chiều rộng
GV: Các tham số d, r của thủ tục
Ve_hcn được gọi là tham trị
Trong lệnh gọi Ve_hcn(5,3) thì
tham số d được thay bởi số
nguyên 5, còn tham số r được
thay bởi số nguyên 3
GV: Trong lời gọi thủ tục
Ve_hcn(a,b), tham số d được
thay bởi giá trị hiện thời của biến
a, tham số r được thay bởi giá trị
hiện thời của biến b
GV: Để phân biệt tham biến và
tham trị, Pascal sử dụng từ khóa
var khai báo cho tham số biến
HS: Nghe
giảng và ghi chép bài
b Ví dụ về thủ tục.
- Phần đầu của thủ tục được viết như
sau:
Procedure Ve_hcn (d, r: integer);
- Chương trình mô tả đầy đủ thủ tục Ve_hcn với các tham số d (chiều dài), r (chiều rộng) để vẽ các hình chữ nhật có kích thước khác nhau (sgk trang 98)
- Trong lệnh gọi thủ tục, các tham số hình thức được thay thế bằng các tham số thực sự tương ứng là các giá
trị cụ thể được gọi là các tham số
giá trị ( tham trị).
- Trong lệnh gọi thủ tục, các tham số hình thức được thay thế bằng các tham số thực sự tương ứng là tên các biến chứa dữ liệu ra được gọi là các
tham số biến ( tham biến).
Hoạt động 4:
(1) Mục tiêu: Để giới thiệu với học sinh một thủ tục khai báo hai tham số biến
x, y thuộc kiểu integer, làm nổi bật sự khác nhau giữa tham số giá trị và tham số biến
(2) Phương pháp/kỹ thuật dạy học: Rèn tư duy phân tích, tổng hợp
(3) Hình thức tổ chức hoạt động: Làm việc cá nhân, thảo luận nhóm
(4) Phương tiện dạy học: SGK, máy tính, máy chiếu
(5) Sản phẩm: Qua kết quả chạy chương trình cho học sinh thấy được: trước và sau khi gọi thực hiện thủ tục các tham biến đã thay đổi, giá trị của tham biến sau lời gọi thủ tục là giá trị sau cùng khi kết thúc thực hiện thủ tục Sự khác nhau giữa tham số giá trị và tham số biến
Nội dung hoạt động HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG
CỦA HS
NỘI DUNG GV: HS: Nghe giảng - Phân loại tham số hình thức:
Trang 5- Khai báo var x, y:
integer xác định x, y là
tham biến kiểu nguyên
- Trong lệnh gọi
hoan_doi(a, b) thì các
tham biến x, y được thay
thế bởi các biến nguyên
tương ứng là a và b - Giá
trị của chúng thay đổi khi
thực hiện lệnh: tg:=x;
x:=y; y:=tg;
- Do đó, nếu nhập a=5 và
b=10 thì trên màn hình
xuất hiện 2 dòng:
5 10
10 5
GV: Nếu thủ tục của
chương trình được thay
bởi thủ tục:
Procedure hoan_doi(var x,
y:integer);
Tức là x là tham biến, y là
tham trị thì khi thực hiện
chương trình sẽ nhận
được kết quả là:
5 10
5 5
và ghi chép bài
HS: Suy nghĩ và
viết thủ tục
+ Tham số biến: được khai báo có từ khóa Var ở đằng trước
+ Tham số trị: khi khai báo không có
từ khóa Var
- Ví dụ về sử dụng tham biến trong chương trình con:
Program Vd_thambien1;
Uses crt;
Var a, b: integer;
Procedure hoan_doi (var x,y: integer); Var tg: integer;
Begin tg:=x;
x:=y;
y:=tg;
end;
begin clrscr;
a:=5; b:=10;
writeln (a:6, b:6);
hoan_doi (a, b);
writeln (a:6, b:6);
end.
Nhận xét:
- Giá trị của tham biến có thể thay đổi sau khi thực hiện chương trình con
- Giá trị của tham trị giống nhau tại thời điểm trước và sau khi gọi chương trình con
Hoạt động 5:
(1) Mục tiêu: Học sinh củng cố kiến thức lý thuyết cấu trúc của thủ tục trong chương trình con
(2) Phương pháp/kỹ thuật dạy học: Rèn tư duy phân tích, tổng hợp
(3) Hình thức tổ chức hoạt động: Vấn đáp
(4) Phương tiện dạy học: SGK, máy tính, máy chiếu
(5) Sản phẩm: Học sinh nắm được các kiến thức cần củng cố thông qua bài học
Nội dung hoạt động
- Cần nắm được những kiến thức sau: + Cấu trúc và vị trí của thủ tục
+ Phân biệt tham biến và tham trị
D HƯỚNG DẪN HỌC Ở NHÀ
- Làm lại các ví dụ và chạy thử trên máy
Trang 6- Chuẩn bị trước bài tập và thực hành số 6.
§18: VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG
CHƯƠNG TRÌNH CON (tiếp)
Chuẩn kiến thức, kỹ năng cần đạt của tiết học
- Về kiến thức
Học sinh cần:
Nắm được sự giống nhau và khác nhau giữa thủ tục và hàm
- Về kỹ năng
Nhận biết được các thành phần trong phần đầu của hàm
Nhận biết được câu lẹnh sử dụng hàm ở chương trình chính cùng các tham số thực sự
- Về tình cảm, tư tưởng
Học sinh thấy được sự cần thiết và tiện lợi của chương trình con
Làm cho học sinh yêu thích lập trình và mơn học hơn
- Phương pháp dạy học, phương tiện dạy học chủ yếu
Giáo viên: Giáo án, sách giáo khoa, bảng, phấn, tài liệu,
Học sinh: Vở ghi, sách giáo khoa tin học 11, bút,
- Định hướng hình thành năng lực
Rèn luyện phẩm chất của người lập trình như tinh thần hợp tác làm việc theo nhĩm, tuân thủ yêu cầu vì một cơng việc chung
A Khởi động
Hoạt động 1: Kiểm tra bài cũ:
(1) Mục tiêu: Kiểm tra kiến thức của các bài học trước (bài 18 – tiết 44) về cấu trúc của thủ tục và ví dụ
(2) Phương pháp/kỹ thuật dạy học: Đàm thoại, vấn đáp
(3) Hình thức tổ chức hoạt động: Làm việc cá nhân, thảo luận nhĩm
(4) Phương tiện dạy học: SGK, máy tính, máy chiếu
(5) Sản phẩm: Học sinh trả lời được các câu hỏi trong nội dung kiến thức của tiết học trước
Ngày soạn: 18/02/2018 Tiết chương trình : 47 Thời gian: 45 phút / 1 tiết Lớp : 11a7, 11a8, 11a9
Trang 7Nội dung hoạt động HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG
Câu 1: Nêu cấu trúc của
thủ tục?
Câu 2: Hãy phân biệt tham
biến và tham trị?
Trả lời câu hỏi 1 Trả lời câu hỏi 2
Kiến thức đã học trong bài 17: CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI
B HÌNH THÀNH KIẾN THỨC VÀ LUYỆN TẬP
Hoạt động 2:
(1) Mục tiêu: Làm nổi bật sự giống và khác nhau giữa thủ tục và hàm
(2) Phương pháp/kỹ thuật dạy học: Đàm thoại, phát hiện
(3) Hình thức tổ chức hoạt động: Thảo luận nhóm
(4) Phương tiện dạy học: SGK, máy tính, máy chiếu
(5) Sản phẩm: Học sinh hiểu được nhiều điểm giống nhau và khác nhau
Nội dung hoạt động HOẠT ĐỘNG CỦA GV HĐỘNG
CỦA HS
NỘI DUNG
GV: Nhắc lại một số hàm chuẩn đã
được học như: abs(), sqr(),
GV: Chiếu chương trình ví dụ lên
bảng Giới thiệu cho học sinh cấu trúc
của hàm và vị trí của hàm trong chương
trình chính
GV: Hàm có cấu trúc tương tự như thủ
tục, tuy nhiên có khác nhau ở phần đầu
là phải khai báo kiểu dữ liệu mà hàm
trả về:
Function <tên hàm> [(DS tham
số)]:<kiểu dữ liệu>;
Ngoài ra, trong phần thân của hàm còn
có lệnh gán giá trị cho tên hàm: <tên
hàm>:=<biểu thức>;
GV: Dựa vào cấu trúc của thủ tục, hãy
nêu cấu trúc của hàm?
HS:
Quan sát
ví dụ
HS:
Nghe giảng và ghi bài
HS: Suy
nghĩ
2 Cách viết và sử dụng hàm.
a Cấu trúc của hàm.
Function <tên hàm> [(DS tham
số)]:<kiểu dữ liệu>;
[<phần khai báo>]
Begin
[<dãy lệnh>]
<tên hàm>:=<biểu thức>;
End;
Chú ý:
- Kiểu dữ liệu mà hàm trả về chỉ có thể là : integer, real, char, boolean, string
- Trong thân hàm cần có lệnh gán giá trị cho tên hàm:
<tên hàm>:=<biểu thức>;
C VẬN DỤNG, TÌM TÒI:
Hoạt động 3:
(1) Mục tiêu: Minh họa cho những điểm giống nhau và khác nhau giữa thủ tục
và hàm
Trang 8(2) Phương pháp/kỹ thuật dạy học: Rèn tư duy phân tích, tổng hợp
(3) Hình thức tổ chức hoạt động: Làm việc cá nhân, thảo luận nhóm
(4) Phương tiện dạy học: SGK, máy tính, máy chiếu
(5) Sản phẩm: Học sinh nắm được những điểm giống nhau và khác nhau giữa thủ tục và hàm thông qua chương trình Rutgon_phanso
Nội dung hoạt động HOẠT ĐỘNG CỦA GV HOẠT
ĐỘNG CỦA HS
NỘI DUNG
GV: Hãy xác định input và output của
bài toán này?
GV: Để viết chương trình này chúng
ta sẽ sử dụng 1 hàm ƯCLN để tìm
ƯCLN của hai số M, N
Ở bài 10 tìm hiểu cấu trúc lặp, chúng
ta đã biết cách tìm ƯCLN của 2 số
nguyên dương Một em hãy nhắc lại
thuật toán tìm ƯCLN của 2 số
nguyên?
GV: Dựa vào thuật toán tìm ƯCLN
của 2 số nguyên dương đã học và
bằng cách sử dụng hàm chúng ta có
thể viết đoạn chương trình con tìm
ƯCLN của 2 số nguyên
GV: Ngoài cách viết hàm UCLN bằng
phép trừ, chúng ta có thể tìm UCLN
bằng phép chia như sau:
Function UCLN( x, y:
interger):interger;
var sodu:interger;
begin
while y<>0 do
begin
sodu:=x mod y;
x:=y;
y:=sodu;
end;
UCLN:=x;
End;
HS: Quan
sát ví dụ
HS: Nghe
giảng và ghi bài
HS: Suy
nghĩ
b Ví dụ về hàm.
VD1: Xét chương trình thực hiện việc rút gọn một phân số, trong đó
có sử dụng hàm tính ước chung lớn nhất (ƯCLN) của hai số nguyên
- Input: phân số
- Output: phân số đã rút gọn
- Đoạn chương trình con tìm ƯCLN :
Function UCLN( M,N:integer): integer);
Begin While M<>N do
If M>N then M:= M-N Else N:=N-M;
UCLN:=M;
End;
- Ví dụ
UCLN(18,4)=2
Trang 9GV: Trong toán học, muốn rút gọn
phân số ta làm thế nào?
GV: Vậy trong pascal ta làm thế nào?
GV: Chiếu chương trình đầy đủ thực
hiện việc rút gọn phân số và chạy thử
cho học sinh quan sát
HS : Quan sát.
GV: Trong chương trinh này các biến
tuso,mauso, a là biến toàn cục còn
biến sodu là biến cục bộ
Lệnh gán giá trị cho tên hàm:
UCLN:=x;
Lệnh gọi hàm:
a:=ƯCLN(tuso,mauso);
HS: Nghe giảng và ghi chép bài.
- Để rút gọn phân số trong toán học:
ta lấy tử số và mẫu số chia cho ƯCLN sẽ được phân số rút gọn
- Để rút gọn phân số trong pascal:
if a>1 then
begin
tuso:=tuso div a;
mauso:=mauso div a;
end;
- Chương trình đầy đủ:
Program rutgon_ps;
Uses crt;
Var tuso, mauso, a: integer;
Function UCLN( x, y: interger):interger;
var sodu:interger;
begin
while y<>0 do
begin
sodu:=xmod y;
x:=y;
y:=sodu;
end;
UCLN:=x;
End;
Begin
Clrscr;
Write(‘nhap tu so, mau so:’); readln(tuso,mauso);
a:=ƯCLN(tuso,mauso);
if a>1 then begin
tuso:=tuso div a;
mauso:=mauso div a; end;
writeln(‘ tuso:5, mauso:5’); end
Trang 10Hoạt động 4:
(1) Mục tiêu: Minh họa cho cấu trúc của hàm
(2) Phương pháp/kỹ thuật dạy học: Rèn tư duy phân tích, tổng hợp
(3) Hình thức tổ chức hoạt động: Làm việc cá nhân, thảo luận nhóm
(4) Phương tiện dạy học: SGK, máy tính, máy chiếu
(5) Sản phẩm: Học sinh nắm được những đặc điểm của hàm thông qua chương trình Max_ba_so
Nội dung hoạt động HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG
CỦA HS NỘI DUNG
GV: Hãy xác định input,
output của bài toán?
GV: Ví dụ có 2 số a=3,
b=8 thì số lớn nhất là 8
Vậy làm thế nào để tìm
được số lớn nhất của 2
số?
GV: Để tìm giá trị nhỏ
nhất của 3 số ta phải dùng
những biến nào và kiểu dữ
liệu gì?
GV: Chiếu chương trình
hoàn chỉnh cho học sinh
quan sát và chạy thử
GV: Quan sát chương
trình và cho biết đâu là
biến toàn cục,biến cục bộ
và tham số hình thức?
HS: a, b, c là biến toàn
cục, không có biến cục
bộ Có 2 tham số hình
thức là a, b
GV: Việc sử dụng hàm
tìm số lớn nhất trong 2 số
không chỉ để tìm giá trị
lớn nhất của 3 số mà ta có
thể tìm giá trị lớn nhất của
một dãy số
HS: So sánh giá trị của 2 số nếu a
> b thì số nhỏ nhất là a, ngược lại số nhỏ nhất
là b
HS : biến a, b, c,
kiểu dữ liệu real
HS: Suy nghĩ và
viết thủ tục
VD2: Tìm giá trị lớn nhất của 3 số thực a,
b, c nhập vào từ bàn phím, trong đó có sử dụng hàm tìm số lớn nhất trong hai số + input: 3 số thực a, b, c
+ output: giá trị lớn nhất của 3 số a, b, c
- Hàm tìm số lớn nhất sẽ được viết như sau:
Function max(a,b:real):real;
Begin
if a<b then max:=a
else max:=b;
End;
- Chương trình hoàn chỉnh:
Program max_ba_so;
Uses crt;
Var a, b, c:real;
Function max(a,b:real):real;
Begin
if a<b then max:=a
else max:=b;
End;
Begin Write(‘ nhap vao 3 so:’); readln(a, b, c); Writeln(‘ so lon nhat la:’, max(max(a,b),c);
Readln;
End