Ngôn ngữ lập trình Pascal

GOTOXY(X,Y);

 Là thủ tục đặt con trỏ vào toạ độ X, Y của màn hình. X là tọa độ cột được tính tà 1 đến 80. Y là tọa độ dòng được tính từ 1 đến 25.

 CLRSCR;

(Clear Screen) Là thủ tục xoá toàn bộ màn hình và sau khi xoá con trỏ sẽ ở vị trí góc trên bên trái.

* Ngoài cách nhập dữ liệu bằng bàn phím ta còn có cách nhập dữ liệu là những số nguyên ngẫu nhiên trong khoảng từ 0 đến N như sau: RANDOM(N);

 

 

ppt138 trang | Chia sẻ: vuductuan12 | Lượt xem: 2563 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Ngôn ngữ lập trình Pascal, để xem tài liệu hoàn chỉnh bạn hãy click vào nút TẢi VỀ
Alt-F9 Chạy chương trình: Ctrl-F9 Các kháI niệm cơ bản 1. Bộ ký tự: Turbo Pascal được xây dựng với bộ ký tự sau: Các chữ cái: 26 chữ hoa (A, B, C, …) 	 26 chữ thường (a, b, c, …) Các chữ số thập phân: 0..9 Các dấu toán học thông dụng: + - * / =… Dấu gạch nối, các kí hiệu đặc biệt: &, $, ^, …. 2. Từ khoá - Keyword Từ khoá: là các từ dành riêng trong PASCAL, không được dùng nó vào việc khác hoặc đặt tên mới trùng với các từ khoá. PASCAL chia làm mấy loại từ khoá như sau: - Từ khoá chung: Prorgam, Begin, End.. . - Từ khoá khai báo: var, const, label, type.. . - Từ khoá của lệnh: if.. ., then.. ., else.. . Các từ khoá này có thể viết bằng chữ to hoặc chữ nhỏ, giá trị và ý nghĩa của từ khoá không thay đổi. VD: BEGIN có thể viết là begin, Begin, beGin.. . 3. Tên. Khái niệm: Tên là một dãy ký tự được dùng để đặt tên cho một đối tượng của Pascal bao gồm tên của hằng, biến, kiểu, chương trình.. . Đặc điểm: Tên được tạo thành từ các chữ cái và các chữ số, song chữ đầu bắt buộc là chữ cái. Tên không chứa dấu cách. Tên không trùng với từ khoá hoặc tên có sẵn. Chú ý: Để làm sáng sủa tên, người ta cho phép sử dụng dấu gạch nối dưới _ (cần phân biệt với dấu trừ - ) khi viết tên. - Một số tên như tên của một số chương trình con (sin, cos.. . ) đã được Pascal định nghĩa sẵn được gọi là tên chuẩn hay tên đã được định nghĩa trước. Một số tên chuẩn của Pascal: Boolean, Char, Real, Byte.. . Cấu trúc chung của một chương trình pascal Phần 1: Phần tiêu đề. Phần 2: Phần khai báo. Phần 3: Phần thân CT Phần tiêu đề ý nghĩa: Dùng để đặt tên cho CT Cách dùng: PROGRAM Tên CT; Chú ý: - Phần tiêu đề chỉ nằm trên 1 dòng. - Có thể không có. Phần Khai Báo ý nghĩa: Dùng để mô tả đối tượng (hằng, biến…) sẽ được sử dụng trong chương trình: tên, kiểu dữ liệu... Phân loại: Có 7 loại khai báo có thể có trong 1 CT PASCAL (USES, LABEL, CONST, TYPE, VAR, FUNCTION, PROCEDURE). Chú ý: - Phần khai báo cũng có thể không có tuỳ thuộc vào từng yêu cầu của bài toán. - Khai báo USES bắt buộc ở vị trí đầu còn thứ tự của các phần khai báo còn lại là không bắt buộc. USES Danh sách Tên thư viện ; ý nghĩa: Dùng để khai báo sử dụng các thư viện chuẩn có sẵn của PASCAL sẽ sử dụng trong CT; Ví dụ minh hoạ: - Uses WINCRT; - Uses GRAPH, DOS; CONST Tên hằng = giá trị hằng; ý nghĩa: Dùng để khai báo các đại lượng hằng sẽ sử dụng trong CT; Ví dụ minh hoạ: Const 	a = 5; 	b = 3.15; 	c = true; 	d =‘A’; VAR danh sách Tên biến: Kiểu dữ liệu; ý nghĩa: Dùng để khai báo các biến sẽ sử dụng trong CT; Khi ta khai báo 1 biến có nghĩa là ta sẽ sử dụng 1 ô nhớ trong máy tính có dung lượng bằng kiểu dữ liệu của biến. Ví dụ minh hoạ: Var i,j: integer; Chú ý: Có thể khai báo nhiều biến cùng kiểu thông qua dấu phẩy giữa các tên biến. Phần thân chương trình ý nghĩa: chứa toàn bộ nội dung gồm các câu lệnh thực hiện CT. Đặc điểm: Các câu lệnh nằm giữa 2 từ khoá BEGIN….END. Các câu lệnh ngăn cách nhau bởi dấu chấm phẩy. Lời chú giải: Các câu này được đặt giữa 2 dấu ngoặc nhọn {…} hoặc (* ... *) và không được dịch khi thực hiện chương trình. cấu trúc chung một chương trình pascal Program tên chương trình; Label danh sách nhãn; Const danh sách hằng; Type danh sách các kiểu; Var danh sách các biến; Function tên hàm ... ; ...... Procedure tên thủ tục ... ; ...... Begin . . . . . . . ; End. các kiểu dữ liệu Kiểu dữ liệu Một kiểu dữ liệu là sự qui định về cấu trúc, miền giá trị của dữ liệu và tập các phép toán tác động lên miền giá trị đó. Một NNLT chỉ chấp nhận và xử lý những dữ liệu tuân theo sự qui định về kiểu của NNLT đó. Một dữ liệu bao giờ cũng thuộc về một kiểu dữ liệu nhất định. Phân loại: Có 2 loại Kiểu dữ liệu đơn giản. Kiểu dữ liệu có cấu trúc. Kiểu dữ liệu đơn giản: Kiểu Logic Kiểu số nguyên Kiểu số thực Kiểu ký tự Kiểu dữ liệu có cấu trúc: Kiểu array Kiểu string Kiểu set Kiểu file Kiểu record 1. Kiểu logic (Boolean) - Từ khoá khai báo: BOOLEAN. - Phạm vi : True, False. - Cấp phát : 1 byte. - Phép tính: AND, OR, NOT, XOR. 2. Kiểu Số nguyên - Phân loại: Có năm kiểu số nguyên. - Phép tính: Cộng (+), trừ (-), nhân (*), chia (/ div mod). 3. Kiểu Số thực - Phân loại: Có năm kiểu số thực: - Phép toán: +, -, *, / - Dạng thể hiện: Có 2 dạng Dạng viết thập phân bình thường Dạng viết có phần mũ 3. Kiểu Số thực - Dạng thể hiện: Dạng viết thập phân bình thường: Dùng dấu chấm thay cho dấu phẩy thập phân. VD: 3.14, 3.0 Dạng viết có phần mũ: Gồm 2 phần (phần định trị và phần mũ viết sau chữ E để biểu diễn số mũ của cơ số 10) VD: 623.123=6.23123*102 = 6.23123E+02 -0.001234=-1.234*10-3=-1.234E-03 4. Kiểu ký tự (Char) - Từ khoá khai báo: CHAR. - Phạm vi : 256 ký tự trong bảngmã ASCII. - Cấp phát : 1 byte. - Phép tính : + (phép cộng xâu). 	Một giá trị kiểu Char biểu diễn được một ký tự thông qua bảng mã ASCII. Mã của một ký tự chính là số thứ tự của nó trong bảng mã. 4. Kiểu ký tự (Char) Ví dụ: Có tất cả 256 ký tự đánh số từ 0 đến 255, mã của ký tự A là 65. Để biểu diễn một ký tự có thể dùng một trong ba cách: đặt ký tự trong hai dấu nháy đơn, dùng hàm Chr(n), dùng #n (trong đó n là mã của ký tự cần biểu diễn) Ví dụ: ‘A’, Chr(65), #65 Một số hàm thường dùng SQR(x): Bình phương của một số nguyên hay thực ABS(x): trị tuyệt đối của x SQRT(x): căn bậc hai của x SIN(x): tính giá trị sin(x) với x là radian COS(x):tính giá trị cos(x) với x là radian ARCTAN(x): tính gía trị Arctg(x) LN(x): hàm lôga cơ số e của x EXP(x): hàm ex TRUNC(x): cắt bỏ phần lẻ thập phân của x (nếu có). Một số hàm thường dùng ROUND(x): cho số nguyên gần x nhất. PRED(x): cho giá trị đứng trước x SUCC(x): cho giá trị sau x (x không là số thực) ORD(ký tự): cho STT của ký tự trong bảng mã ASCII CHR(n): cho ký tự có STT là n trong bảng mã ASCII. ODD(x): kiểm tra tính chẵn lẻ của một số. hàm trả lại True khi x lẻ và False khi x chẵn. các thủ tục nhập xuất dữ liệu Mục đích: Dùng để đưa dữ liệu vào để thực hiện bài toán và đưa dữ liệu ra Các thủ tục: Nhập dữ liệu Xuất dữ liệu thủ tục nhập dữ liệu Có 2 cách để nhập dữ liệu Sử dụng phép gán Sử dụng thủ tục READ Chú ý: Ta chỉ có thể nhập dữ liệu cho các biến Khi nhập dữ liệu vào phải đảm bảo sự tương ứng: Về số lượng Về thứ tự Về kiểu dữ liệu 1/ sử dụng phép gán Tên biến:= Biểu thức; Ví dụ: a:=5; b:=2; x:= a + b; Chú ý: Tính tương thích của kiểu dữ liệu Vế trái của phép gán chỉ có thể là 1 biến thủ tục nhập dữ liệu 2/ sử dụng thủ tục read Các mẫu lệnh READ(Biến1, Biến 2,…,Biến N);	(1) READLN(Biến1, Biến 2,…,Biến N);	(2) READLN;	(3) Thực hiện: Khi chương trình thực hiện thì trên màn hình xuất hiện dấu nhấp nháy_, ta phải nhập dữ liệu vào từ bàn phím. Khi nhập dữ liệu cho biến xong ta phải ấn Enter để kết thúc. thủ tục nhập dữ liệu Thực hiện Dạng 1, dạng2: Nhập dữ liệu cho các biến, sau khi kết thúc, con trỏ chuyển xuống dòng tiếp theo. Dạng 3: Dừng chương trình lại. Nhấn Enter để tiếp tục. thủ tục nhập dữ liệu thủ tục xuất dữ liệu Các mẫu lệnh WRITE(Item1, Item2,...Item N);	(1) WRITELN(Item1, Item2,...Item N);	(2) WRITELN;	(3) Trong đó: Item1, Item 2,...Item N có thể là: Hằng, biến, hàm hoặc là biểu thức. Lưu ý: Nếu Item là hằng ký tự thì phải đặt chúng trong cặp dấu nháy. thủ tục xuất dữ liệu VD: WRITE(‘chao cac ban‘);	Viết ra hằng ký tự WRITE(X);	Viết ra biến WRITE(sin(x));	Viết ra hàm WRITE(-b/2*a);	Viết ra biểu thức Thực hiện Tại vị trí hiện thời của con trỏ, giá trị của các Item lần lượt được in lên màn hình. thủ tục xuất dữ liệu Dạng 1: Sau khi giá trị của các Item được in ra màn hình thì con trỏ ở cuối dòng. Dạng 2: Sau khi giá trị của các Item được in lên màn hình thì con trỏ tự động chuyển xuống đầu dòng tiếp theo. Dạng 3: Thực hiện thao tác xuống dòng. Sự khác nhau giữa WRITE và WRITELN ? a/ Viết ra kiểu số nguyên: Cách viết không quy cách: Các số nguyên sẽ được viết ra màn hình đúng bằng chữ số đó và bắt đầu từ bên trái. VD: WRITE(123); - Cách viết có quy cách: Ta sẽ bố trí sỗ chỗ cố định để viết số nguyên bằng cách thêm dấu : và theo sau là số chỗ để viết. Máy sẽ viết số nguyên từ bên phải sang bên trái, nếu thừa chỗ nó sẽ để trống ở bên trái. VD: WRITE(1233:6); b/ Viết ra kiểu số thực: Cách viết không quy cách: Gồm 2 phần (phần định trị và phần mũ viết sau chữ E để biểu diễn số mũ của cơ số 10) VD: 123.456=1.23456*102 = 1.23456E+02 -0.001234=-1.234*10-3=-1.234E-03 VD: WRITE(3.14); Cách viết có quy cách: Item : M : N M: Số chỗ dành cho cả số thực N: Số chỗ dành cho phần thập phân VD: WRITE(3.14:6:1); c/ Viết ra kiểu ký tự: Cách viết không quy cách: Máy sẽ viết ra các ký tự bình thường (mỗi ký tự chiếm 1 chỗ) Cách viết có quy cách: Máy sẽ bố trí các chỗ trắng ở phía trái d/ Viết ra kiểu Boolean: Nó sẽ viết ra các từ TRUE hoặc FALSE theo kiểu có quy cách họăc không quy cách. Sự khác nhau giữa read và readln Tương tự như WRITE và WRITELN 4/ Các thủ tục trình bày màn hình của PASCAL. Trước hết muốn sử dụng các thủ tục trình bày màn hình thì ta phải khai báo các thủ tục trình bày màn hình như sau: USES tenunit; Với tenunit chứa tên của UNIT cần mở. VD: USES WINCRT; là thủ tục trình bày màn hình GOTOXY(X,Y); Là thủ tục đặt con trỏ vào toạ độ X, Y của màn hình. X là tọa độ cột được tính tà 1 đến 80. Y là tọa độ dòng được tính từ 1 đến 25. CLRSCR; (Clear Screen) Là thủ tục xoá toàn bộ màn hình và sau khi xoá con trỏ sẽ ở vị trí góc trên bên trái. * Ngoài cách nhập dữ liệu bằng bàn phím ta còn có cách nhập dữ liệu là những số nguyên ngẫu nhiên trong khoảng từ 0 đến N như sau: random(N); một số thủ tục trình bày màn hình GOTOXY(X,Y): Đặt con trỏ vào toạ độ (X,Y) của màn hình. Trong đó 1 THEN Lệnh P; cấu trúc rẽ nhánh Sơ đồ khối Dạng 2 Thực hiện - Nếu điều kiện là đúng thì làm lệnh P rồi chuyển sang lệnh kế tiếp. Nếu điều kiện là sai thì làm lệnh Q rồi chuyển sang lệnh kế tiếp. 3. Câu lệnh IF THEN Lệnh P ELSE Lệnh Q; cấu trúc rẽ nhánh * Chú ý: Điều kiện là một biểu thức logic trả lại kết quả Đúng hoặc sai. Lệnh P là 1 lệnh đơn hoặc một lệnh ghép. Các lẹnh ghép phải được đặt trong khối Begin …End; *Ví dụ: cấu trúc rẽ nhánh Sơ đồ khối Dạng 3 cấu trúc rẽ nhánh 2. Thực hiện - Tính giá trị của biểu thức G - So sánh và lựa chọn Nếu giá trị của bt G bằng hằng 1 thực hiện lệnh P1 ròi sang lệnh kế tiếp. … Nếu giá trị của bt G bằng hằng n thực hiện lệnh Pn ròi sang lệnh kế tiếp. Nếu giá trị của bt G không bằng giá trị hằng nào thì chuyển sang lệnh kế tiếp. Dạng 3 cấu trúc rẽ nhánh 3. Câu lệnh CASE OF Hằng 1: ; Hằng 2: ; . . . . . . . . Hằng N: ; END; Dạng 3 cấu trúc rẽ nhánh *Chú ý Kiểu dữ liệu của biểu thứcchỉ có thể là kiểu nguyên, ký tự, logic hoặc kiểu liệt kê. Các hằng phải có kiểu dữ liệu phù hợp với kiểu dữ liệu của biểu thức. * Ví dụ: Dạng 3 cấu trúc rẽ nhánh Sơ đồ khối Dạng 4 cấu trúc rẽ nhánh 2. Thực hiện Tương tự như ở dạng 3, tuy nhiên nếu giá trị của bt G không bằng giá trị hằng nào thì thực hiện lệnh Q rồi chuyển sang lệnh kế tiếp. Dạng 4 cấu trúc rẽ nhánh 3. Câu lệnh CASE OF Hằng 1: ; Hằng 2: ; . . . . . . . . Hằng N: ; ELSE ; END; Dạng 4 cấu trúc điều khiển lặp * Khái niệm:Các lệnh giống nhau được thực hiện nhiều lần sẽ được sử dụng trong cấu trúc lặp. * Phân loại: Có 2 loại: Vòng lặp có bước lặp xác định Vòng lặp có số bước lặp không xác định vòng lặp có bước lặp xác định *Sơ đồ khối Dạng 1 vòng lặp có bước lặp xác định *Thực hiện 	Đầu tiên biến điều khiển nhận giá trị ban đầu, sau đó thực hiện chu kỳ lặp như sau: chừng nào biến điều khiển còn nhỏ hơn hoặc bằng giá trị cuối thì thực hiện lệnh, sau mỗi lần thực hiện biến điều khiển sẽ thay đổi giá trị như sau: Biến điều khiển:=Biến điều khiển + 1; Dạng 1 vòng lặp có bước lặp xác định *Câu lệnh FOR Biến_điều_khiển := GT_đầu TO GT_cuối DO ; Dạng 1 vòng lặp có bước lặp không xác định *Sơ đồ khối Dạng 1 vòng lặp có bước lặp không xác định *Thực hiện 	Máy tính sẽ thực hiện chu kỳ lặp như sau: Chừng nào biểu thức boolean còn đúng (TRUE) thì công việc được thực hiện, các câu lệnh phải đặt giữa Begin và End. Vòng lặp sẽ kết thúc khi biểu thức boolean sai (FALSE). Dạng 1 vòng lặp có bước lặp không xác định *Câu lệnh WHILE DO Begin ; End; Dạng 1 vòng lặp có bước lặp không xác định *Sơ đồ khối Dạng 2 vòng lặp có bước lặp không xác định *Thực hiện Máy tính thực hiện chu kỳ lặp như sau: máy tính sẽ thực hiện công việc cho đến khi bt boolean có giá trị đúng (TRUE) thì thoát khỏi vòng lặp. Giữa REPEAT và UNTIL không cần dùng Begin và End. Dạng 2 vòng lặp có bước lặp không xác định *Câu lệnh REPEAT ; UNTIL ; Dạng 1 vòng lặp có bước lặp không xác định *Chú ý Cả 2 vòng lặp đều có số lần lặp không xác định trước, cần phải lưu ý trong khi thực hiện công việc lặp, ta phải có 1 lệnh lặp làm thay đổi 1 biến nằm trong biểu thức boolean để thay đổi giá trị của biêủ thức nhằm dừng vòng lặp lại vì nếu không như vậy vòng lặp sẽ chạy mãi không dừng dẫn đến máy sẽ bị treo khi thực hiện chương trình. Kiểu dữ liệu có cấu trúc *.Khái niệm - Kiểu dữ liệu có cấu trúc là các kiểu dữ liệu được tạo ra từ các phần tử có kiểu dữ liệu đơn giản bằng một cách nào đó. - Kiểu dữ liệu có cấu trúc được đặc trưng bằng kiểu dữ liệu của các phần tử và phương pháp cấu thành kiểu dữ liệu mới (điều đó cũng có nghĩa là phương pháp truy nhập vào kiểu dữ liệu có cấu trúc). - PASCAL có tất cả 4 kiểu dữ liệu có cấu trúc: ARRAY, SET, RECORD, FILE 1. Kiểu dữ liệu mảng *.Khái niệm 	Mảng là một tập gồm hữu hạn các phần tử có cùng chung một kiểu dữ liệu. Mỗi phần tử của mảng có một đại lượng xác định vị trí tương đối của phần tử đó so với phần tử khác trong mảng, gọi là chỉ số. *. Phần loại - Mảng1 chiều - Mảng 2 chiều 1. Kiểu dữ liệu mảng *. Các yếu tố để xác định một mảng - Tên mảng - Kiểu dữ liệu của các phần tử - Kiểu dữ liệu của các chỉ số và phạm vi * Chú ý: Kiểu dữ liệu của chỉ số phải là kiểu đếm được (Integer, char,…) * Truy xuất các phần tử của mảng Tên mảng [Chỉ số phần tử] VD: A[5}; B[‘A’]; C[1,2] mảng 1 chiều *. Khai báo: Có 2 cách Khai báo trực tiếp VAR Tên mảng:ARRAY[m1..m2] OF Kiểu dữ liệu; - m, m2: là 2 hằng xác định phạm vi của chỉ số, m1 Length(st) thì Copy sẽ cho một xâu rỗng. Nếu Pos + Size > length(st) thì copy sẽ chỉ nhận các ký tự nằm trong xâu st. Kiểu dữ liệu xâu ký tự (string) * Các thủ tục và hàm chuẩn xử lý xâu. - Concat(st1,st2,...stn): là hàm ghép nối tất cả các xâu ký tự st1, st2, ...stn thành một xâu ký tự theo thứ tự đã viết. Tất nhiên nếu tổng số chiều dài của các xâu ký tự lớn hơn 255 thì máy sẽ báo lỗi. - Pos(Obj,Target): là hàm cho ta vị trí đầu tiên của xâu Obj gặp trong xâu Target. Nếu không tìm thấy thì Pos có giá trị bằng 0. Kiểu dữ liệu bản ghi (record) *.Khái niệm Kiểu dữ liệu bản ghi (record) *.Khái niệm Trong ngôn ngữ PASCAL, mỗi dòng được gọi là một RECORD (bản ghi), mỗi cột được gọi là một FIELD (trường, thành phần, thuộc tính) 	Vậy bản ghi là một tập thông tin bao gồm nhiều trường, mỗi trường có thể có kiểu dữ liệu khác nhau 	Mỗi bản ghi là một tập gồm nhiều biến kết hợp lại với nhau. Kiểu dữ liệu bản ghi (record) *.Khai báo TYPE 	Tên kiểu bản ghi= RECORD 	Trường 1: Kiểu dữ liệu 1; 	 Trường 2: Kiểu dữ liệu 2; 	… 	Trường m: Kiểu dữ liệu m; 	End; VAR 	Tên biến: Tên kiểu bản ghi; Kiểu dữ liệu bản ghi (record) *.Ví dụ TYPE 	Sinhvien = RECORD 	Hoten: String[30]; 	Ngaysinh: Integer; 	Nơisinh: String 	End; VAR 	S: sinhvien; Kiểu dữ liệu bản ghi (record) *.Cách truy nhập - Ta có thể truy nhập vào từng trường của bản ghi bằng 2 cách Tên biến. Tên trường With Tên biến Do Tên trường VD: Sinhvien.hoten; With sinhviên Do Hoten Kiểu dữ liệu bản ghi (record) *Chú ý: - Kiểu bản ghi có thể sử dụng như là một kiểu dữ liệu phần tử của mảng - Không thể viết ra màn hình hoặc đọc từ bàn phím cả một biến kiể Record. - Không thể so sánh các Record: , = - Không thể dùng các phép toán số học và logic Kiểu dữ liệu tệp tin (file) *.Khái niệm 	Tệp tin (File) trong PASCAL là một kiểu dữ liệu có cấu trúc. Mỗi tập tin là một tập hợp các phần tử có cùng chung một kiểu dữ liệu được nhóm lại thành một dãy và được ghi trên đĩa với một tên chung. 	Khái niệm tập tin và mảng có những điểm tương tự nhau * Phân loại: Có 2 loại tệp tin - Tệp tin có định kiểu - Tệp văn bản Kiểu dữ liệu tệp tin (file) *. Phân biệt giữa mảng và tập tin - Mảng được tổ chức trong bộ nhớ. còn tập tin chủ yếu được lưu trữ trên đĩa. - Số phần tử của mảng được xác định ngay từ khi khai báo, còn số phần tử của tập tin thfi không. Các tập tin được kết thúc bằng một dấu hiệu đặc biệt là EOF ( End Of File) - Các phần tử của mảng được truy xuất thông qua chỉ số. Các phần tử của tập tin được truy xuất nhờ một biến trung gian chỉ điểm vào các vị trí của chúng trên đĩa, gọi là con trỏ tệp. Tại mỗi thời điểm con trỏ sẽ chỉ vào một vị trí nào đó trong tệp tin, gọi là vị trí hiện thời. tệp tin có định kiểu *. Khái niệm - Tập tin mà các phần tử của nó có cùng một kiểu dữ liệu. Kiểu dữ liệu của các phần tử của tập tin có thể là kiểu đơn giản hoặc kiểu dữ liệu có cấu trúc (mảng, bản ghi) *. Khai báo Có 2 cách khai báo: - Trực tiếp 	 - Gián tiếp tệp tin có định kiểu *. Trực tiếp VAR Tên biến: File OF Kiểuphầntử; VD: TYPE	SV=Record 	Ten: String[20]; 	NS:Integer; 	ĐTB: Real; 	End; VAR	F1: File of Integer; 	F2: File of SV; tệp tin có định kiểu *. Gián tiếp TYPE Tên kiểu tệp tin = File OF Kiểu phần tử; VAR Tên biến: Tên kiểu tệp tin; VD: TYPE	 SV=Record 	Ten: String[20]; 	NS:Integer; 	ĐTB: Real; 	 End; 	Kieu1 = File Of SV; 	VAR	F1: Kieu1; tệp tin có định kiểu *. Một số thủ tục chuẩn xử lý tệp tin 1) ASSIGN(Biến tệp tin, Tên tệp tin): Gán tên tệp tin cho biến tệp tin. VD: Assign(F,’QLSV.DAT); 2) REWRITE(Biến tệp tin): Khởi tạo tệp tin mới, nếu tệp tin đã có -> sẽ bị xoá. VD: Rewrite(F); 3) RESET(Biến tệp tin): Mở tệp tin đã có để sử dụng, con trỏ tệp tin trỏ vào phần tử đầu tiên (có số thứ tự là 0) VD: Reset(F); tệp tin có định kiểu *. Một số thủ tục chuẩn xử lý tệp tin 4) WRITE(Biến tệp tin, bt1, bt2,…):Tuần tự ghi các giá trị của các biểu thức vào tệp tin. Các biểu thức này phải có cùng dữ liệu với dữ liệu của các phần tử của tệp tin. VD: Write(F,5,3*6,10*2); 5) READ(Biến tệp tin, b1, b2,…): Đọc tuần tự các phần tử của tệp tin từ vị trí hiện thời của con trỏ và gán cho các biến b1, b2,…. Kiểu dữ liệu của các biến này phải đồng nhất với kiểu dữ liệu của file. Mỗi khi đọc xong một phần tử, con trỏ tệp tin tự động dời đến phần tử tiếp. VD: Read(F,x,y); tệp tin có định kiểu *. Một số thủ tục chuẩn xử lý tệp tin 6) CLOSE(Biến tệp tin):Đóng tệp tin. VD: Close(F); 7) SEEK(Biến tệp tin,k): Đặt con trỏ tệp tin vào phần tử thứ k trong tệp tin. Thủ tục này cho phép truy xuất trực tiếp một phần tử của tệp tin mà không phải thực hiện tuần tự. VD: Seek(F,10); 	Read(F,i); 	Write(i); tệp tin có định kiểu *. Một số thủ tục chuẩn xử lý tệp tin 8) ERASE(Biến tệp tin):Xoá tệp tin. VD: Erase(F); 9) RENAME(Biến tệp tin,Tên mới): Đổi tên VD: Rename(F,’QLCB.DAT); *Chú ý: Các tệp tin phải đang đóng thì lệnh xoá và đổi tên mới thực hiện được. tệp tin có định kiểu *. Một số hàm chuẩn xử lý tệp tin 1) EOF(Biến tệp tin):Cho kết quả True khi con trỏ đang ở cuối tệp, ngược lại là False. 2) FILESIZE(Biến tệp tin): Cho số phần tử của tệp tin. Nếu tệp tin rỗng thì số phần tử = 0; 3) FILEPOS(Biến tệp tin): Cho vị trí hiện thời của con trỏ. Phần tử đầu tiên =0, cuối = FileSize =1. tệp tin có định kiểu *. Ví dụ VD1: Viết chương trình ghi vào đĩa 100 số tự nhiên (từ 1 đến 100), viết kết quả lên màn hình. VD2: Viết chương trình thực hiện các công việc sau: - Đọc từ bàn phím một danh sách gồm họ tên, môn thi 1, điểm mon1, môn thi2, điểm mon 2. - Ghi vào đãi với tên QLHT.DAT - Đọc dữ liệu từ File và tìm những học sinh phải thi lại (có ít nhất 1 môn điểm , =) *. Ví dụ minh hoạ: Nhập vào một chuỗi St, cho biết trong St có những chữ hoa nào. chương trình con *.Khái niệm 	Chương trình con là một đoạn chương trình có tên và được gọi thi hành nhiều nơi trong chương trình, nơi gọi có thể cung cấp tham số cho chương trình con, và chương trình có thể làm thay đổi các giá trị này. VD: (m! + n!)/ (m+n)! *.ý nghĩa sử dụng CTC - Làm cho CT chính bớt rườm rà, dài dòng. - Bố cục chương trình rõ ràng, dễ theo dõi.	 - Chương trình dễ kiểm tra về lỗi và thuật toán. chương trình con * Phân loại CTC: Có 2 loại - Hàm (Function) - Thủ tục (Procedure) * Sự khác nhau giữa hàm và thủ tục 	 chương trình con * Cách bố trí chương trình khi có chương trình con Program TenCT; Các khai báo thông thư

File đính kèm:

  • pptpascal.ppt