Biết cách viết lời gọi chương trình con trong thân chương trình chính Phân biệt được sự khác nhau cơ bản của hàm và thủ tục Phân biệt và sử dụng đúng biến toàn cục và biến cục bộ... Thái[r]
(1)Ngày soạn: 20/02/2012 Tiết theo PPCT: 45, 46, 47 Bài soạn: §18 VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON I MỤC TIÊU Kiến thức: Biết cấu trúc chung và vị trí thủ tục chương trình Phân biệt tham số trị và tham số biến Nắm khái niệm biến toàn cục và biến cục Kỹ Nhận biết các thành phần phần đầu thủ tục Nhận biết hai loại tham số hình thức phần đầu thủ tục Biết cách khai báo hai loại chương trình cùng các tham số hình thức chúng Biết cách viết lời gọi chương trình thân chương trình chính Phân biệt khác hàm và thủ tục Phân biệt và sử dụng đúng biến toàn cục và biến cục Thái độ ( có thể không có) Tiếp tục rèn luyện các phẩm chất người lập trình, tinh thần hợp tác, làm việc theo nhóm, tuân thủ yêu cầu vì công việc chung II ĐỒ DÙNG DẠY HỌC Chuẩn bị Giáo viên: SGK, SGV, Giáo án, các bảng phụ viết sẳn các ví dụ đề minh họa (máy vi tính và máy chiếu Projector (nếu có)) Chuẩn bị Học sinh : Sách giáo khoa, đọc bài trước nhà III HOẠT ĐỘNG DẠY- HỌC HỌAT ĐỘNG CỦA THẦY HOẠT ĐỘNG CỦA TRÒ Goïi HS kieåm tra baøi cuõ, nhaän xeùt, cho ñieåm cuï theå Trả lời câu hỏi Đưa ví dụ vẽ hình chữ nhaät daïng: ******** * * ******** Thaûo luaän vaø vieát CT: Yeâu caàu HS vieát CT YC: vieát CT veõ hình chữ nhật Program VD; Begin Write (‘ ******** ’); Writeln(‘ * * ’); Writeln(‘ ******** ’); Readln; LƯU BẢNG (2) HỌAT ĐỘNG CỦA THẦY HOẠT ĐỘNG CỦA TRÒ Chieáu CT minh hoïa veà caùch duøng thuû tuïc veõ Viết thủ tục, sau đó HCN goïi thuû tuïc laàn LƯU BẢNG End Giới thiệu cho HS nắm caáu truùc cuûa thuû tuïc HS quan saùt, theo doõi Caáu truùc cuûa thuû tuïc goàm maáy phaàn? Em haõy cho bieát vò trí phaàn: teân thuû tuïc, thủ tục nằm phần khai baùo thuû tuïc vaø phaán naøo CT chính? thaân cuûa thuû tuïc Cách viết và sử dụng thủ tục: a Caáu truùc cuûa thuû tuïc: Procedure < teân thuû tuïc> [(ds tham soá )] ; [ <phaàn khai baùo>] Begin [ < caùc caâu leänh > ] End; Khi sử dụng thủ tục caàn phaûi laøm gì ? b Phaàn khai baùo cuûa CT Lời gọi thủ tực đặt vị chính trí naøo? Chieáu CT VD1 hoïa Chaïy CT minh Hướng dẫn cho HS hiểu tham số biến Tham số biến sử dụng từ khoùa var Sau thực các leänh thuû tuïc thì giaù trò cuûa bieán a, b ntn? Chieáu CT VD2 minh hoïa Chaïy CT Sử dụng lời gọi thủ tục Trong phaàn thaân cuûa CT chính Quan saùt chöông trình, KQ gia tri a, b 10 gia tri a, b 10 Ví duï veà thuû tuïc: Ví duï 1: thuû tuïc hoán đổi giá trị hai biến Program VD1; Var a, b : integer ; Procedure hoandoi(var x,y:integer); Var tg :integer; Begin tg := x; x := y; y := tg; End; Begin a :=5; b :=10; Write(‘gia tri a, b ’, a:4, b:4); Hoandoi(a,b); Writeln(‘ gia tri a, b ’, a, b); Giaù trò cuûa bieán a, b bò Sau thực các thay đổi leänh thuû tuïc thì giaù trò cuûa bieán a, b ntn? Hướng dẫn HS nhận Quan sát chương trình, bieát tham soá bieán vaø KQ gia tri a, b 10 tham soá trò gia tri a, b 5 Readln; End Ví dụ 2: Tương tự VD1 , phần đầu thủ tục khai baùo sau: Procedure hoandoi(x:integer,var y:integer); (3) HỌAT ĐỘNG CỦA THẦY HOẠT ĐỘNG CỦA TRÒ LƯU BẢNG Em coù nhaän xeùt gì veà giaù trò cuûa bieán a thuû tuïc cuûa ví duï treân không thay đổi , giá trị b bị thay đổi Tổng hợp và nhấn mạnh Quan sát, lắng nghe yù chính cho HS naém truyền tham số trị Trong thuû tuïc neáu : tham soá bieán CT + Duøng tham soá trò thì Giới thiệu cấu trúc sau thực CT giá trị tham số thực haøm Em hãy cho biết không thay đổi khaùc cô baûn cuûa + Duøng tham soá bieán thì sau thực CT giá haøm vaø thuû tuïc trị tham số thực thay đổi Chieáu CT minh hoïa Cách viết và sử dụng hàm: a Caáu truùc cuûa haøm: Function <teân haøm> [(ds tham soá )]: <kiểu liệu > ; [ <phaàn khai baùo>] Begin [ < caùc caâu leänh > ] End; Trong thaân haøm phaûi coù leänh gaùn: < tên hàm> := < biểu thức>; Function Min( a,b :real): real; b Ví duï veà haøm: Em haõy cho bieát a,b laø Ví duï 1: Xeùt chöông trình Haø m baé t đầ u laø Function tham soá trò hay tham soá thực rút gọn phân số, vaø luoân traû veà giaù trò KQ bieán? đó có sử dụng hàm tính ước thuoäc kieåu xaùc ñònh vaø Kieåu traû veà cuûa haøm? chung lớn (ƯCLN) hai số giá trị đó gán cho nguyeân teâ n haø m Hàm thực Program Rutgon_Phanso; naøo? Uses crt; Cho biết KQ thực Var tuso, mauso, a : integer ; hieän CT treân Thủ tục bắt đầu là Procedure Bieán cuïc boä? Biến toàn cục? Quan saùt chöông trình a, b laø tham soá trò Function UCLN( x, y : integer): integer; Var sodu: integer; Begin While y <> Begin sodu := x mod y; x:= y; y:= sodu; End; UCLN := x; Begin Clrscr; Write(‘Nhap tu so, mau so vao! ’ ); Readln(tuso, mauso); a := UCLN(tuso, mauso); if a>1 then begin tuso := tuso div a; mauso := mauso div a; (4) HỌAT ĐỘNG CỦA THẦY HOẠT ĐỘNG CỦA TRÒ Số thực : real Có sử dụng lời gọi So nho nhat la -3 Bieán cuïc boä khai baùo CTC, thoùat khoûi CTC thì giaù trò cuûa chuùng seõ maát ñi Biến toàn cục khai baùo CT chính LƯU BẢNG end; Writeln(tuso:5, mauso:5); Readln; End Ví dụ 2: Haøm tìm soá nhoû nhaát hai soá Program VD; Var a, b : integer ; Function Min( a,b :real): real; Begin If a < b then := b else := a; End; Begin a := -3; b := 5; Write(‘ so nho nhat la’,min(a,b); Readln; End IV ĐÁNH GIÁ CUỐI BÀI Thủ tục có cấu trúc nào? Hàm có cấu trúc nào? Thế nào là biến toàn cục, cục bộ, tham số hình thức, tham số thực sự? V DẶN DÒ – CÔNG VIỆC VỀ NHÀ Về học bài và xem trước nội dung Bài thực hành BÀI HỌC KINH NGHIỆM (5)