I. MỤC ĐÍCH, YÊU CẦU:
- Biết có ba lớp ngôn ngữ lập trình và các mức của ngôn ngữ lập trình: ngôn ngữ máy, hợp ngữ và ngôn ngữ bậc cao.
- Biết vai trò của chương trình dịch
- Biết khái niệm biên dịch và thông dịch
- Biết một trong những nhiệm vụ quan trọng của chương trình dịch là phát hiện lỗi cú pháp của chương trình nguồn.
II. PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC
- Phương pháp: thuyết trình, vấn đáp.
- Phương tiện: Máy chiếu, máy tính, phông hoặc bảng chiếu.
* Lưu ý sư phạm:
Trong chương trình lớp 10 các em đã được biết đến một số khái niệm: ngôn ngữ lập trình, chương trình dịch; nên trong bài này chúng ta nên trình bày rõ cho học sinh hiểu về biên dịch và thông dịch.
III. HOẠT ĐỘNG DẠY – HỌC
1. Ổn định lớp
2. Bài mới
Ngày soạn: Tiết PPCT: 01 Chương I Một số khái niệm về lập trình và ngôn ngữ lập trình Bài 1: Khái niệm lập trình và ngôn ngữ lập trình Mục đích, yêu cầu: Biết có ba lớp ngôn ngữ lập trình và các mức của ngôn ngữ lập trình: ngôn ngữ máy, hợp ngữ và ngôn ngữ bậc cao. Biết vai trò của chương trình dịch Biết khái niệm biên dịch và thông dịch Biết một trong những nhiệm vụ quan trọng của chương trình dịch là phát hiện lỗi cú pháp của chương trình nguồn. Phương pháp, phương tiện dạy học Phương pháp: thuyết trình, vấn đáp. Phương tiện: Máy chiếu, máy tính, phông hoặc bảng chiếu. * Lưu ý sư phạm: Trong chương trình lớp 10 các em đã được biết đến một số khái niệm: ngôn ngữ lập trình, chương trình dịch; nên trong bài này chúng ta nên trình bày rõ cho học sinh hiểu về biên dịch và thông dịch. Hoạt động dạy – học ổn định lớp Bài mới Hoạt động của giáo viên và HS Nội dung GV: Đặt câu hỏi 1: Em hãy cho biết các bước giải một bài toán trên máy tính? HS: suy nghĩ và trả lời câu hỏi GV: Phân tích câu trả lời của học sinh, nhắc lại kiến thức lớp 10. - Xác định bài toán (Input, Output, ngôn ngữ, cấu trúc DL) - Lựa chọn và xây dựng thuật toán (chọn TT thích hợp) -Viết chương trình (cấu trúc DL, ngôn ngữ diễn tả TT) - Hiệu chỉnh (chạy thử, sửa sai) - Viết tài liệu (mô tả chương trình, hướng dẫn sử dụng) GV: Em hãy cho biết có mấy loại ngôn ngữ lập trình HS: Trả lời câu hỏi của giáo viên GV: Phân tích câu trả lời của học sinh Mỗi loại máy có một ngôn ngữ riêng, thường thì chương trình viết bằng ngôn ngữ của loại máy nào chỉ chạy được trên loại máy đó. Khi viết chương trình bằng ngôn ngữ lập trình bậc cao muốn thi hành được trên loại máy nào thì cần chuyển chương trình sang ngôn ngữ máy của máy đó. GV. Đặt câu hỏi: Làm thế nào để chuyển chương trình viết bằng ngôn ngữ bậc cao sang ngôn ngữ máy? GV: lấy ví dụ người phiên dịch Dịch luân phiên là thông dịch Dịch hoàn tất nội dung là biên dịch Biên dịch: sử dụng ngôn ngữ lập trình Pascal để dịch một chương trình viết sẵn ra đĩa và thi hành chương trình đã dịch để học sinh quan sát. Thông dịch: Sử dụng các lệnh trong Command promt để thực hiện một số lệnh của DOS hoặc dùng ngôn ngữ Foxpro để thực hiện một số lệnh. Đi kèm với các chương trình dịch thường có các công cụ như soạn thảo chương trình nguồn, lưu trữ, tím kiếm, phát hiện lỗi, thông báo lỗi... ngôn ngữ lập trình thường chứa tất cả các dịch vụ trên. Bài 1: Khái niệm lập trình và ngôn ngữ lập trình Khái niệm lập trình: Lập trình là sử dụng một cấu trúc dữ liệu và một ngôn ngữ lập trình cụ thể để mô tả dữ liệu và diễn đạt thuật toán. - Trả lời: có 3 loại ngôn ngữ lập trình: ngôn ngữ máy, hợp ngữ, ngôn ngữ bậc cao. Chương trình viết bằng ngôn ngữ máy có thể nạp trực tiếp vào bộ nhớ thi hành ngay. Chương trình viết bằng ngôn ngữ bậc cao nói chung không phụ thuộc vào loại máy, muốn thi hành được thì nó phải được chuyển sang ngôn ngữ máy. => Cần phải có chương trình dịch để chuyển chương trình viết bằng ngôn ngữ lập trình bậc cao sang ngôn ngữ máy để máy có thể thi hành được. Chương trình dịch có 2 loại: Biên dịch và thông dịch * Biên dịch(Compiler): thực hiện các bước sau: + Duyệt, kiểm tra, phát hiễn lỗi và kiểm tra tính đúng đắn của các câu lệnh trong chương trình nguồn. + Dịch toàn bộ chương trình nguồn thành một chương trình đích (ngôn ngữ máy) để có thể thực hiện trên máy và có thể lưu trữ để sử dụng lại khi cần. * Thông dịch (Interpreter): Dịch lần lượt từng câu lệnh và thực hiện ngay câu lệnh ấy. Thông dịch là việc lặp lại dãy các bước sau: + Kiểm tra tính đúng đắn của câu lệnh tiếp theo trong chương trình nguồn + Chuyển đổi các câu lệnh đó thành một hay nhiều câu lệnh trong ngôn ngữ máy. + Thực hiện các lệnh ngôn ngữ máy vừa chuyển được. Củng cố, dặn dò Nhắc lại một số khái niệm mới. Ngày soạn: Tiết PPCT: Bài 2 các thành phần của ngôn ngữ lập trình Mục đích, yêu cầu Biết ngôn ngữ lập trình có ba thành phần cơ bản là: bảng chữ cái, cú pháp và ngữ nghĩa. Hiểu và phân biệt được ba thành phần này. Biết các thành phần cơ sở của Pascal: bảng chữ cái, tên, tên chuẩn, tên riêng (từ khoá), hằng và biến. Phân biệt được tên, hằng và biến Biết đặt tên đúng. Phương pháp, phương tiện dạy học Phương pháp: thuyết trình, vấn đáp Phương tiện: máy chiếu, máy tính, phông hoặc bảng chiếu. Lưu ý sư phạm Phần này bắt đầu một kiến thức mới, ngoài giới thiệu cho các em biết các khai niệm mới, cần giải thích sự khác nhau giữa cú pháp và ngữ nghĩa. Riêng các thành phần cơ sở của pascal, với mỗi khái niệm cần nên lấy ví dụ minh hoạ đúng-sai, và ví dụ sự khác biệt giữa chúng, nên minh hoạ bằng một đoạn chương trình đơn giản. Hoạt động dạy – học 1. ổn định tổ chức 2. Bài cũ: -Nêu các bước giải bài toán trên máy tính - Nêu khái niệm về ngôn ngữ lập trình Hoạt động của giáo viên và học sinh Nội dung GV: Các ngôn ngữ lập trình nói chung thường có chung một số thành phần như: dùng những ký hiệu nào để viết chương trình, viết theo quy tắc nào, viết như vậy có ý nghĩa là gì? mỗi ngôn ngữ lập trình có một quy định riêng về những thành phần này. Ví dụ: bảng chữ cái của các ngôn ngữ lập trình khác nhau có sự khác nhau. Chẳng hạn ngôn ngữ Pascal không sử dụng dấu! Nhưng ngôn ngữ C++ lại sử dụng ký hiệu này. - Cú pháp các ngôn ngữ lập trình khác nhau cũng khác nhau, ngôn ngữ pascal dùng cặp từ Begin-End để gộp nhiều lệnh thành một lệnh những C++ lại dùng cặp ký hiệu {}. Ví dụ: xét 2 biểu thức: A+B (1) A,B là các số thực A+B (2) A,B là các số nguyên. Khi đó dấu + trong (1) mang ý nghĩa cộng hai số thực, còn trong (2) lại mang ý nghĩ cộng 2 số nguyên. - Mỗi ngôn ngữ khác nhau cũng có cách xác định ngữ nghĩa khác nhau. HS: lắng nghe, ghi chép GV: Đưa ra ví dụ ngôn ngữ tự nhiên cũng có bảng chữ cái, ngữ pháp (cú pháp) và nghĩ của câu, từ. GV: Trong các ngôn ngữ lập trình nói chung, các đối tượng sử dụng trong chương trình đều phải đặt tên để tiện cho việc sử dụng. Việc đặt tên trong các ngôn ngữ khác nhau là khác nhau, có ngôn ngữ phân biệt chữ hoa, chữ thường, có ngôn ngữ không phân biệt chữ hoa, chữ thường. GV: giới thiệu cách đặt tên trong ngôn ngữ cụ thể Pascal ví dụ: tên đúng: a,b,c,x1,x2, _ten.. tên sai: a bc, 2x, a&b... GV: Ngôn ngữ nào cũng có 3 loại tên cơ bản này những tuỳ theo ngôn ngữ mà các tên có ý nghĩa khác nhau trong các ngôn ngữ khác nhau. - Trong khi soạn thảo chương trình, các ngôn ngữ lập trình thường hiển thị các tên dành riêng với một màu chữ khác hẵn với các tên còn lại giúp người lập trình nhận biết được tên nào là tên danh riêng( từ khoá). Trong ngôn ngữ Pascal, từ khoá thường hiển thị bằng màu trắng. GV: Mở một chương trình viết bằng Pascal để học sinh quan sát cách hiển thị của một số từ khoá trong chương trình. - Các ngôn ngữ lập trình thường cung cấp một số đơn vị chương trình có sẵn trong thư viện chương trình giúp người lập trình có thể thực hiện nhanh một số thao tác thường dùng. - Giáo viên chỉ cho học sinh một số tên chuẩn trong ngôn ngữ Pascal. GV: Đưa ra ví dụ để viết chương trình giải phương trình bậc 2 ta cần khai báo những tên sau: + a,b,c là ba tên dùng để lưu ba hệ số của phương trình. + x1,x2 là 2 tên dùng để lưu nghiệm của nó. + delta là tên dùng để lưu giá trị của delta. - Hằng thường có 2 loại, hằng được đặt tên và hằng không được đặt tên. hằng không được đặt tên là những giá trị viết trực tiếp khi viết chương trình. Mỗi ngôn ngữ lập trình có một quy định về cách viết hằng riêng. hằng được đặt tên cũng có cách đặt tên cho hằng khác nhau. - Biến là đối tượng được sử dụng nhiều nhất trong khi viết chương trình. Biến là đại lượng có thể thay đổi được nên thường được dủng để lưu trữ kết quả, làm trung gian cho các tính toán, mỗi loại ngôn ngữ có những loại biến khác nhau và cách khai báo cũng khác nhau. - Khi viết chương trình, người lập trình thường có nhu cầu giải thích cho những câu lệnh mình viết, để khi đọc lại được thuận tiện hoặc người khác đọc có thể hiểu được chương trình mình viết, do vậy các ngôn ngữ lập trình thường cung cấp cho ta cách để đưa các chú thích vào trong chương trình. - Ngôn ngữ khác nhau thì cách viết chú thích cũng khác nhau. GV: mở một chương trình Pascal đơn giản có chứa các thành phần là các khái niệm của bài học, nếu không có máy để giới thiệu thì có thể sử dụng bản in khổ lớn. chỉ cho học sinh từng khái niệm được thể hiện trong chương trình. 1. Các thành phần cơ bản - Mỗi ngôn ngữ lập trình thường có 3 thành phần cơ bản là: bảng chữ cái , cú pháp và ngữ nghĩa. a. Bảng chữ cái: Là tập các ký hiệu dùng để viết chương trình. Trong ngôn ngữ Pascal bảng chữ cái gồm: các chữ cái trong bảng chữ cái tiếng Anh, các chữ số 0->9 và một số ký tự đặc biệt. (SGK). b. Cú pháp: là bộ quy tắc dùng để viết chương trình. c. Ngữ nghĩa: Xác định ý nghĩa thao tác cần thực hiện ứng với tổ hợp ký tự dựa vào ngữ cảnh của nó. - Cú pháp cho biết cách viết chương trình hợp lệ, ngữ nghĩa xác định ý nghĩa của các tổ hợp ký tự trong chương trình. - Lỗi cú pháp được chương trình dịch phát hiện và thông báo cho người lập trình. Chương trình không còn lỗi cú pháp thì mới có thể dịch sang ngôn ngữ máy. - Lỗi ngữ nghĩa được phát hiện khi chạy chương trình. 2. Một số khái niệm a. Tên: - Mọi đối tượng trong chương trình đều phải được đặt tên. Mỗi ngôn ngữ lập trình có một quy tắc đặt tên riêng. - Trong ngôn ngữ Turbo Pascal tên là một dãy liên tiếp không quá 128 ký tự bao gồm các chữ cái, chữ số và dấu gạch dưới nhưng không được bắt đầu bằng chữ số. Trong Free Pascal, tên có tối đa 255 ký tự. Ngôn ngữ lập trình Pascal không phân biệt chữ hoa, chữ thường nhưng một số ngôn ngữ lập trình khác lại có phân biệt. - Ngôn ngữ lập trình thường có 3 loại tên cơ bản: tên dành riêng, tên chuẩn và tên do người lập trình tự đặt. Tên dành riêng: - Là những tên được ngôn ngữ lập trình quy định với ý nghĩa xác định mà người lập trình không thể dùng với ý nghĩa khác. - Tên dành riêng còn được gọi là từ khoá Ví dụ: một số từ khoá Trong ngôn ngữ Pascal: Program, Var, Uses, Begin, End... Trong ngôn ngữ C++: main, include, while, void... Tên chuẩn: - Là những tên được người lập trình dùng với ý nghĩa nào đó trong các thư viện của người lập trình, tuy nhiên người lập có thể sử dụng với ý nghĩa khác. Ví dụ: một số tên chuẩn Trong Pascal: Real, Integer, Sin, Cos, Char... Trong C++: cin, cout, getchar... Tên do người lập trình tự đặt - Được xác định bằng cách khai báo trước khi sử dụng và không được trùng với tên dành riêng. - Các tên trong chương trình không được trùng nhau. b. Hằng bà biến Hằng Là các đại lượng có giá trị không đổi trong quá trình thực hiện chương trình. - Các ngôn ngữ lập trình thường có: + Hằng số học: số nguyên hoặc số thực. + Hằng xâu: là chuổi ký tự đặt trong dấu nháy ‘’ hoặc “” + Hằng logic: là các giá trị đúng hoặc sai Biến - Là đại lượng được đặt tên, giá trị có thể thay đổi được trong chương trình. - Các ngôn ngữ lập trình có nhiều loại biến khác nhau. - Biến phải khai báo trước khi sử dụng. c. Chú thích - Trong khi viết chương trình có thể viết các chú ... uy nghĩ và trả lời - Kiểu mảng một chiều 30 kí tự - Khai báo một biến mảng A để lưu họ tên của một học sinh. Readln(A[1]); Readln(A[2]); Readln(A[3]); ... - Chương trình được viết dài dòng, nhập dữ liệu lâu. - Kiểu mảng một chiều 30 kí tự - Khai báo một biến mảng A để lưu họ tên của một học sinh. Readln(A[1]); Bai12: Kiểu xâu Mục đích - Biết xâu là một dãy ký tự (có thể coi xâu là một mảng một chiều) - Biết cách khai báo xâu, truy cập phần tử của xâu - Sử dụng được một số thủ tục, hàm thông dụng về xâu - Cài đặt được một số chương trình đơn giản có sử dụng xâu Nội dung Hỏi: Để lưu trữ và xử lý họ và tên của một người, ta thực hiện ntn? TL: Dùng mảng một chiều VD: n g o k h o n g Program VD; Var Ho_ten:array[1..20] of char; i:integer; Begin For i:=1 to 20 do Begin Writeln(‘nhap ky tu thu’,i); Readln(ho_ten[i]); End; For i:=1 to 20 do Writeln(ho_ten[i]); Readln; End. Nhược điểm: Lâu, phức tạp Từ đó cho ta thấy cần phải có kiểu dữ liệu mới. đó là kiểu xâu Một số khái niệm: - Xâu là một dãy kí tự trong bảng ASCII - Mỗi ký tự gọi là một phần tử của xâu - Số lượng kí tự trong xâu gọi là độ dài của xâu - Xâu có độ dài bằng 0 gọi là xâu rỗng. - Tham chiếu tới phần tử trong xâu được xác định thông qua chỉ số của phần tử trong xâu trong Pascal, tham chiếu tới phần tử trong xâu: [chỉ số] 1. Khai báo biến xâu trong Pascal Var : String[độ dài lớn nhất của xâu]; VD: Var Ten:String[20]; Que_quan: String[30]; Lưu ý: - Nếu không khai báo độ dài thì ngầm định độ dài là 255 - Hằng ký tự được đặt trong cặp nháy đơn ‘’ VD: ‘Ha noi’ VD: viết chương trình nhập họ tên, in ra quê quán của một người. Program VD; Var Ho_ten:string[20]; Begin Writeln(‘nhap ho ten’); readln(ho_ten); Writeln(ho_ten); Readln; End. 2. Các thao tác xử lý xâu a. Phép ghép xâu: kí hiệu bằng dấu + ví dụ: ‘Ha’+ ‘Noi’ cho kết quả là ‘Ha Noi’ b. Phép so sánh: (=); (); (), (=) - Xâu A lớn hơn xâu B nếu kí tự đầu tiền khác nhau giữa chúng kể từ trái qua phải trong xâu A có mã ASCII lớn hơn. (A-65) -> (Z-90); (a-97) -> (z-122) - Nếu A và B là các xâu có độ dài khác nhau, A là đoạn đầu của B thì A nhỏ hơn B - Hai xâu bằng nhau là hai xâu giống nhau hoàn toàn. Các thủ tục và hàm chuẩn xử lý xâu c. Thủ tục delete(st,vt,n): xoá n kí tự của biến st bắt đầu từ vị trí vt giá trị st thao tác kết quả ‘abcdef’ delete(st,5,2) ‘abcd’ ‘song hong’ delete(st,1,5) ‘hong’ d. Thủ tục Insert(s1,s2,vt): Chèn xâu s1 vào xâu s2 bắt đầu từ vị trí vt giá trị s1 giá trị s2 thao tác kết quả ‘ ngo ’ ‘tonkhong’ insert(s1,s2,4) ‘ton ngo khong’ e. Hàm Copy(S,vt,N): tạo xâu gồm N kí tự liên tiếp bắt đầu từ vị trí vt của xâu S giá trị xâu S biểu thức kết quả ‘ton ngo khong’ copy(s,9,5) ‘khong’ f. Hàm length(s): cho giá trị là độ dài xâu s giá trị s biểu thức kết quả ‘song hong’ length(s) 9 g. Hàm Pos(s1,s2): cho vị trí xuất hiện đầu tiên của xâu s1 trong xâu s2 giá trị s2 biểu thức kết quả ‘song hong’ pos(‘ng’,s2) 3 h. Hàm Upcase(ch): cho chữ cái in hoa ứng với chữ cái trong ch giá trị ch biểu thức kết quả ‘d’ upcase(ch) ‘D’ 12/03/08 Bài 13. Kiểu bản ghi I. Mục đích yêu cầu - Biết khải niệm kiểu bản ghi - Biết cách khai báo bản ghi, tham chiếu trường của bản ghi II. Phương pháp, phương tiện dạy học: - Phương pháp: thuyết trình - Phương tiện: máy chiếu, bảng III. Lưu ý sư phạm Cần nhấn mạnh cho học sinh trong kiểu bản ghi các trường có thể thuộc các kiểu dữ liệu khác nhau. Các bản ghi thường mang các thông tin về một đối tượng cần quản lý. IV. Nội dung bài giảng Hoạt động của Giáo viên- Học sinh nội dung Xét ví dụ: viết chương trình quản lý điểm học sinh gồm họ tên, toan, ly,hoa,tb,xếp loại GV: Đưa ra một số câu hỏi sau: - Làm thế nào để quản lý toàn bộ thông tin trên của học sinh? - Mỗi thông tin trên có kiểu dữ liệu là gì? HS: có thể quản lý mỗi dữ kiện trên là một mảng một chiều. Ngôn ngữ lập trình bậc cao có cách tốt hơn để quản lý dữ liệu trên -> bản ghi. GV. Lấy một bảng điểm của học sinh rồi chỉ rõ: mỗi hàng ta gọi là một bản ghi, mỗi cột là một trường. GV. Mỗi ngôn ngữ có một cách khai báo kiểu bản ghi khác nhau Ngôn ngữ Pascal cho phép khai báo biến bản ghi thông qua khai báo kiểu bản ghi. trước hết phải khai báo kiểu bản ghi sau đó biến bản ghi được khai báo thông qua kiểu bản ghi này. GV. Làm thế nào để có thể khai báo được nhiều biến bản ghi có cùng một kiểu? HS. Sử dụng kiểu mảng trong đó mỗi phần tử của mảng sẽ có kiểu bản ghi. GV. Khi có nhu cầu thay đổi thông tin trong từng trường, làm thế nào để truy cập vào từng trường của bản ghi? . Một số khái niệm - Kiểu bản ghi được dùng mô tả các đối tượng có cùng một số thuộc tính mà các thuộc tính có thể có các kiểu dữ liệu khác nhau. - Mỗi bản ghi sẽ lưu trữ dữ liệu về một đối tượng cần quản lí. - Mỗi thuộc tính của đối tượng tương ứng với một trường của bản ghi. - Các ngôn ngữ lập trình thường cho cách để xác định: + Tên kiểu bản ghi + Tên các trường + Kiểu dữ liệu của trường + Cách khai báo biến + Cách tham chiếu đến trường Cách khai báo và sử dụng kiểu bản ghi trong ngôn ngữ Pascal. 1. Khai báo Để khai báo báo biến bản ghi , thường khai báo một kiểu bản ghi sau đó khai báo viến bản ghi. Cách khai báo biến kiểu: Type = Record : ; ..................................................... :; End; Cách khai báo biến: Var : ; Var :Array[1..n] of ; Để truy cập vào từng trường của bản ghi, ta viết: . VD: A.hoten Lop[i].Toan 2. Gán giá trị có 2 cách để gán giá trị của bản ghi. - Dùng lệnh gán trực tiếp bằng câu lệnh gán. - Gán giá trị cho từng trường dùng câu lệnh gán gán giá trị cho các trường hoặc nhập vào từ bàn phím. VD: A.hoten:=’Nguyen Thị Khong’ Readln(a.ngaysinh) V. Củng cố , dặn dò - Nhắc lại một số khai niệm mới - Nhắc lại cấu trúc câu lệnh về việc khai báo, truy cập đến các thành phần của bản ghi. - Ra bài tập về nhà: xây dựng chương trình tính lương 15/2/2010 Tiết PPCT: 36 Tệp và thao tác với tệp Bài14. Kiểu dữ liệu tệp Bài 15: Thao tác với tệp I. Mục đích , yêu cầu 1. Kiến thức - Học sinh biết được vai trò của kiểu dữ liệu tệp - Học sinh biết được có hai cách phân loại tệp - Học sinh biết khai báo biến tệp và các thao tác cơ bản đối với tệp văn bản 2. Kỹ năng Dần hình thành kỹ năng về các thao tác với tệp văn bản 3. Thái độ Rèn luyện cho học sinh có ý thức lưu trữ dữ liệu một cách khoa học , phòng chống mất thông tin. II. Phương pháp, phương tiện - Sử dụng thuyết trình, giảng giải, gợi ý nêu vấn đề. III. Nội dung Nội dung- hoạt động của giáo viên hoạt động của học sinh GV: Trong các giờ thực hành đã học, sau khi chạy một chương trình ta thấy kết quả in lên màn hình, tuy nhiên muốn sử dụng kết quả đó về sau thì không được(nó không lưu trữ lâu dài) => để khắc phục nhược điểm này ta nghiên cứu dữ liệu kiểu tệp. Bài 14: Kiểu dữ liệu tệp 1. Vai trò của kiểu tệp Câu hỏi 1: Trong máy tính có những bộ nhớ nào? loại bộ nhớ nào không bị mất dữ liệu khi tắt máy hoặc mất điện? Câu hỏi 2: Vậy theo em thì các kiểu dữ liệu đã học được lưu trữ ở bộ nhớ nào? dữ đớn xem dữ liệu kiểu tệp được lưu trữ trên bộ nhớ nào? Câu hỏi 3: Bộ nhớ trong hay bộ nhớ ngoài thường có dung lượng lớn hơn? GV: chốt lại - Dữ liệu kiểu tệp được lưu trữ lâu dài ở bộ nhớ ngoài cho nên nó không bị mất khi tắt máy hoặc mất điên. - Lượng dữ liệu lưu trữ trên tệp có thể rất lớn và chỉ phụ thuộc vào dung lượng ổ đĩa. 2: Phân loại tệp và thao tác với tệp. GV: Có thế phần loại như sau: - Theo cách tổ chức dữ liệu + Tệp văn bản: Dữ liệu được ghi dưới dạng các kí tự theo mã ASCII. + Tệp có cấu trúc: Các thành phần được tổ chức theo một cấu trúc nhất định- tệp ảnh, âm thanh... - Theo cách thức truy cập + Tệp truy cập tuần tự: Truy cập lần lượt các dữ liệu. + Tệp truy cập trực tiếp: Tham chiếu đến dữ liệu cần truy cập bằng cách xác định trực tiếp vị trí dữ liệu đó. GV: có hai 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 các thao tác đó được thể hiện như thế nào đối với tệp văn bản? Để tìm hiểu cách thao tác với tệp ta sang bài 15. Bài 15: Thao tác với tệp 1: Khai báo GV: Viết khai báo biến tệp lên bảng rồi giải thích các từ khoá, tên biến tệp để học sinh hiểu đươc. Var : Text; Ví dụ: Var tep1,tep2:text; 2: Thao tác với tệp a. Gắn tên tệp: GV: giải thích cho học sinh tại sao phải gắn tên tệp cho biến tệp, rồi đưa ra thủ tục: Assign(,); VD: Để gắn tệp KQ.TXT cho biến tệp f Assign(f,’KQ.TXT’); b. Mở tệp GV: lấy ví dụ về 2 tình huống cần phải mở vở ‘tin học 11’ đó là: mở ra để ghi bài(ghi dữ liệu) và mở ra để học bài (độc dữ liệu) => 2 trường hợp phải mở tệp. GV: Giới thiệu hai thủ tục để mở tệp + Mở tệp để ghi dữ liệu: Rewrite(); + Mở tệp để đọc dữ liệu Reset(); GV: Trước khi mở tệp, biến tệp phải được gắn tên tệp bằng thủ tục Assign và phải được khai báo trước. GV: yêu cầu học sinh lấy vị dụ (khai báo biến tệp, gắn tên tệp cho biến tệp, mở tệp) sau đó gọi hai học sinh trình bày. GV: Khi thực hiện thủ tục Rewrite(tep1). Nếu trên thư mục chưa có tệp hoc_sinh.txt, thì tệp sẽ được tạo với nội dung rỗng, nếu đã có thì nội dung cũ sẽ bị xoá để chuẩn bị ghi dữ liệu mới. c. Đọc/ghi tệp văn bản Câu hỏi: để nhập dữ liệu từ bàn phím và để in dữ liệu lên màn hình ta có thể dùng thủ tục gì? * Đọc dữ liệu từ tệp Read(,); Readln(,); * Ghi dữ liệu vào tệp: Write(,); Writeln(,); * Một số hàm thường dùng đối với tệp văn bản + hàm EOF(): trả về giá trị true nếu con trỏ tệp đang chỉ tới cuối tệp. + Hàm EOLN() trả về giá trị true nếu con trỏ tệp đang chỉ tới cuối dòng. d. Đóng tệp GV: Sau khi làm việc xong với tệp cần phải đóng tệp, khi đó hệ thống mới hoàn tất việc ghi dữ liệu ra tệp. Close(); HS: Bộ nhớ trong và bộ nhớ ngoài. Bộ nhớ ngoài không bị mất dữ liệu khi mất điện. HS: dữ liệu đã học được lưu trên bộ nhớ trong. Dữ liệu kiểu tệp được lưu ở bộ nhớ ngoài. HS: bộ nhớ ngoài thường có dung lượng lớn hơn. Ghi bài Ghi bài HS: lấy một vài ví dụ để khao báo biên tệp văn bản. VD: Var f1,f2:Text; HS: Mỗi học sinh tự lấy một vài ví dụ và ghi vào vở. HS: mỗi học sinh lấy một ví dụ VD: mở tệp để ghi dữ liệu vào tệp hoc_sinh.txt ta có thể mở tệp bằng thủ tục assign(tep1,’hoc_sinh.txt’); Rewrite(tep1); VD: Để đọc dữ liệu từ tệp hoc_sinh.txt ta có thể mở tệp bằng thủ tục assign(tep2,’hoc_sinh.txt’); reset(tep2); VD: Giả sử trong chương trình có khai báo: var tepa, tepb:text; tệp tepa mở để đọc dữ liệu, tệp tepb dùng để ghi dữ liệu. Các thủ tục dùng để đọc dữ liệu từ têp tepa có thể như sau: Read(tepa,a,b,c); Các thủ tục dùng để ghi dữ liệu vào tệp tepb có thể như sau: write(tepb,a,b,c); VD: close(f); IV. Củng cố - Gọi 1 học sinh khái quát lại vai trò của kiểu tệp và phân loại tệp - Học sinh khái quát lại các thao tác phải thực hiện khi đọc dữ liệu từ tệp và ghi dữ liệu vào tệp (dựa vào hình 16-sgk) Assign(,); Rewrite(); Reset(); write(,<danh sách kết quả); Read(, danh sách biến); Close(); Ghi Đọc
Tài liệu đính kèm: