Đá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)(2) 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ụ? (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; - 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); (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) (7) Ví dụ 1: Nhập vào xâu, ghi xâu vừa nhập tệp ketqua.txt Xác định bài toán * Input: + Xâu nhập từ bàn phím * Output: + Tệp ketqua.txt chứa xâu vừa nhập (8) Ví dụ 1: Nhập vào xâu, ghi xâu vừa nhập tệp ketqua.txt Xây dựng thuật toán ? B1 Nhập xâu B2 Ghi xâu tệp ketqua.txt (9) Ví dụ 1: Nhập vào xâu, ghi xâu vừa nhập tệp ketqua.txt Trình tự các bước thực - Khai báo biến biến xâu s - Khai báo biến tệp f để ghi liệu tệp -Gắn biến tệp f với tệp ‘ketqua.txt’ - Mở tệp để ghi liệu - Nhập xâu s - Ghi xâu vừa nhập tệp ketqua.txt - Đóng tệp (10) program khoang_cach; var Khai báo biến tệp s:string; f:text; begin Gắn tên tệp assign(f,‘ketqua.txt'); Mở tệp để ghi rewrite(f); write(‘nhap xau: ’); readln(s); writeln(f,‘ Xau moi nhap la: ’,s); close(f); end Đóng tệp Ghi tệp (11) (12) program giaiptbac1; 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? x : 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à giaiptbac1 read(f1,a,b); Chương trình có sử x:=-b/a; dụng kiểu liệu tệp writeln(f2,‘nghiem la: ',x:7:1); end; close(f1); close(f2); end (13) program giaiptbac1; 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; x : 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 x:=-b/a; Biến tệp là f1 và f2 writeln(f2,‘nghiem la: ',x:7:1); end; close(f1); close(f2); end (14) program giaiptbac1; 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? x : 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 để x:=-b/a; đọc liệu writeln(f2,‘nghiem la: ',x:7:1); end; close(f1); close(f2); end (15) program giaiptbac1; 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; x : 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); x:=-b/a; writeln(f2,‘nghiem la: ',x:7:1); end; close(f1); close(f2); end (16) program giaiptbac1; 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? x : 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 x:=-b/a; để ghi liệu writeln(f2,‘nghiem la: ',x:7:1); end; close(f1); close(f2); end (17) program giaiptbac1; 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; x : 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); x:=-b/a; writeln(f2,‘nghiem la: ',x:7:1); end; close(f1); close(f2); end (18) program giaiptbac1; Câu 7: Câu lệnh đọc tệp? var f1, f2 : text; Câu lệnh ghi tệp a, b : integer; x : 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: x:=-b/a; Writeln(f2,’nghiem la:’,x:7:1); writeln(f2,‘nghiem la: ',x:7:1); end; close(f1); close(f2); end (19) program giaiptbac1; Câu 8: Tệp input.txt lưu trữ liệu var f1, f2 : text; gì? a, b : integer; x : 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 x:=-b/a; writeln(f2,‘nghiem la: ',x:7:1); end; close(f1); close(f2); end (20) program giaiptbac1; 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? x : 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); x:=-b/a; writeln(f2,‘nghiem la: ',x:7:1); end; close(f1); close(f2); end (21) program giaiptbac1; 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? x : 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 x:=-b/a; hoàn tất việc ghi liệu tệp writeln(f2,‘nghiem la: ',x:7:1); end; close(f1); close(f2); end (22) program giaiptbac1; Câu 11: Chương trình bên giải var f1, f2 : text; bài toán gì? Giải nào? a, b : integer; x : real; begin assign(f1, ‘input.txt'); reset(f1); assign(f2, ‘output.txt'); rewrite(f2); while not eof(f1) Giải phương trình bậc begin Đọc các cặp số từ tệp read(f1,a,b); input.txt, tính nghiệm và x:=-b/a; ghi kết tệp writeln(f2,‘nghiem la: ',x:7:1); output.txt end; close(f1); close(f2); end (23) (24)