Nội dung của Bài 16: Ví dụ làm việc với tệp dưới đây với mục đích nhằm giúp các em hiểu thêm các thao tác cơ bản làm việc với tệp thông qua giải một số bài toán đơn giản. Mời các em cùng theo dõi nội dung chi tiết của bài học.
Tóm tắt lý thuyết
Ví dụ 1. Tính điện trở tương đương
Cho ba điện trở R1, R2, R3. Sử dụng cả ba điện trở ta có thể tạo ra năm điện trở tương đương bằng cách mắc các sơ đồ nêu ở hình 1 dưới đây:
Hình 1. Sơ đồ mắc điện trở
Mỗi cách mắc sẽ cho một điện trở tương đương khác nhau. Ví dụ:
- Nếu mắc theo sơ đồ I thì điện trở tương đương sẽ là:
\(R=\frac{R1^{*}R2^{*}R3}{R1^{*}R2+R1^{*}R3+R2^{*}R3}\)
- Nếu mắc theo sơ đồ V thì R = R1 + R2 +R3.
Cho tệp văn bản RESIST.DAT gồm nhiều dòng, mỗi dòng chứa ba số thực R1, R2 và R3, các số cách nhau một dấu cách, 0 < R1, R2, R3 \(\leq\) 105.
Chương trình sau đọc dữ liệu từ tệp RESIST.DAT, tính các điện trở tương đương và ghi kết quả ra tệp văn bản RESIST.EQU, mỗi dòng ghi năm điện trở tương đương của ba điện trở ở dòng dữ liệu vào tương ứng.
Gợi ý làm bài:
Cài đặt 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.
Ví dụ 2
Thầy hiệu trưởng tổ chức cho giáo viên và học sinh của trường đi cắm trại, sinh hoạt ngoài trời ở vườn quốc gia Cúc Phương. Để lên lịch đến thăm khu trại các lớp, thầy Hiệu trưởng cần biết khoảng cách từ trại của mình (ở vị trí có toạ độ (0;0)) đến trại các giáo viên chủ nhiệm lớp. Mỗi lớp có một khu trại, vị trí trại của mỗi thầy chủ nhiệm đều có tọa độ nguyên (x;y), được ghi vào tệp văn bản TRAI.TXT (như vậy, tệp TRAI.TXT chứa các cặp số nguyên liên tiếp, các số cách nhau bởi dấu cách và không kết thúc bằng dấu xuống dòng).
Chương trình sau sẽ đọc từ tệp TRAI.TXT các cặp toạ độ, tính và đưa ra màn hình khoảng cách (với độ chính xác hai chữ số sau dấu chấm thập phân) từ trại mỗi giáo viên chủ nhiệm lớp đến trại của thầy hiệu trưởng.
Gợi ý làm bài:
program Khoang_Cach;
var d:real;
f:text;
x,y:integer;
begin
assign(f,’TR¹I.TXT’);
reset(f);
while not eof(f) do
begin
read(f,x,y);
d:=sqrt(x*x+y*y);
writeln('Khoang cach:' d:10:2)
end;
close(f);
end.
2. Luyện tập Bài 16 Tin học 11
Sau khi học xong Bài 16: Ví dụ làm việc với tệp, các em cần ghi nhớ:
- Việc trao đổi dữ liệu với bộ nhớ ngoài được thực hiện thông qua kiểu dữ liệu tệp;
- Để có thể làm việc với tệp cần phải khai báo biến tệp;
- Mỗi ngôn ngữ lập trình đều có các chương trình chuẩn để làm việc với tệp;
- Các thao tác với tệp văn bản:
- Cách khai báo biến tệp, mở tệp và đóng tệp.
- Đọc/ghi: tương tự như làm việc với bàn phím và màn hình.
2.1. Trắc nghiệm
Các em có thể hệ thống lại nội dung kiến thức đã học được thông qua bài kiểm tra Trắc nghiệm Tin học 11 Bài 16 cực hay có đáp án và lời giải chi tiết.
-
- A. Rtd := R1*R2*R3/(R1*R2 + R2*R3 + R3*R1);
- B. Rtd := R1*R2*R3/(R1*R2 + R2*R3 + R3*R1);
- C. Rtd := 1/R1 + 1/R2 + 1/R3;
- D. Rtd := R1*R2/(R1 + R2) + R3;
-
- A. Rtd := R1*R2*R3/(R1*R2 + R2*R3 + R3*R1);
- B. Rtd := R1*R2/(R1 + R2) + R3;
- C. Rtd := R1*R2*R3/(R1 + R2 + R3);
- D. Rtd := (1/R1 + 1/R2) + R3;
Câu 3-Câu 5: Xem thêm phần trắc nghiệm để làm thử Online
2.2. Bài tập SGK
Các em có thể xem thêm phần hướng dẫn Giải bài tập Tin học 11 Bài 16 để giúp các em nắm vững bài học và các phương pháp giải bài tập.
Bài tập 1 trang 89 SGK Tin học 11
Bài tập 2 trang 89 SGK Tin học 11
Bài tập 3 trang 89 SGK Tin học 11
Bài tập 4 trang 89 SGK Tin học 11
3. Hỏi đáp Bài 16 Tin học 11
Trong quá trình học tập nếu có thắc mắc hay cần trợ giúp gì thì các em hãy comment ở mục Hỏi đáp, Cộng đồng Tin học Chúng tôi sẽ hỗ trợ cho các em một cách nhanh chóng!
Chúc các em học tập tốt và luôn đạt thành tích cao trong học tập!
-- Mod Tin Học 11 Chúng tôi