Đáp án Câu 2: Một số hàm chuẩn trong đọc/ghi tệp văn bản: + Hàm eof trả về giá trị true khi con trỏ tệp đang chỉ tới cuối tệp.. + Hàm eoln trả về giá trị true khi con trỏ tệp đang chỉ tớ[r]
(1)Kiểm tra bài cũ Câu 1: Viết cú pháp khai báo biến tệp? Lấy ví dụ? Viết cú pháp gắn tên tệp và mở tệp? Lấy ví dụ? Câu 2: Viết cú pháp đọc/ghi tệp văn bản? Lấy ví dụ? Một số hàm chuẩn thường dùng đọc/ghi tệp văn bản? Viết cú pháp đóng tệp? Lấy ví dụ? (2) Đáp án Câu 1: - Khai báo biến tệp: Var <tên biến tệp> : text; Ví dụ: Var tep1,tep2: text; - Gắn tên tệp: assign (<biến tệp>,<tên tệp>); Ví dụ: assign(tep1, ‘dulieu.in’); assign(tep2, ‘ketqua.out’); - Mở tệp: + Mở tệp để đọc: reset(<biến tệp>); Ví dụ: reset(tep1); + Mở tệp để ghi: rewrite(<biến tệp>); Ví dụ: rewrite(tep2); (3) Đáp án Câu 1: - Khai báo biến tệp: Var <tên biến tệp> : text; Ví dụ: Var tep1,tep2: text; - Ví dụ gắn tên tệp và mở tệp: assign(tep1, ‘dulieu.in’); reset(tep1); assign(tep2, ‘ketqua.out’); rewrite(tep2); (4) Đáp án Câu 2: Đọc/ghi tệp văn bản: Đọc tệp: read(<biến tệp>,<danh sách biến>); readln(<biến tệp>,<danh sách biến>); Ví dụ: read(tep1,a,b); Ghi tệp: write(<biến tệp>,<danh sách kết quả>); writeln(<biến tệp>,<danh sách kết quả>); Ví dụ: write(tep2, ‘Tong la: ’, t); (5) Đáp án Câu 2: Một số hàm chuẩn đọc/ghi tệp văn bản: + Hàm eof(<biến tệp>) trả giá trị true trỏ tệp tới cuối tệp + Hàm eoln(<biến tệp>) trả giá trị true trỏ tệp tới cuối dòng Đóng tệp: close(<biến tệp>); Ví dụ: close(tep1); close(tep2); (6) Ôn tập và ghi nhớ assign(<biến tệp>,<tên tệp>); Đọc Ghi rewrite(<biến tệp>); reset(<biến tệp>); write(<biến tệp>,<danh sách kết quả>); read(<biến tệp>,<danh sách biến>); close(<biến tệp>); (7) (8) Ví dụ 1: Tính tổng các cặp số nguyên lưu trữ tệp input.txt, đưa kết màn hình? (9) Xác định bài toán * Input: + Tệp input.txt chứa các cặp số nguyên (a,b) liên tiếp * Output: + Tổng các cặp số nguyên (10) Xây dựng thuật toán ? B1 Nếu Đọc hết giá tệp trị a,input b từ kết tệp thúc input.txt; thuật toán; B2 Đọc Tínhgiá và in trị tổng a, b từ t; tệp input.txt B3 Tính Nếu hết và in tệptổng input.txt t; kết thúc thuật toán; B4 Quay lại B1 (11) Trình tự các bước thực - Khai báo biến tệp f để đọc liệu từ tệp - Khai báo biến t, a, b - Gắn biến tệp f với tệp ‘input.txt’ - Mở tệp để đọc liệu - Lặp lại chưa hết tệp: Đọc giá trị a, b từ biến tệp f Tính t In d màn hình - Đóng tệp (12) program tinh_tong; var Khai báo biến tệp f:text; Gắn tên tệp t,a,b:integer; begin assign(f,'c:\input.txt'); Mở tệp để đọc reset(f); while not eof(f) begin read(f,a,b); Điều kiện để tham t:=a+b; chiếu đến tất writeln('tong ',a,' + ',b,' = ',t); các phần tử end; tệp Đóng tệp 10 close(f); readln Đọc tệp end (13) (14) program hinhchunhat; Câu 1: Chương trình bên có tên là gì? var f1, f2 : text; Chương trình có sử dụng kiểu liệu a, b : integer; tệp không? s : real; begin assign(f1, ‘input.txt'); reset(f1); assign(f2, ‘output.txt'); rewrite(f2); while not eof(f1) begin Tên chương trình là hinhchunhat read(f1,a,b); Chương trình có sử s:=(a+b)*2; dụng kiểu liệu tệp writeln(f2,‘dien tich la: ',s:7:1); end; close(f1); close(f2); end (15) program hinhchunhat; var f1, f2 : text; Câu 2: Chương trình sử dụng bao nhiêu tệp, biến tệp? Kể tên? a, b : integer; s : real; begin assign(f1, ‘input.txt'); reset(f1); assign(f2, ‘output.txt'); rewrite(f2); while not eof(f1) begin tệp và biến tệp Tệp là input.txt và read(f1,a,b); output.txt s:=(a+b)*2; Biến tệp là f1 và f2 writeln(f2,‘dien tich la: ',s:7:1); end; close(f1); close(f2); end (16) program hinhchunhat; Câu 3: Tệp input.txt gắn cho var f1, f2 : text; biến tệp nào? Tệp input.txt dùng để a, b : integer; đọc hay ghi liệu? s : real; begin assign(f1, ‘input.txt'); reset(f1); assign(f2, ‘output.txt'); rewrite(f2); while not eof(f1) begin Tệp input.txt gắn cho biến tệp f1 read(f1,a,b); Tệp input.txt dùng để s:=(a+b)*2; đọc liệu writeln(f2,‘dien tich la: ',s:7:1); end; close(f1); close(f2); end (17) program hinhchunhat; Câu 4: Câu lệnh gắn tên tệp và mở tệp var f1, f2 : text; tệp input.txt? a, b : integer; s : real; begin assign(f1, ‘input.txt'); reset(f1); assign(f2, ‘output.txt'); rewrite(f2); while not eof(f1) begin assign(f1,‘input.txt'); read(f1,a,b); reset(f1); s:=(a+b)*2; writeln(f2,‘dien tich la: ',s:7:1); end; close(f1); close(f2); end (18) program hinhchunhat; Câu 5: Tệp output.txt gắn cho var f1, f2 : text; biến tệp nào? Tệp output.txt dùng để a, b : integer; đọc hay ghi liệu? s : real; begin assign(f1, ‘input.txt'); reset(f1); assign(f2, ‘output.txt'); rewrite(f2); while not eof(f1) begin Tệp output.txt gắn cho biến tệp f2 read(f1,a,b); Tệp output.txt dùng s:=(a+b)*2; để ghi liệu writeln(f2,‘dien tich la: ',s:7:1); end; close(f1); close(f2); end (19) program hinhchunhat; Câu 6: Câu lệnh gắn tên tệp và mở tệp var f1, f2 : text; tệp output.txt? a, b : integer; s : real; begin assign(f1, ‘input.txt'); reset(f1); assign(f2, ‘output.txt'); rewrite(f2); while not eof(f1) begin assign(f2,‘output.txt'); read(f1,a,b); rewrite(f2); s:=(a+b)*2; writeln(f2,‘dien tich la: ',s:7:1); end; close(f1); close(f2); end (20) program hinhchunhat; Câu 7: Câu lệnh đọc tệp? var f1, f2 : text; Câu lệnh ghi tệp a, b : integer; s : real; begin assign(f1, ‘input.txt'); reset(f1); assign(f2, ‘output.txt'); rewrite(f2); while not eof(f1) Đọc tệp: begin Read(f1,a,b); read(f1,a,b); Ghi tệp: s:=(a+b)*2; Writeln(f2,’dien tich writeln(f2,‘dien tich la: ',s:7:1); la:’,s:7:1); end; close(f1); close(f2); end (21) program hinhchunhat; Câu 8: Tệp input.txt lưu trữ liệu var f1, f2 : text; gì? a, b : integer; s : real; begin assign(f1, ‘input.txt'); reset(f1); assign(f2, ‘output.txt'); rewrite(f2); while not eof(f1) begin Tệp input.txt chứa liên tiếp các cặp số read(f1,a,b); nguyên s:=(a+b)*2; writeln(f2,‘dien tich la: ',s:7:1); end; close(f1); close(f2); end (22) program hinhchunhat; Câu 9: Điều kiện để tham chiếu đến var f1, f2 : text; tất các cặp số nguyên tệp a, b : integer; input.txt? s : real; begin assign(f1, ‘input.txt'); reset(f1); assign(f2, ‘output.txt'); rewrite(f2); while not eof(f1) begin not eof(f1) read(f1,a,b); s:=(a+b)*2; writeln(f2,‘dien tich la: ',s:7:1); end; close(f1); close(f2); end (23) program hinhchunhat; Câu 10: Chương trình sử dụng bao var f1, f2 : text; nhiêu câu lệnh đóng tệp? a, b : integer; Không đóng tệp không? Vì sao? s : real; begin assign(f1, ‘input.txt'); reset(f1); assign(f2, ‘output.txt'); rewrite(f2); while not eof(f1) câu lệnh đóng tệp begin Không! Vì sau read(f1,a,b); đóng tệp hệ thống s:=(a+b)*2; hoàn tất việc ghi writeln(f2,‘dien tich la: ',s:7:1); liệu tệp end; close(f1); close(f2); end (24) program hinhchunhat; Câu 11: Chương trình bên giải var f1, f2 : text; bài toán gì? Bằng cách nào? a, b : integer; s : real; begin assign(f1, ‘input.txt'); reset(f1); assign(f2, ‘output.txt'); rewrite(f2); Tính diện tích hình chữ while not eof(f1) nhật begin Bằng cách đọc các cặp read(f1,a,b); số nguyên (là độ dài s:=(a+b)*2; cạnh) từ tệp input.txt, writeln(f2,‘dien tich la: ',s:7:1); tính diện tích và ghi kết tệp output.txt end; close(f1); close(f2); end (25)