Tải bản đầy đủ (.pdf) (20 trang)

Giáo án Tin học 11 - Tiết 37 đến tiết 53

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (203.18 KB, 20 trang )

<span class='text_page_counter'>(1)</span> Bài 14,15 Kiểu Dữ Liệu Tệp Và Thao Tác Với Tệp. Tuaàn : 20 Tieát : 37. Chöông V :. Ngày soạn : 17/12/08 Ngaøy daïy : / /. Tệp Và Thao Tác Với Tệp 3(2,0,1) §14. KIỂU DỮ LIỆU TỆP §15. THAO TÁC VỚI TỆP. I/- Muïc ñích – yeâu caàu :  Về kiến thức : + Bieát khaùi nieäm vaø vai9 troø cuûa teäp. + Biết hai cách phân loại tệp : theo cách tổ chức dữ liệu và theo cách truy cập. + Hieåu baûn chaát cuûa teäp vaên baûn.  Veà kyõ naêng : + Khai báo đúng tệp văn bản. + Biết sử dụng một số hàm và thủ tục chuẩn làm việc với tệp.  Về thái độ : + Thấy sự cần thiết và tiện lợi của kiểu dữ liệu tệp. Có ý thức lưu trữ dữ liệu 1 cách khoa học, phòng chống mất mát hoặc nhiễm virus. GD thêm về ý thức tôn trọng bản quyền.. II/- Chuaån bò :  GV : + Phải có giáo án và các đồ dùng dạy học liên quan đến bài dạy.  HS : + Đọc trước sách giáo khoa ở nhà.  PP : + Diễn giảng ,phát vấn và gợi mở .. III/- Hoạt động dạy học : 1. Ổn định lớp : Kiểm tra sĩ số (1’) 2. Kieåm tra baøi cuõ : (4’) 3. Nội dung bài mới : TG. Hoạt Động Của GV. Tieát. + Đặt vấn đề : Sau khi chạy 1. Hoạt Động Của HS. Noäi Dung Baøi. 37 chöông trình ta thaáy keát quaû in. leân maøn hình, tuy nhieân muoán sử dụng kết quả đó thì không được. Vì nó không lưu trữ được lâu dài. Để khắc phục nhược ñieåm naøy ta sang baøi 14 kieåu dữ liệu tệp. ? Trong MT có những loại bộ + Bộ nhớ ngoài và 1/- Vai trò của kiểu tệp : nhớ nào ? Loại bộ nhớ nào bộ nhớ trong. - Dữ liệu kiểu tệp được lưu trữ lâu dài ở không bị mất dữ liệu khi tắt + Bộ nhớ ngoài. bộ nhớ ngoài( đĩa từ, CD,... ) và không máy hoặc mất điện ? bò maát ñi khi taét maùy. Tin Hoïc 11.  Lop11.com. Trang 1.

<span class='text_page_counter'>(2)</span>  Bài 14,15 Kiểu Dữ Liệu Tệp Và Thao Tác Với Tệp. ? Vậy theo em thì các kiểu dữ liệu đã học được lưu trữ ở bộ nhớ nào ? Theo em dữ liệu kiểu tệp được lưu trữ trên bộ nhớ nào ?. + Lưu trữ ở bộ nhớ - Lượng dữ liệu lưu trữ trên tệp rất lớn trong (RAM) và phụ thuộc vào dung lượng đĩa. + Lưu trữ ở bộ nhớ ngoài.. 2/- Phân loại tệp và thao tác với teäp :. + Tệp văn bản : gồm các kí tự được tổ chức và quản lí theo từng dòng. Khi truy cập tệp, con trỏ tệp được di chuyển trên các dòng tuần tự từ đầu dòng veà cuoái doøng. Cuoái moãi doøng có nhóm kí tự điều khiển báo hết dòng và chuyển tới đầu doøng tieáp theo. Caùch truy caäp tệp văn bản thường là truy cập tuần tự. + Teäp coù caáu truùc : laø teäp maø các thành phần của nó được tổ chức theo 1 cấu trúc nhất định ( Vd như tổ chức theo các phần tử cùng kiểu ). Cách truy cập tệp có cấu trúc thường là truy cập trực tiếp, do biết được kích thước của từng phần tử nên có thể định vị con trỏ tệp đến ngay vị trí ( phần tử ) cần truy caäp. * Để nắm được rõ hơn về kiểu dữ liệu tệp, ta sang bài 15 thao tác với tệp. + Có 2 thao tác cơ bản đối với tệp là ghi dữ liệu vào tệp và đọc dữ liệu từ tệp ra. Ta xét xem trong Pascal caùc thao taùc đó được thể hiện như thế nào đối với tệp văn bản ?.  Theo cách tổ chức dữ liệu : ( phân thành 2 loại ) - Teäp vaên baûn. - Teäp coù caáu truùc.  Theo cách thức truy cập : ( phân thành 2 loại ) - Tệp truy cập tuần tự. - Tệp truy cập trực tiếp.. §15. THAO TÁC VỚI TỆP. 1/- Khai baùo : - Khai baùo bieán teäp vaên baûn coù daïng : Var < Teân bieán teäp > : Text ; Vd : Var F : Text ;. + Khai baùo treân xaùc ñònh 2 bieán teäp vaên baûn : A, B. Tin Hoïc 11. 2/- Thao tác với tệp : a) Gaén teân teäp : - Mỗi tệp dữ liệu đều có 1 tên tệp để  Lop11.com. Trang 2.

<span class='text_page_counter'>(3)</span>  Bài 14,15 Kiểu Dữ Liệu Tệp Và Thao Tác Với Tệp. + Trong laäp trình, ta khoâng thao tác trực tiếp với tệp dữ liệu treân ñóa maø thoâng qua bieán teäp. Có thể hình dung biến tệp được NNLT sử dụng như đại diện cho teäp.. tham chiếu. Tên tệp là biến xâu hoặc haèng xaâu. Vd : DULIEU.DAT.  ASSIGN(<bieán teäp >, < teân teäp > ) - Lệnh này dùng để gán tên tệp vào bieán kieåu teäp. VD 1 : ASSIGN(F, ‘DULIEU.DAT’) - Gaén teân teäp ‘DULIEU.DAT’ vaøo bieán teäp F. VD 2 : Để đọc dữ liệu từ tệp INP.DAT ở đĩa C:\ , ta cần gắn tệp đó với biến teäp F : ASSIGN( F, ‘ C:\INP.DAT ’) b) Mở tệp :. VD 2 : Để gắn tên tệp KQ.TXT cho bieán teäp F : ASSIGN(F, ‘KQ.TXT’).. + Để mở tệp ta có 2 trường hợp : mở để ghi bài( ghi dữ liệu) và mở ra để học bài (đọc dữ liệu).  Ta có 2 thủ tục để mở tệp : + Thủ tục Rewrite + Mở tệp để ghi dữ liệu : ? Vaäy ta coù 2 thuû tuïc naøo? vaø thuû tuïc Reset. Rewrite(< bieán teäp >) ; + Khi sử dụng thủ tục Ví duï : Rewrite(F), neáu treân ñóa C:\ ASSIGN(F, ‘ C:\KQ.Dat’) ; chöa coù teäp ‘KQ.DAT’ thì teäp Rewrite(F) ; sẽ được tạo với nội dung rỗng. Nếu đã có thì nội dung cũ bị + Mở tệp để đọc dữ liệu : xoá hết và ghi vào dữ liệu mới. Reset(< teân bieán teäp >) ; Ví dụ : Để đọc dữ liệu từ tệp  Chú ý : Trước khi sử dụng ‘KQ.DAT’ ta duøng leänh : 2 thuû tuïc treân phaûi gaén teân teäp Tentep :=’KQ.DAT’ ; cho biến tệp đồng thời biến tệp ASSIGN(F, tentep) ; phải được khai báo từ trước. Reset(F) ; Hoặc ASSIGN(F, ‘KQ.DAT’) ; Reset(F) ; c) Đọc/ ghi tệp văn bản :  Đọc dữ liệu từ tệp : ? Để nhập dữ liệu từ bàn phím +Để đọc DL ta dùng Read/Readln(<Teân bieán teäp>,< danh và in dữ liệu lên màn hình ta Read/Readln. saùch bieán >) ; + Để ghi DL ta dùng coù theå duøng thuû tuïc naøo ? - Đọc dữ liệu từ tệp Write/Writeln. Vd : Read(F, X1,X2) ; Trong đó : X1,X2 là các biến cùng kiểu với các thành phần của tệp.  Ghi dữ liệu vào tệp : Tin Hoïc 11.  Lop11.com. Trang 3.

<span class='text_page_counter'>(4)</span>  Bài 14,15 Kiểu Dữ Liệu Tệp Và Thao Tác Với Tệp. + Danh saùch keát quaû : goàm moät hoặc nhiều phần tử. Phần tử có thể là biến đơn hoặc biểu thức hoặc hằng xâu. Và các phần tử caùch nhau baèng daáu phaåy.. Write/Writeln(< teân bieán teäp >, Danh saùch keát quaû ) Vd : Write(F, 5,x+y,3) - Ghi lần lượt 3 phần tử : 5, x + y, 3 vào bieán teäp F.  Một số hàm chuẩn thường dùng để đọc/ghi tệp văn bản : - Haøm EOF(< bieán teäp >) : traû veà giaù trị true nếu con trỏ tệp đang chỉ tới cuối teäp. - Haøm EOLN(< bieán teäp >) : traû veà giá trị true nếu con trỏ tệp đang chỉ tới cuoái doøng. d) Đóng tệp : Close(< bieán teäp >) ; Vd : Close(F) ; + Caùc em coù theå xem saùch giaùo khoa trang 86, hình 16 thao tác với tệp. 4. Cuûng coá :(4’) - Nhắc lại khái quát lại vai trò của kiểu tệp và phân loại tệp. - Cho HS xem SGK trang 86 hình 16 thao tác với tệp để HS nắm rõ hơn về việc đọc và ghi dữ liệu từ tệp.. 5. Daën doø :(1’) -. Học bài và chuẩn trước Bài 16 Ví Dụ Làm Việc Với Tệp trong SGK trang 87. Hoà Lợi, ngày……Tháng ……Năm 20 Duyeät. Tin Hoïc 11.  Lop11.com. Trang 4.

<span class='text_page_counter'>(5)</span>  Bài 16 Ví Dụ Làm Việc Với Tệp. Tuaàn : 21 Tieát : 38. Ngày soạn : 29/12/08 Ngaøy daïy : / /. §16. VÍ DỤ LAØM VIỆC VỚI TỆP I/- Muïc ñích – yeâu caàu :  Về kiến thức : + Hiểu và hình thành kỹ năng về các thao tác cơ bản khi làm việc với tệp như : Mở tệp, gán tên tệp cho biến tệp, đọc/ghi dữ liệu đối với tệp, đóng tệp.  Veà kyõ naêng : + Sử dụng một số hàm và một số thủ tục chuẩn làm việc với tệp.  Về thái độ : + Thấy sự cần thiết và tiện lợi của kiểu dữ liệu tệp. Có ý thức lưu trữ dl 1 cách khoa học, phòng chống mất mát hoặc nhiễm virus. Giáo dục thêm về ý thức tôn trọng bản quyền.. II/- Chuaån bò :  GV : + Phải có giáo án và các đồ dùng dạy học liên quan đến bài dạy. + Cần chuẩn bị khổ giấy lớn để ghi lại 2 ví dụ trong SGK.  HS : + Đọc trước sách giáo khoa ở nhà.  PP : + Diễn giảng ,phát vấn và gợi mở .. III/- Hoạt động dạy học : 1. Ổn định lớp : Kiểm tra sĩ số (1’) 2. Kieåm tra baøi cuõ : (5’) ? Có mấy cách để phân loại tệp và thao tác vớitệp ? ? Hãy trình bày các thủ tục liên quan đến tệp ?. 3. Nội dung bài mới : TG. Hoạt Động Của GV. Hoạt Động Của HS. Noäi Dung Baøi. Tieát. + Đặt vấn đề : Để làm nắm 38 được rõ hơn về cách thao tác với tệp ta sang ví dụ một(làm việc với tệp). - Xem ví duï 1 SGK trang 87. + Chương trình sau sẽ đọc các cặp toạ độ từ tệp TRAI.TXT, tính roài ñöa ra maøn hình khoảng cách( với độ chính xác hai chữ số sau dấu chấm thập phân) giữa trại của mỗi giáo vieân chuû nhieäm vaø traïi cuûa thầy hiệu trưởng.. Tin Hoïc 11.  Ví duï 1 : Program Khoang_cach ; Var d : real ; F :Text ; X,Y : integer ; Begin ASSIGN(F,’TRAI.TXT’) ; Reset(F) ; While not EOF(F) do Begin Read(F, x,y) ; d := sqrt(x*x + y*y) ;  Lop11.com. Trang 5.

<span class='text_page_counter'>(6)</span>  Bài 16 Ví Dụ Làm Việc Với Tệp. + Nhắc lại công thức tính khoảng cách giữa 2 điểm khi biết toạ độ của 2 điểm trên mặt phẳng toạ độ. ? Hãy cho biết từng dòng lệnh cuûa chöông trình ?. Writeln(‘khoang cach:’, d:10:2) ; End ; Close(F) ; End..  Ví duï 2 : töông ñöông. Tính điện trở. Program Dientro ; Var a : array[1 .. 5 ] of real ; R1, R2, R3 : real ; F1, F2 : text ; Begin ASSIGN(F1,’RESIST.DAT’) ; Reset(F1) ; ASSIGN(F2,’RESIST.EQU’) ; Rewrite(F2) ; While not EOF(F1) do Begin Readln(F1, R1, R2, R3) ; a[1] := R1*R2*R3 /(R1*R2+R1 * R3+R2*R3) ; a[2] := R1*R2 /(R1+ R2)+ R3 ; a[3] := R1*R3 /(R1+R3) + R1 ; a[4] := R2*R3 /(R2+R3) + R1 ; a[5] := R1 + R2 + R3 ; For I := 1 to 5 do Write(F2, a[i] :9:3,’’) ; Writeln(f2) ; End ; Close(F) ; Close(F2) ; End.. + Xem ví duï 2 trong SGK trang 87. + Ví dụ 2 cho ta biết về đọc dữ liệu từ tệp văn bản thứ nhất và ghi dữ liệu vào tệp Vb thứ hai. + Xây dựng chương trình theo tùng bước 1 : - Khai baùo - Gaùn teân teäp cho bieán teäp - Đọc dữ liệu từ tệp -Tính các điện trở tương ñöông. - Ghi vaøo teäp - Đóng tệp + Tối ưu hoá chương trình - Chaïy chöông trình.. 4. Cuûng coá :(4’) - Việc trao đổi dữ liệu với bộ nhớ ngoài được thực hiện thông qua kiểu dữ liệu tệp. - Để có thể làm việc với tệp cần khai báo biến tệp. - Các thao tác với tệp văn bản : Khai báo biến tệp, mở tệp và đóng tệp, đọc/ ghi.. 5. Daën doø :(1’) - Học bài và chuẩn trước phần Câu Hỏi Và Bài Tập trong SGK trang 89. Hoà Lợi, ngày……Tháng ……Năm 20 Duyeät. Tin Hoïc 11.  Lop11.com. Trang 6.

<span class='text_page_counter'>(7)</span>  Baøi Taäp Chöông V. Tuaàn : 22 Tieát : 39. I/- Muïc ñích – yeâu caàu :. BaøØI TAÄP. Ngày soạn : 01/01/09 Ngaøy daïy : / /.  Về kiến thức : + Củng cố lại kiến thức đã được học trong tiết 1 và 2 của chương V gồm : kiểu tệp, biến tệp, thao tác với tệp, gắn tên tệp, mở và đóng tệp, đọc/ghi dữ liệu.  Veà kyõ naêng : + Luyeän taäp cho hoïc sinh veà kieåu teäp. + Tiếp tục làm quen với các công việc phục vụ việc hiệu chỉnh và khai thác chương trình.  Về thái độ : + Thấy sự cần thiết và tiện lợi của kiểu dữ liệu tệp. Có ý thức lưu trữ dữ liệu 1 cách khoa học, phòng chống mất mát hoặc nhiễm virus. GD thêm về ý thức tôn trọng bản quyền.. II/- Chuaån bò :  GV : + Phải có giáo án , bài tập và sử dụng thiết bị liên quan đến bài tập. + Chuẩn bị trước nhiều câu hỏi phát vấn cho học sinh để cho HS tham gia trả lời. + Coù theå chuyeån caùc caâu hoûi 1,2,3,4 veà daïng traéc nghieäm.  HS : + Đọc trước sách giáo khoa trước ở nhà trang 89.  PP : + Laøm vieäc theo nhoùm(chia laøm 6 nhoùm). + Dieãn giaûng vaø phaùt vaán.. III/- Hoạt động dạy học : 1. Ổn định lớp : Kiểm tra sĩ số (1’) 2. Kieåm tra baøi cuõ :(5’) 1. Hãy nhắc lại các thao tác với tệp( cũng như các thủ tục và hàm trong tệp) ?. 3. Nội dung bài mới : TG Tieát. 39. Hoạt Động Của GV. Hoạt Động Của HS. Noäi Dung Baøi. + Các em hãy mở sách giáo khoa trang 89 trong phaàn caâu hoûi vaø baøi taäp. Ta sang caâu 1. ? Em hãy nêu một số trường + Lượng thông tin 1/- Nêu một số trường hợp cần phải hợp cần phải dùng tệp ? lớn, dùng lâu dài,... dùng tệp ? - Lượng thông tin lớn, dùng lâu dài,... 2/- Trong sơ đồ thao tác với tệp, khi cần nhập dữ liệu từ tệp phải dùng những thao taùc naøo ?. Tin Hoïc 11.  Lop11.com. Trang 7.

<span class='text_page_counter'>(8)</span>  Baøi Taäp Chöông V. ? Trong sơ đồ thao tác với ASSIGN(F, Fi) ;  Trong sơ đồ thao tác với tệp, khi tệp, khi cần nhập dữ liệu từ cần nhập dữ liệu từ tệp phải dùng những Rewrite(F) ; tệp phải dùng những thao Write(F, x, ‘ ‘ , y, thao tác như gắn tên tệp, mở tệp để ghi, taùc naøo ? ‘ ‘ , z) ; ghi dữ liệu vào tệp, đóng tệp để hoàn tất việc ghi dữ liệu. Close(F) ; ASSIGN(F, Fi) ; Rewrite(F) ; Write(F, x, ‘ ‘ , y, ‘ ‘ , z) ; Close(F) ; ? Em hãy cho biết tại sao + Trước khi sử dụng cần phải có câu lệnh mở tệp tệp phải có câu lệnh trước khi đọc/ghi tệp? mở tệp để trình bieân dòch bieát muïc đích mở tệp để đọc hay ghi, đồng thời ñaët con troû vaøo vò trí thích hợp. ?Em haõy cho bieát taïi sao + Phaûi duøng caâu phải dùng câu lệnh đóng tệp lệnh đóng tệp sau sau khi đã kết thúc ghi dữ khi đã kết thúc ghi lieäu vaøo teäp? dữ liệu vào tệp để + Trước khi dữ liệu được hệ thống hoàn tất thực sự ghi vào tệp, nó được việc ghi dữ liệu ra lưu trữ trên bộ nhớ đệm. tệp. Mỗi khi bộ nhớ đệm đầy hoặc khi có yêu cầu đóng tệp thì dữ liệu trên bộ nhớ đệm( có thể chưa đầy) mới được chuyển và ghi vào tệp.. 3/- Tại sao cần phải có câu lệnh mở tệp trước khi đọc/ghi tệp?  Trước khi sử dụng tệp phải có câu lệnh mở tệp để trình biên dịch biết mục đích mở tệp để đọc hay ghi, đồng thời đặt con trỏ vào vị trí thích hợp. 4/- Tại sao phải dùng câu lệnh đóng tệp sau khi đã kết thúc ghi dữ liệu vào tệp?  Phải dùng câu lệnh đóng tệp sau khi đã kết thúc ghi dữ liệu vào tệp để hệ thống hoàn tất việc ghi dữ liệu ra tệp.. 4. Cuûng coá :(4’) - Yêu cầu HS viết được một chương trình đơn giản có sử dụng thao tác đọc/ghi tệp.. 5. Daën doø :(1’) - Hoïc baøi vaø laøm theâm caùc baøi taäp trong saùch baøi taäp. - Chuẩn bị tiếp Bài 17 Chương Trình Con Và Phân Loại trong SGK trang 91. Hoà Lợi,ngày……Tháng ……Năm 20 Duyeät. Tin Hoïc 11.  Lop11.com. Trang 8.

<span class='text_page_counter'>(9)</span>  Bài 17 Chương Trình Con Và Phân Loại. Tuaàn : 23,24 Tieát : 40,41. Chöông VI :. Ngày soạn : 03/01/09 Ngaøy daïy : / /. Chöông Trình Con Vaø Laäp Trình Coù Caáu Truùc 13(6,6,1). §17. CHƯƠNG TRÌNH CON VAØ PHÂN LOẠI I/- Muïc ñích – yeâu caàu :  Về kiến thức : + Nắm được khái niệm chương trình con. + Sự khác biệt cơ bản giữa hàm và thủ tục. + Phaân ieät ñieåm gioáng vaø khaùc nhau veà caáu truùc cuûa chöông trình vaø chöông trình con. + Biết được mối quan hệ giữa tham số hình thức và tham số thực sự. + Biến cục bộ : Cách khai báo và phạm vi sử dụng.  Veà kyõ naêng : + Biết cách khai báo 2 loại chương trình con cùng với các tham số hình thức của chúng. + Biết cách gọi chương trình con thực hiện với ngững tham số thực sự trong chương trình chính.  Về thái độ : + Tiếp tục rèn luyện các phẩm chất của người lập trình như tinh thần hợp tác, sẵn sàng làm vieäc theo nhoùm, tuaân thuû theo yeâu caàu vì coâng vieäc chung.. II/- Chuaån bò :  GV : + Phải có giáo án và các đồ dùng dạy học liên quan đến bài dạy.  HS : + Đọc trước sách giáo khoa ở nhà.  PP : + Diễn giảng ,phát vấn và gợi mở .. III/- Hoạt động dạy học : 1. Ổn định lớp : Kiểm tra sĩ số (1’) 2. Kieåm tra baøi cuõ : (5’) 3. Nội dung bài mới : TG. Hoạt Động Của GV. Tieát. + Đặt vấn đề : Các chương. Hoạt Động Của HS. Noäi Dung Baøi. 40 trình giải các bài toán thường. rất dài và phức tạp, có thể gồm haøng traêm, haøng ngaøn leänh. Khi đọc những chương trình dài rất khó nhận biết được chương trình thực hiện những công việc gì vaø muoán hieäu chænh laïi Tin Hoïc 11.  Lop11.com. Trang 9.

<span class='text_page_counter'>(10)</span>  Bài 17 Chương Trình Con Và Phân Loại. chöông trình cuõng raát khoù khaên. Vì vậy vấn đề đặt ra là phải có caáu truùc chöông trình nhö theá nào cho hợp lý. Đó chính là chöông trình con. + Mặc khác, để giải quyết 1 bài toán lớn phức tạp người ta coù theå chia ra thaønh nhieàu baøi toán con và cho nhiều người coù theå tham gia.. 1/-Khaùi nieäm chöông trình con:. + Với những bào toán phức tạp hơn, mỗi bài toán con lại có thể được phân chia thành các bài toán con nhỏ hơn. Quá trình phaân chia nhö vaäy ta goïi laø cách thiết kế từ trên xuống. Tương tự, khi lập trình trên maùy tính coù theå phaân chia chöông trình chính thaønh caùc khoái moâñun ctrình con. Moãi khối lệnh bao gồm con nào đó. Vaäy khaùi nieäm chöông trình con laø gì?. Xét bài toán tính tổng bốn luỹ thừa. Tluythua = an + bm + cp + dq Bài toán trên được chia thành 4 bài toán con : Tính an , bm , cp , dq , có thể giao cho bốn người, mỗi người thực hiện 1 bài. Giá trị Tluythua là tổng kết quả của bốn bài toán con đó.. a) Khaùi nieäm : Chöông trình con laø 1 daõy leänh moâ taû 1 soá thao taùc nhaát định và có thể được thực hiện từ nhiều vò trí trong chöông trình. ? Haõy xem ví duï vaø cho bieát  Ví duï : Xem saùch giaùo khoa trong chöông trình treân coù + Trong chöông trang 92. những khối lệnh nào được viết trình trên có 4 đoạn tương tự nhau ? lệnh tương tự nhau. + Ta coù theå ñaët teân cho chöông trình con laø Luythua vaø moãi khi caàn ta chæ caàn goïi teân chương trình con là đủ. Ví dụ : để tính an , bm , cp , dq ta gọi Luythua(a,n), Luythua(b,m), Luythua(c,p), Luythua(d,q), - Ví dụ tính Luythua ở phần treân.. Tin Hoïc 11. b) Lợi ích của việc sử dụng chöông trình con : - Tránh được việc phải viết đi viết lại cùng một dãy lệnh nào đó.  Lop11.com. Trang 10.

<span class='text_page_counter'>(11)</span>  Bài 17 Chương Trình Con Và Phân Loại. - Khi viết 1 ctrình lớn cần chia thaønh nhieàu ctrình nhoû vaø nhiều người cùng tham gia. - Người lập trình có thể sử dụng các kết quả được thực hiện bởi chương trình con mà không cần quan tâm đến ctrình con đó cài đặt như thế nào. - Caùc NNLT cung caáp phöông thức đóng gói các ctrình con như 1 câu lệnh mới.Cho phép người sử dụng mà không cần bieát maõ nguoàn nhö theá naøo. - Do chương trình được tạo thành từ các chương trình con nên chương trình dễ đọc, dễ hieåu, deã kieåm tra vaø hieäu chænh. Vaø khoâng gaây aûnh hưởng đến các ctrình con khác. Tieát  Để nắm rõ hơn về 41 chöông trình con ta sang phaàn 2 phân loại và cấu trúc của chöông trình con .. - Hỗ trợ việc thực hiện các chương trình lớn.. Vd : - Haøm sqrt(x) nhaän giaù trò x vaø traû veà giaù trò caên baäc 2 cuûa x. - Legth(x) nhận xâu x và trả độ daøi cuûa xaâu x.. a) Phân loại : ( Gồm 2 loại )  Haøm (Function) : Laø chöông trình con thực hiện 1 số thao tác nào đó và trả về 1 gía trị qua tên của nó.  Thuû tuïc (Procedure) : Laø chương trình con thực hiện các thao taùc nhaát ñònh nhöng khoâng traû veà moät giaù trò naøo qua teân cuûa noù.. Vd : caùc thuû tuïc vaøo/rachuaån hay thủ tục xử lí xâu : Writeln, readln, delete, insert,.. + Chöông trình con coù caáu truùc tương tự như chương trình chính, nhöng nhaát thieát phaûi coù tên và phần đầu dùng để khai baùo teân, neáu laø haøm phaûi khai báo kiểu dữ liệu cho giá trị trả veà cuûa haøm : ta coù caáu truùc sau Tin Hoïc 11. - Phục vụ cho quá trình trừu tượng hoá.. - Mở rộng khả năng ngôn ngữ.. - Thuaän tieän cho phaùt trieån, naâng caáp chöông trình.. 2/- Phân loại và cấu trúc của chöông trình con :. Laø CTC Hàm Thực hiện 1 số thao tác nào đó Traû veà giaù trò qua teân haøm. Laø CTC Thuû Tuïc Thực hieän 1 soá thaotaùc nào đó.. b) Caáu truùc cuûa chöông trình con:. < Phần đầu > ; [ < phaàn khai baùo >] ; < Phaàn thaân > ;  Lop11.com. Trang 11.

<span class='text_page_counter'>(12)</span>  Bài 17 Chương Trình Con Và Phân Loại. ? Caáu truùc cuûa chöông trình con + Gioáng : phaàn khai  Phaàn khai baùo : có gì giống và khác với cấu báo và phần thân - Phaàn khai baùo coù theå coù khai baùo truùc cuûa 1 chöông trình ? + Khác : Thêm phần biến cho dữ liệu vào và ra, các hằng đầu và nhất thiết và biến dùng trong chương trình con. phaûi coù  Phaàn thaân : laø daõy caùc caâu leänh ( dữ liệu vào hay kết qủa ra) . Vd : Luythua(x,k) ở phần 1 thì x.k là các tham số hình thức và j laø bieán cuïc boä.. - Các biến được khai báo cho dữ liệu vào/ra được gọi là tham số hình thức. - Các biến được khai báo để dùng riêng trong chương trình con được gọi laø bieán cuïc boä.. Vd : Bieán Luythua khai baùo trong chöông trình chính. + Moät chöông trình con coù theå có hoặc không có tham số hình thức, có thể có hoặc không có bieán cuïc boä.. - Các biến được khai báo trong chương trình chính gọi là biến toàn boä.. Vd 1 : khai báo tham số thực sự cho chöông trình con. Procedure Bp( x : integer) ;  Lời Gọi Thủ Tục Bp(3) ; Vd 2 : Khai baùo tham soá bieán cho chöông trình con. Procedure Traodoi(Var x,y : integer) ; Lời gọi thủ tục Traodoi(a,b);. c) Thực hiện chương trình con :  Tham số thực sự (TSGT) - Để thực hiện 1 chương trình con, ta cần phải có lời gọi thủ tục hay hàm, bao gồm tên chương trình con với tham soá(neáu coù) Vd : Sqr(255) Teân ctrình. TS thực sự. 4. Cuûng coá :(4’) -. Nhắc lại khái niệm chương trình con và lợi ích của chương trình con. Phân loại : Hàm và Thủ tục. Cấu trúc của chương trình con. Tham số hình thức, tham số thực sự và cách gọi CTC. Biến cục bộ và biến toàn bộ.. 5. Daën doø :(1’) -. Học bài và chuẩn trước Bài 18 Ví Dụ Về Cách Viết Và Sử Dụng Chương Trình Con trong SGK trang 96. Hoà Lợi, ngày……Tháng ……Năm 20 Duyeät. Tin Hoïc 11.  Lop11.com. Trang 12.

<span class='text_page_counter'>(13)</span>  Bài 18 Ví Dụ Về Cách Viết Và Sử Dụng Chương Trình Con. Tuaàn : 25, 26 Tieát : 42,43. Ngày soạn : 14/01/09 Ngaøy daïy : / /. §18. VÍ DỤ VỀ CÁCH VIẾT VAØ SỬ DỤNG CHÖÔNG TRÌNH CON I/- Muïc ñích – yeâu caàu :  Về kiến thức : + Học sinh biết được cấu trúc của một thủ tục. + Hiểu được mối quan hệ giữa chương trình và thủ tục. + Phân biết được tham trị và tham biến. + Phân biệt được tham số hình thức và tham số thực sự. + Phân biết được biến cục bộ và biến toàn bộ. + Học sinh cần nắm được sự giống nhau và khác nhau giữa thủ tục và hàm.  Veà kyõ naêng : + Nhận biết được các thành phần trong phần đầu của thủ tục. + Nhận biết được hai loại tham số trong phần đầu của thủ tục. + Nhận biết được lời gọi của thủ tục ở chương trình chính cùng với tham số thực sự. + Nhận biết được các thành phần trong đầu hàm, các câu lệnh sử dụng hàm ở trong chương trình chính cùng với các tham số thực sự.  Về thái độ : + Tiếp tục rèn luyện các phẩm chất của người lập trình như tinh thần hợp tác, sẵn sàng làm vieäc theo nhoùm, tuaân thuû theo yeâu caàu vì coâng vieäc chung.. II/- Chuaån bò :  GV : + Phải có giáo án và các đồ dùng dạy học liên quan đến bài dạy. + Chuẩn bị khổ giấy lớn để trình bày các ví dụ trong sách giáo khoa.  HS : + Đọc trước sách giáo khoa ở nhà.  PP : + Diễn giảng ,phát vấn và gợi mở .. III/- Hoạt động dạy học : 1. Ổn định lớp : Kiểm tra sĩ số (1’) 2. Kieåm tra baøi cuõ : (5’) ? Chương trình con có những loại nào ? Cấu trúc của một chương trình con ?. 3. Nội dung bài mới : TG. Hoạt Động Của GV. Tieát. + Đặt vấn đề : Ta có chương. Hoạt Động Của HS. Noäi Dung Baøi. 42 trình vẽ một hình chữ nhật, nếu. muốn vẽ 3 hình chữ nhật thì ta phaûi duøng 3 chöông trình nhö vậy hoặc dùng lệnh writeln nhiều lần. Để khắc phục trường Tin Hoïc 11.  Lop11.com. Trang 13.

<span class='text_page_counter'>(14)</span>  Bài 18 Ví Dụ Về Cách Viết Và Sử Dụng Chương Trình Con. hợp trên ta có thể dùng thủ tục, vaø moãi khi caàn ta chæ caàn goïi tên thủ tục cùng với tham soá(neáu coù). + Chuùng ta coù theå xem saùch giáo khoa với ba câu lệnh Writeln (‘* ’) vẽ hình chữ nhật nhö sau : Sau ñaây ta coù theå xeùt chöông trình VD_thutuc1 vaø sau đó gọi thủ tục Ve_hcn ba lần để vẽ ba hình chữ nhật.. Xem saùch giaùo khoa trang 96. 1/- Cách viết và sử dụng thủ tuïc :. ? Dựa vào chương trình trên haõy cho bieát caáu truùc cuûa thuû + Caáu truùc cuûa thuû tục và có gì khác với cấu trúc tục bao gồm ba cuûa chöông trình? phaàn, nhöng phaàn tiêu đề và phần thân nhaát thieát phaûi coù. + Phần đầu thủ tục : gồm tên daønh rieâng Procedure, tieáp theo laø teân thuû tuïc. Danh saùch tham số có thể có hoặc không có. + Phần khai báo : dùng để xđ caùc haèng, kieåu, bieán vaø cuõng có thể xđ các CTC khác được sử dụng trong thủ tục. Thủ tục Ve_Hcn khoâng coù khai baùo haèng. Bieán hay CTC naøo. + Phaàn thaân thuû tuïc : laø caùc daõy lệnh nằm giữa Begin và End.  Chú ý : Khi VCT có sử duïng thuû tuïc vaø trong phaàn thaân cuûa chöông trình phaûi coù lời gọi thủ tục.. Program VD_thutuc1 ; Procedure Ve_Hcn ; Begin Writeln(‘* * * * * * * ’) ; Writeln(‘* * ’) ; Writeln(‘* * * * * * * ’) ; End ; Begin Ve_Hcn ; { lời gọi thủ tục} Writeln ; Writeln ; Ve_Hcn ; Writeln ; Writeln ; Ve_Hcn ; Writeln ; Writeln ; End. a) Caáu truùc cuûa thuû tuïc : Procedure < Teân thuû tuïc > [< Danh saùch tham soá >] ; [ < phaàn khai baùo >] ; Begin [< daõy caùc leänh >] ; End ;. b) Ví duï veà thuû tuïc : Procedure VD1(x, y : integer) ; Procedure VD2(Var x, y : Real) ;  Xeùt thuû tuïc naèm trong chöông trình có sử dụng tham số giá trị :. Tin Hoïc 11.  Lop11.com. Trang 14.

<span class='text_page_counter'>(15)</span>  Bài 18 Ví Dụ Về Cách Viết Và Sử Dụng Chương Trình Con. + Thủ tục Ve_Hcn ; ở đây diễn đạt 1 thuật toán vẽ hình chữ nhật với kích thước chiều dài vaø chieàu roäng tuyø theo giaù trò cuûa caùc tham soá chdai vaø chrong. Hai tham số này được gọi là tham số thực sự (TSGT). + Mỗi khi ta muốn vẽ hình chữ nhật thì ta chỉ cần gọi đúng tên thuû tuïc vaø truyeàn tham soá thích hợp.  Chuù yù : Neáu 1 thuû tuïc coù tham số thì tham số phải được khai baùo sau teân thuû tuïc, trong cặp dấu ngoặc tròn ( ). Khai baùo 1 tham soá coù nghóa laø chæ ra nó thuộc loại tham số gì và thuộc kiểu dữ liệu gì.. Program VD_thutuc2 ; Uses crt ; Var a, b, i : Integer ; Procedure Ve_Hcn(chdai, chrong : Integer) ; Var i, j : integer ; Begin { ve canh tren cua hinh chu nhat} For i := 1 to chdai do Write(‘ * ’) ; Writeln ; For j := 1 to chrong -2 do {ve 2 canh ben} Begin Write(‘ * ’) ; For i := 1 to chdai – 2 do Write(‘ ‘) ; Write(‘ * ’) ; End ; {ve canh duoi} For i := 1 to chdai do Write(‘ * ’) ; Writeln ; End ; BEGIN clrscr ; { ve hinh chu nhat voi kich thuoc 25x10} Ve_Hcn(25,10) ; Writeln ; Writeln ; { ve hinh chu nhat voi kich thuoc 5x10} Ve_Hcn(5,10) ; Readln ; Clrscr ; a := 4 ; b := 2 ; For i := 1 to 4 do Begin Ve_Hcn(a,b) ; Readln ; a := a*2 ; b := b*2 ; End ; Readln ; END.. -Caâu leänh goïi thuû tuïc coù daïng < Teân thuû tuïc > [( caùc tham soá thực sự ) ] ; Vd : Ve_Hcn(25,10) ; Ve_Hcn(5,x) ; Ve_Hcn(3*x+2, 2*x) ;. Tin Hoïc 11.  Lop11.com. Trang 15.

<span class='text_page_counter'>(16)</span>  Bài 18 Ví Dụ Về Cách Viết Và Sử Dụng Chương Trình Con. + Giới thiệu với HS 1 thủ tục khai baùo 2 tham soá bieán x, y thuoäc kieåu integer. + Qua keát quaû chaïy chöông trình cho ta thấy được : Trước vaø sau khi goïi thuû tuïc caùc tham số biến đã thay đổi, giá trị của tham biến sau lời gọi thủ tục là giaù trò sau cuøng khi keát thuùc thực hiện thủ tục. - Sau khi goïi thuû tuïc Hoan_doi, bieán a seõ nhaän giaù trò cuûa bieán b vaøbieán b seõ nhaän giaù trò cuûa biến a. và kết quả trước và sau khi goïi thuû tuïc nhö sau : 5 10 10 5.  Xeùt thuû tuïc naèm trong chöông trình có sử dụng tham số biến : 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) ; Readln ; END.. ? Haõy xem Chöông trình VD_thambien2 vaø haõy cho bieát mỗi lời gọi thủ tục Hoan_doi sau có hợp lệ không ? + Co.ù - Hoandoi(10, a) ; + Khoâng. - Hoandoi(b,10) ; + Khoâng. - Hoandoi(b, a+3) ; + Chöông trình VD_thambien2 + Hoandoi(a, 10) nếu đầu thủ tục được đổi lại là: Procedure Hoan_doi(Var x : integer ; y : Integer) ; thì keát quaû sau khi chaïy chöông trình ?. Tin Hoïc 11.  Lop11.com.  Xeùt thuû tuïc naèm trong chöông trình có sử dụng tham số giá trị và tham soá bieán : Program VD_thambien2 ; Uses crt ; Var a, b : Integer ; Procedure Hoan_doi( x : integer ; Var 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) ; END. Trang 16.

<span class='text_page_counter'>(17)</span>  Bài 18 Ví Dụ Về Cách Viết Và Sử Dụng Chương Trình Con Tieát. 43. + Xem theâm 1 vaøi ví duï trong saùch giaùo vieân trang 135,135. + Đặt vấn đề : Chúng ta đã học về cách viết và sử dụng thủ tục, hôm nay chúng ta tiếp tực tìm hiểu và cách viết và sử duïng haøm. Cuõng gioáng nhö thuû tuïc,haøm cuõng laø CTC. Ñieåm khác nhau giữa hàm và thủ tục là ở chổ hàm luôn cho 1 giá trị keát quaû traû veà thuoäc kieåu xaùc định và giá trị đó được gán cho teân haøm.Vaäy caùch khai baùo nhö theá naøo ta sang phaàn 2 cách viết và sử dụng hàm. ? Haõy so saùnh ñieåm khaùc nhau + Ñieåm khaùc nhau cô baûn cuûa haøm vaø thuû tuïc? cơ bản giữa thủ tục vaø haøm laø haøm luoân traû veà giaù trò keát quaû thuoäc kieåu xaùc ñònh và giá trị đó được gaùn cho teân haøm. - Cuõng gioáng nhö thuû tuïc, neáu haøm khoâng coù tham soá hình thức thì không cần danh sách tham soá. ? Vậy khi sử dụng hàm khác với thủ tục ở chổ nào ? - Vì kết quả trả về đã gán cho tên hàm nên thông thường các tham soá duøng trong haøm laø tham soá giaù trò.. Tin Hoïc 11.  Chuù yù : - Các tham số có từ khoá Var đứng trước là tham số biến. - Các tham số không có từ khoá Var đứng trước là tham số gtrị. - Các tham số cùng kiểu và cùng loại ngăn cách nhau bởi dấu phẩy(,), còn các tham số khác kiểu và khác loại cách nhau bởi dấu chấm phẩy(;). Vd : Procedure Beta(Var A, B : Real ; C, D : Real ; I, J : Integer) ;. 2/- Cách viết và sử dụng hàm :. - Điểm khác nhau cơ bản giữa thủ tuïc vaø haøm laø haøm luoân traû veà giaù trò keát quaû thuoäc kieåu xaùc ñònh vaø giaù trò đó được gán cho tên hàm.  Caáu truùc cuûa haøm : Function <Teân haøm > [(< Danh saùch tham số >) ] : < kiểu dữ liệu> ; - Trong đó, kiểu dữ liệu : là kiểu của giaù trò maø haøm traû veà vaø chæ coù theå laø kieåu : integer, real, char, boolean, string. - Khác ở chổ thân hàm có lệnh gán + Trong phaàn thaân giaù trò cho teân haøm : cuûa haøm phaûi coù ít nhất 1 câu lệnh gán < Tên hàm > := < biểu thức > ; Teân haøm := bieåu  Ví dụ 1 : VCT thực hiện việc rút thức. gọn phân số, trong đó có sử dụng haøm tính ước chung lớn nhất (UCLN) cuûa 2 soá nguyeân ? Program Rutgon_phanso ; Uses crt ; Var Tuso, Mauso, a : Integer ; Function UCLN( x, y : Integer) : Integer ; Var Sodu : integer ;  Lop11.com. Trang 17.

<span class='text_page_counter'>(18)</span>  Bài 18 Ví Dụ Về Cách Viết Và Sử Dụng Chương Trình Con. Begin While Y <> 0 Do Begin Sodu := x mod y ; X := y ; Y := sodu ; End ; UCLN := x ; End ; BEGIN clrscr ; Write(‘ Nhap vao tu so, mau so’) ; Readln(Tuso, Mauso) ; a := UCLN(Tuso, Mauso) ; If a > 1 then Begin Tuso := Tuso div a ; Mauso := Mauso div a; End ; Writeln(Tuso :5, Mauso :5) ; Readln ; END.. + Muïc ñích cuûa chöông trình Rutgon_phanso laø minh hoïa cho những điểm giống và khác nhau giữa thủ tục và hàm.. + Việc sử dụng hàm hàm hoàn toàn giống thủ tục , khi viết leänh goïi haøm goàm : teân haøm và tham số thực sự tương ứng với các tham số hình thức. + Leänh goïi haøm coù theå tham gia vào biểu thức như 1 toán haïng vaø thaäm chí laø tham soá của lời gọi hàm, thủ tục khác, ví duï : a := 6 * UCLN(tuso,Mauso) +1;.  Ví duï 2 : VCT tìm soá nhoû nhaát của 3 số bất kỳ được nhập vào từ bàn phím trong đó có sử dụng hàm tìm soá nhoû nhaát cuûa 2 soá.. + Trong chöông trình Minbaso có sử dụng hàm min, tìm số nhoû hôn trong hai soá a vaø b. Tuy nhiên việc sử dụng hàm Min ở đây được nâng lên 1 mức phức tạp hơn.Để thực hiện caâu leänh : Writeln(‘ So nho nhat trong ba so la :’, Min(Min(a,b),c)) ; haøm Min được gọi thực hiện với 2 tham số thực sự : tham số thứ 1 là kết quả thực hiện hàm Min(a,b) còn tham số thứ 2 là giá trị của biến c. Để có tham số thực sự Tin Hoïc 11. Program Minbaso ; Var a, b, c : Integer ; { Ham tim so nho nhat trong hai so a va b} Function Min( a, b : real) : Real ; Begin If a < b Then Min := a Else Min := b ; End ; BEGIN Write(‘ Nhap vao ba so bat ky’) ;  Lop11.com. Trang 18.

<span class='text_page_counter'>(19)</span>  Bài 18 Ví Dụ Về Cách Viết Và Sử Dụng Chương Trình Con. thứ 1 đó, hàm Min(a,b) đã được thực hiện, kết quả trả về là số nhoû hôn trong 2 giaù trò cuûa bieán a vaø bieán b. Vaäy keát quaû traû veà cuûa haøm Min(a,b) vaø c seõ cho keát quaû laø soá nhoû nhaát trong ba bieán a, b, c.. Readln(a,b,c) ; Writeln(‘ So nho nhat trong ba so la :’, Min(Min(a,b),c)) ; Readln ; END.. 4. Cuûng coá :(4’) -. Nhắc lại các khái niệm : chương trình con, thủ tục, hàm, tham số hình thức, tham số thực sự, biến toàn cục và biến cục bộ. Phân loại : Hàm và Thủ tục. Cấu trúc của chương trình con và cách sử dụng hàm và thủ tuïc.. 5. Daën doø :(1’) -. Học bài và chuẩn trước Bài Tập Và Thực Hành 6 trong SGK trang 103. Hoà Lợi, ngày……Tháng ……Năm 20 Duyeät. Tin Hoïc 11.  Lop11.com. Trang 19.

<span class='text_page_counter'>(20)</span> Bài Tập Và Thực Hành 6. Tuaàn: 27,28 Tieát: 44,45. Ngày soạn: 22/01/09 Ngaøy daïy : / /. Bài Tập Và Thực Hành 6 I/- Muïc ñích – yeâu caàu :  Về kiến thức : + Giúp cho HS tìm hiểu các thao tác xử lí xâu, cách tạo hiệu ứng chữ chạy trên màn hình. + Củng cố cho HS những khái niệm về chương trình con : Thủ tục, hàm, tham số giá trị, tham số biến, tham số thực sự, biến cục bộ, biến toàn bộ.  Veà kyõ naêng : + Tổ chức những hoạt động trong phòng máy để HS có được các kĩ năng cơ bản trong việc tổ và sử dụng chương trình con trong lập trình.  Về thái độ : + Góp phần hình thành và rèn luyện tư duy lập trình, tác phong của người lập trình.. II/- Chuaån bò :  GV : + Phải có giáo án và bài tập thực hành 6. + Chuẩn bị sẳn chương trình ở câu b trên giấy khổ lớn hoặc trên đĩa( đĩa cứng của từng máy hay đĩa mềm) và cung cấp chương trình cho 1 số HS vào những thời điểm thích hợp. + Phân nhóm để thực hành.  HS : + Đọc trước sách giáo khoa ở nhà để chuẩn bị cho bài tập và thực hành 6.  PP : + Hướng dẫn và phát vấn kết hợp với gợi mở.. III/- Hoạt động dạy học : 1. Ổn định lớp : Kiểm tra sĩ số (1’) 2. Kieåm tra baøi cuõ : ? Hãy cho biết cách viết và sử dụng hàm ? ? Hãy so sánh cách viết và sử dụng hàm và thủ tục có những gì giống và khác nhau ?. 3. Nội dung bài tập và thực hành : TG. Hoạt Động Của GV. Hoạt Động Của HS. Noäi Dung Ghi Baøi. Tiết + Trước hết chúng ta mở máy. 44 tính bằng cách ấn nút power để. khởi động máy tính. + Sau khi khởi động máy tính xong ta Start  Program  Pascal7. - Trước hết, ta hãy tìm hiểu việc xây dựng hai thủ tục sau đây :. a) Trước hết, ta hãy tìm hiểu việc xây dựng 2 thủ tục sau đây :. + Thuû tuïc CatDan(s1,s2) taïo xâu s2 từ xâu s1 nhận ở đầu vào,.  Thuû tuïc CatDan(s1,s2) nhaän đầu vào là xâu s1 gồm không quá 79 kí tự, tạo xâu s2 thu được từ xâu s1. Tin Hoïc 11.  Lop11.com. Trang 20.

<span class='text_page_counter'>(21)</span>

×