Bài 16. Ví dụ làm việc với tệp
Chia sẻ bởi Lê Thị Hoài Ân |
Ngày 10/05/2019 |
55
Chia sẻ tài liệu: Bài 16. Ví dụ làm việc với tệp thuộc Tin học 11
Nội dung tài liệu:
TRƯỜNG THPT DTNT N’ TRANG LƠNG TỈNH ĐẮK NÔNG
KÍNH CHÀO QUÝ THẦY CÔ
VỀ THĂM LỚP 11A
Giáo viên thực hiện: Lê Thị Hoài Ân
Câu 1: Nêu vai trò của kiểu tệp?
- Dữ liệu kiểu tệp được lưu trữ lâu dài ở bộ nhớ ngoài và không bị mất khi tắt nguồn đ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.
Câu 2: Khi nào sử dụng thao tác ghi tệp và khi nào sử dụng thao tác đọc tệp?
- Tạo tệp mới sử dụng thao tác ghi tệp;
- Mở tệp có sẳn sử dụng thao tác đọc tệp.
assign(, );
Câu 1: Thủ tục Assign có ý nghĩa gì? Vì sao cần phải có thủ tục đó? Nêu sơ đồ tổng quát thể hiện thủ tục Assign.
Câu 2: Thao tác mở tệp để làm gì? Viết ra câu lệnh dùng thủ thục mở tệp..
§16. VÍ DỤ LÀM VIỆC VỚI TỆP
§16: VÍ DỤ LÀM VIỆC VỚI TỆP
I. Kiến thức
Biết các bước làm việc với tệp, gán tên tệp cho biến tệp, đọc ghi/ tệp, đóng tệp.
Hình thành kỹ năng khi làm việc với tệp như: mở tệp, gán tên tệp, đọc/ ghi dữ liệu cho biến tệp, đóng tệp.
II. Nội dung:
Ví dụ 1
2. Ví dụ 2
§16. VÍ DỤ LÀM VIỆC VỚI TỆP
1. Ví dụ 1
Trước khi giải một bài tóan
trong ngôn ngữ Pascal các em
phải thực hiện công việc gì trước ?
Xác định Input và Output
của bài toán.
1. Ví dụ 1 (SGK trang 87)
Trại thầy Hiệu trưởng là O(0,0), Mỗi lớp có một khu trại , vị trí của mỗi giáo viên chủ nhiệm có tọa độ nguyên(x,y). Tính khỏang cách từ trại Thầy hiệu trưởng đến các trại của mỗi giáo viên chủ nhiệm.
§16. VÍ DỤ LÀM VIỆC VỚI TỆP
1. Ví dụ 1 (SGK trang 87)
- Phân tích bài toán:
* Input:
+ Tọa độ trại thầy Hiệu trưởng O(0,0)
+ Tệp TRAI.TXT chứa các cặp số nguyên (x,y) liên tiếp.
* Output:
Khoảng cách giữa trại mỗi lớp và trại thầy hiệu trưởng.
1. Ví dụ 1
Khoảng cách
§16. VÍ DỤ LÀM VIỆC VỚI TỆP
1. Ví dụ 1
Dựa vào sơ đồ làm việc với tệp văn bản theo em ví dụ này thực hiện việc ghi tệp hay đọc tệp?
Đọc tệp
Vậy để đọc tệp có những thao tác nào?
Gán tên tệp với biến tệp.
Mở tệp.
Đọc tệp .
1. Ví dụ 1
§16. VÍ DỤ LÀM VIỆC VỚI TỆP
Việc đọc tệp kết thúc khi nào?
Việc đọc tệp được kết thúc khi con trỏ đang ở vị trí cuối tệp.
Chương trình:
§16. VÍ DỤ LÀM VIỆC VỚI TỆP
Program Khoang_cach;
Var d: real;
f: Text;
x, y: integer;
Begin
Assign(f, ’D:TRAI.TXT’);
Reset(f);
While not eof(f) do
Begin
Read(f,x,y);
D:= Sqrt(x*x+y*y);
Writeln(‘Khoangcach:’ d:10:2);
End;
Close(f);
End.
1. Ví dụ 1
Click chạy chương trình
§16. VÍ DỤ LÀM VIỆC VỚI TỆP
2. Ví dụ 2
2. Ví dụ 2 (SGK trang 87 - 88)
Cho ba điện trở R1, R2, R3. Sử dụng cả 3 điện trở để tạo ra năm mạch điện trở tương đương khác nhau bằng cách mắc theo sơ đồ ở hình dưới đây.
Sơ đồ mắc điện trở
§16. VÍ DỤ LÀM VIỆC VỚI TỆP
2. Ví dụ 2
- Phân tích bài toán:
* Input:
+ Tệp văn bản RESIST.DAT gồm nhiều dòng, mỗi dòng chứa 3 điện trở R1, R2, R3 (0 < R1, R2, R3 ≤ 105).
* Output: Tệp văn bản RESIST.EQU mỗi dòng ghi năm điện trở tương đương của R1, R2, R3.
§16. VÍ DỤ LÀM VIỆC VỚI TỆP
2. Ví dụ 2
Nhắc lại công thức tính điện trở tương đương của hai điện trở mắc nối tiếp và mắc song song
Công thức tính điện trở tương đương của hai điện trở mắc nối tiếp:
R = R1 + R2
Công thức tính điện trở tương đương của hai điện trở mắc song song:
§16. VÍ DỤ LÀM VIỆC VỚI TỆP
2. Ví dụ 2
Cách mắc 3 điện trở song song và nối tiếp ?
R = R1 + R2 + R3
Sơ đồ 2: R=R1*R2/(R1+R2) +R3
Sơ đồ 3: R=R1*R3/(R1+R3)+R2
Sơ đồ 4: R=R2*R3/(R2+R3)+R1
§16. VÍ DỤ LÀM VIỆC VỚI TỆP
2. Ví dụ 2
Dựa vào sơ đồ làm việc với tệp văn bản em hãy cho biết ví dụ này sử dụng ghi tệp hay đọc tệp?
Vừa đọc tệp và vừa ghi tệp
Tệp nào ghi? Tệp nào đọc?
Tệp F1 đọc, tệp F2 ghi
§16. VÍ DỤ LÀM VIỆC VỚI TỆP
2. Ví dụ 2
Dùng lệnh Read/Readln để đọc tệp?
Readln.
Khi nào không đọc tệp nữa?
Khi kết thúc tệp.
§16. VÍ DỤ LÀM VIỆC VỚI TỆP
2. Ví dụ 2
Chương trình
Program Dientro;
Var a: array[1..5] of real; R1, R2, R3: Real;
i: integer; 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)+R2;
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(f1); Close(f2);
END.
Bài tập:
Câu 1: Hãy cho biết câu lệnh nào sau đây là đúng ?
a. Assign(F1, vanban.dat)
b. Assign(F1, ‘vanban.dat’)
c. Assign(F1, ‘vanban.dat’).
d. Assign(F1, ‘vanban.dat’);
Câu 2:
Tại sao cần phải đóng tệp khi đã làm việc xong?
Chỉ có đóng tệp thì khi đó hệ thống
mới thực sự hoàn tất ghi dữ liệu ra tệp.
Program Baitap;
Var f: text;
N, mx, k : longint;
Begin
Assign(f, ‘input.dat’);
Reset(f);
Mx := -21483647;
While not eof(f) do
Begin
Read(f, n);
I f n > mx then
Begin mx :=n;
k := 1 end
Else if n = mx then
Inc(k)
End;
Close(f);
Writeln(mx, ‘ ’, k);
End.
Cho biết đoạn chương trình trên làm gì?
Tìm max và số lần đạt max;
Tìm min và số lần thực hiện min;
Tính cả hai sô max và Min
Cả a, b, c đều sai.
Bài 3:
§16. VÍ DỤ LÀM VIỆC VỚI TỆP
1. Ví dụ 1
2. Ví dụ 2
Việc trao đổi với bộ nhớ ngoài được thực hiện thông qua kiểu dữ liệu tệp.
Để làm việc với tệp ta cần phải khai báo tệp.
Mỗi ngôn ngữ lập trình đều có các hàm và thủ tục chuẩn để làm việc với tệp.
Các thao tác với tệp.
- Khai báo biến tệp, mở tệp và đóng tệp.
- Đọc, ghi dữ liệu từ tệp
Củng cố:
Làm bài tập về nhà trong SGK và các bài 5.1 đến 5.7 SBT
- Học kỹ bài để có thể viết chương trình
BÀI HỌC KẾT THÚC.
CẢM ƠN QUÝ THẦY CÔ
KÍNH CHÀO QUÝ THẦY CÔ
VỀ THĂM LỚP 11A
Giáo viên thực hiện: Lê Thị Hoài Ân
Câu 1: Nêu vai trò của kiểu tệp?
- Dữ liệu kiểu tệp được lưu trữ lâu dài ở bộ nhớ ngoài và không bị mất khi tắt nguồn đ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.
Câu 2: Khi nào sử dụng thao tác ghi tệp và khi nào sử dụng thao tác đọc tệp?
- Tạo tệp mới sử dụng thao tác ghi tệp;
- Mở tệp có sẳn sử dụng thao tác đọc tệp.
assign(
Câu 1: Thủ tục Assign có ý nghĩa gì? Vì sao cần phải có thủ tục đó? Nêu sơ đồ tổng quát thể hiện thủ tục Assign.
Câu 2: Thao tác mở tệp để làm gì? Viết ra câu lệnh dùng thủ thục mở tệp..
§16. VÍ DỤ LÀM VIỆC VỚI TỆP
§16: VÍ DỤ LÀM VIỆC VỚI TỆP
I. Kiến thức
Biết các bước làm việc với tệp, gán tên tệp cho biến tệp, đọc ghi/ tệp, đóng tệp.
Hình thành kỹ năng khi làm việc với tệp như: mở tệp, gán tên tệp, đọc/ ghi dữ liệu cho biến tệp, đóng tệp.
II. Nội dung:
Ví dụ 1
2. Ví dụ 2
§16. VÍ DỤ LÀM VIỆC VỚI TỆP
1. Ví dụ 1
Trước khi giải một bài tóan
trong ngôn ngữ Pascal các em
phải thực hiện công việc gì trước ?
Xác định Input và Output
của bài toán.
1. Ví dụ 1 (SGK trang 87)
Trại thầy Hiệu trưởng là O(0,0), Mỗi lớp có một khu trại , vị trí của mỗi giáo viên chủ nhiệm có tọa độ nguyên(x,y). Tính khỏang cách từ trại Thầy hiệu trưởng đến các trại của mỗi giáo viên chủ nhiệm.
§16. VÍ DỤ LÀM VIỆC VỚI TỆP
1. Ví dụ 1 (SGK trang 87)
- Phân tích bài toán:
* Input:
+ Tọa độ trại thầy Hiệu trưởng O(0,0)
+ Tệp TRAI.TXT chứa các cặp số nguyên (x,y) liên tiếp.
* Output:
Khoảng cách giữa trại mỗi lớp và trại thầy hiệu trưởng.
1. Ví dụ 1
Khoảng cách
§16. VÍ DỤ LÀM VIỆC VỚI TỆP
1. Ví dụ 1
Dựa vào sơ đồ làm việc với tệp văn bản theo em ví dụ này thực hiện việc ghi tệp hay đọc tệp?
Đọc tệp
Vậy để đọc tệp có những thao tác nào?
Gán tên tệp với biến tệp.
Mở tệp.
Đọc tệp .
1. Ví dụ 1
§16. VÍ DỤ LÀM VIỆC VỚI TỆP
Việc đọc tệp kết thúc khi nào?
Việc đọc tệp được kết thúc khi con trỏ đang ở vị trí cuối tệp.
Chương trình:
§16. VÍ DỤ LÀM VIỆC VỚI TỆP
Program Khoang_cach;
Var d: real;
f: Text;
x, y: integer;
Begin
Assign(f, ’D:TRAI.TXT’);
Reset(f);
While not eof(f) do
Begin
Read(f,x,y);
D:= Sqrt(x*x+y*y);
Writeln(‘Khoangcach:’ d:10:2);
End;
Close(f);
End.
1. Ví dụ 1
Click chạy chương trình
§16. VÍ DỤ LÀM VIỆC VỚI TỆP
2. Ví dụ 2
2. Ví dụ 2 (SGK trang 87 - 88)
Cho ba điện trở R1, R2, R3. Sử dụng cả 3 điện trở để tạo ra năm mạch điện trở tương đương khác nhau bằng cách mắc theo sơ đồ ở hình dưới đây.
Sơ đồ mắc điện trở
§16. VÍ DỤ LÀM VIỆC VỚI TỆP
2. Ví dụ 2
- Phân tích bài toán:
* Input:
+ Tệp văn bản RESIST.DAT gồm nhiều dòng, mỗi dòng chứa 3 điện trở R1, R2, R3 (0 < R1, R2, R3 ≤ 105).
* Output: Tệp văn bản RESIST.EQU mỗi dòng ghi năm điện trở tương đương của R1, R2, R3.
§16. VÍ DỤ LÀM VIỆC VỚI TỆP
2. Ví dụ 2
Nhắc lại công thức tính điện trở tương đương của hai điện trở mắc nối tiếp và mắc song song
Công thức tính điện trở tương đương của hai điện trở mắc nối tiếp:
R = R1 + R2
Công thức tính điện trở tương đương của hai điện trở mắc song song:
§16. VÍ DỤ LÀM VIỆC VỚI TỆP
2. Ví dụ 2
Cách mắc 3 điện trở song song và nối tiếp ?
R = R1 + R2 + R3
Sơ đồ 2: R=R1*R2/(R1+R2) +R3
Sơ đồ 3: R=R1*R3/(R1+R3)+R2
Sơ đồ 4: R=R2*R3/(R2+R3)+R1
§16. VÍ DỤ LÀM VIỆC VỚI TỆP
2. Ví dụ 2
Dựa vào sơ đồ làm việc với tệp văn bản em hãy cho biết ví dụ này sử dụng ghi tệp hay đọc tệp?
Vừa đọc tệp và vừa ghi tệp
Tệp nào ghi? Tệp nào đọc?
Tệp F1 đọc, tệp F2 ghi
§16. VÍ DỤ LÀM VIỆC VỚI TỆP
2. Ví dụ 2
Dùng lệnh Read/Readln để đọc tệp?
Readln.
Khi nào không đọc tệp nữa?
Khi kết thúc tệp.
§16. VÍ DỤ LÀM VIỆC VỚI TỆP
2. Ví dụ 2
Chương trình
Program Dientro;
Var a: array[1..5] of real; R1, R2, R3: Real;
i: integer; 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)+R2;
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(f1); Close(f2);
END.
Bài tập:
Câu 1: Hãy cho biết câu lệnh nào sau đây là đúng ?
a. Assign(F1, vanban.dat)
b. Assign(F1, ‘vanban.dat’)
c. Assign(F1, ‘vanban.dat’).
d. Assign(F1, ‘vanban.dat’);
Câu 2:
Tại sao cần phải đóng tệp khi đã làm việc xong?
Chỉ có đóng tệp thì khi đó hệ thống
mới thực sự hoàn tất ghi dữ liệu ra tệp.
Program Baitap;
Var f: text;
N, mx, k : longint;
Begin
Assign(f, ‘input.dat’);
Reset(f);
Mx := -21483647;
While not eof(f) do
Begin
Read(f, n);
I f n > mx then
Begin mx :=n;
k := 1 end
Else if n = mx then
Inc(k)
End;
Close(f);
Writeln(mx, ‘ ’, k);
End.
Cho biết đoạn chương trình trên làm gì?
Tìm max và số lần đạt max;
Tìm min và số lần thực hiện min;
Tính cả hai sô max và Min
Cả a, b, c đều sai.
Bài 3:
§16. VÍ DỤ LÀM VIỆC VỚI TỆP
1. Ví dụ 1
2. Ví dụ 2
Việc trao đổi với bộ nhớ ngoài được thực hiện thông qua kiểu dữ liệu tệp.
Để làm việc với tệp ta cần phải khai báo tệp.
Mỗi ngôn ngữ lập trình đều có các hàm và thủ tục chuẩn để làm việc với tệp.
Các thao tác với tệp.
- Khai báo biến tệp, mở tệp và đóng tệp.
- Đọc, ghi dữ liệu từ tệp
Củng cố:
Làm bài tập về nhà trong SGK và các bài 5.1 đến 5.7 SBT
- Học kỹ bài để có thể viết chương trình
BÀI HỌC KẾT THÚC.
CẢM ƠN QUÝ THẦY CÔ
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Lê Thị Hoài Ân
Dung lượng: |
Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)