Giáo án Tin học 11 §18: Ví dụ về cách viết và sử dụng chương trình con

§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, .

 

doc11 trang | Chia sẻ: binhan19 | Ngày: 20/03/2019 | Lượt xem: 139 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Giáo án Tin học 11 §18: Ví dụ về cách viết và sử dụng chương trình con, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trê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 CHÖÔNG VI: CHÖÔNG TRÌNH CON VAØ LAÄP TRÌNH COÙ CAÁU TRUÙC ---------------------------- §18: VÍ DUÏ VEÀ CAÙCH VIEÁT VAØ SÖÛ DUÏ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 đề. 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. Phương pháp/kỹ thuật dạy học: Đàm thoại, phát hiện. Hình thức tổ chức hoạt động: Thảo luận nhóm. Phương tiện dạy học: SGK, máy tính, máy chiếu. 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: Mục tiêu: Học sinh học về sử dụng tham số trong chương trình con. Phương pháp/kỹ thuật dạy học: Đàm thoại, phát hiện. Hình thức tổ chức hoạt động: Thảo luận nhóm. Phương tiện dạy học: SGK, máy tính, máy chiếu. 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 [()]; [] Begin [] 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: 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. Phương pháp/kỹ thuật dạy học: Rèn tư duy phân tích, tổng hợp Hình thức tổ chức hoạt động: Làm việc cá nhân, thảo luận nhóm. Phương tiện dạy học: SGK, máy tính, máy chiếu. 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 CỦA HS NỘI DUNG 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: 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. Phương pháp/kỹ thuật dạy học: Rèn tư duy phân tích, tổng hợp Hình thức tổ chức hoạt động: Làm việc cá nhân, thảo luận nhóm. Phương tiện dạy học: SGK, máy tính, máy chiếu. 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: - 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 HS: Nghe giảng và ghi chép bài. HS: Suy nghĩ và viết thủ tục. - Phân loại tham số hình thứ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: 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. Phương pháp/kỹ thuật dạy học: Rèn tư duy phân tích, tổng hợp. Hình thức tổ chức hoạt động: Vấn đáp Phương tiện dạy học: SGK, máy tính, máy chiếu. 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. - Chuẩn bị trước bài tập và thực hành số 6. 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 §18: VÍ DUÏ VEÀ CAÙCH VIEÁT VAØ SÖÛ DUÏNG CHÖÔNG TRÌNH CON (tieá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ũ: 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ụ. Phương pháp/kỹ thuật dạy học: Đàm thoại, vấn đáp Hình thức tổ chức hoạt động: Làm việc cá nhân, thảo luận nhóm. Phương tiện dạy học: SGK, máy tính, máy chiếu. 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. Nộ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: 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 Phương pháp/kỹ thuật dạy học: Đàm thoại, phát hiện. Hình thức tổ chức hoạt động: Thảo luận nhóm. Phương tiện dạy học: SGK, máy tính, máy chiếu. 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 [(DS tham số)]:; 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: :=; 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 [(DS tham số)]:; [] Begin [] :=; 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: :=; C. VẬN DỤNG, TÌM TÒI: Hoạt động 3: 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. Phương pháp/kỹ thuật dạy học: Rèn tư duy phân tích, tổng hợp Hình thức tổ chức hoạt động: Làm việc cá nhân, thảo luận nhóm. Phương tiện dạy học: SGK, máy tính, máy chiếu. 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 y0 do begin sodu:=x mod y; x:=y; y:=sodu; end; UCLN:=x; End; GV: 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. 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 MN do If M>N then M:= M-N Else N:=N-M; UCLN:=M; End; - Ví dụ. UCLN(18,4)=2 - Để 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 y0 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. Hoạt động 4: Mục tiêu: Minh họa cho cấu trúc của hàm. Phương pháp/kỹ thuật dạy học: Rèn tư duy phân tích, tổng hợp Hình thức tổ chức hoạt động: Làm việc cá nhân, thảo luận nhóm. Phương tiện dạy học: SGK, máy tính, máy chiếu. 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. Hoạt động 5: Mục tiêu: Học sinh củng cố kiến thức. Phương pháp/kỹ thuật dạy học: Rèn tư duy phân tích, tổng hợp. Hình thức tổ chức hoạt động: Vấn đáp Phương tiện dạy học: SGK, máy tính, máy chiếu. 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 - Qua bài học ngày hôm nay cần nắm được những nội dung sau: + Cấu trúc của thủ tục. + Cách viết và sử dụng thủ tục. - Một số câu hỏi trắc nghiệm: Câu 1: Cách viết phần đầu hàm nào sau đây là đúng: A. Function UCLN(x,y):real; B. Function UCLN(x,y:real):real; C. Function UCLN(x:integer, y:real):real; D. Function UCLN(x:integer, y:real): array[1..50] of real; Câu 2: Cho khai báo tiêu đề của một hàm: Function F(k:integer):string; Begin If k mod 2=0 then F:=’chan’ else F:=’le’; End; Muốn gán cho x:=F(5); thì biến x phải khai báo kiểu gì? A. Var x: string; B. Var x: real; C. Var x: integer; D. Var x: char; Câu 3: Cho khai báo hàm: Function F(x:integer): integer; Begin F:=x*x; End; Giá trị của F(5) là: A. 10 B. 0 C. 55 D. 25 D. HƯỚNG DẪN HỌC Ở NHÀ - Ôn tập lại kiến thức về hàm và thủ tục để chuẩn bị cho tiết bài tập.

Các file đính kèm theo tài liệu này:

  • docBai 18 Vi du ve cach viet va su dung chuong trinh con_12303718.doc
Tài liệu liên quan