Bài 16: Ví dụ làm việc với tệp | Tin học | Chương 5: Tệp và thao tác với tệp - Lớp 11 - Giáo Dục Việt Nam


Ví dụ 1
Một trường trung học phổ thô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ủa các giáo viên chủ nhiệm. Mỗi lớp có một khu trại, vị trí trại của mỗi giáo viên chủ nhiệm đều có toạ độ nguyên (x, y) được ghi trong tệp văn bản TRAI.TXT (như vậy, tệp TRAI.TXT chứa liên tiếp các cặp số nguyên, các số cách nhau bởi dấu cách và không kết thúc bằng kí tự xuống dòng).

Chương trình sau sẽ đọc các cặp toạ độ từ tệp TRAI.TXT, tính rồi đư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) giữa trại của mỗi giáo viên chủ nhiệm và trại của thầy hiệu trưởng.

program Khoang_cach;
var
  d: real;
  f: text;
  x, y: integer;
begin
  assign(f, 'TRAI.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.

Ví dụ 2. Tính điện trở tương đương

Cho ba điện trở R1, R2, R3. Sử dụng cả ba điện trở để tạo ra năm mạch điện có điện trở tương đương khác nhau bằng cách mắc theo các sơ đồ nêu ở hình 17.

hinh-anh-bai-16-vi-du-lam-viec-voi-tep-4715-0

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à:

hinh-anh-bai-16-vi-du-lam-viec-voi-tep-4715-1
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 ≤ hinh-anh-bai-16-vi-du-lam-viec-voi-tep-4715-2.

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.

program Dientro;
var a: array [1..5] of real;
R1, R2, R3: Real;
i: integer;
f1, f2: text;
begin
assign (fl, 'RESIST.DAT');
reset (fl);
assign (f2, 'RESIST. EQU');
rewrite(f2);
while not eof(fl) do
begin
end;
readln (fl, 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);
close(fl); close(f2)
end.

TÓM TẮT

  • 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 hàm/thủ tục chuẩn để làm việc với tệp.
  • Các thao tác với tệp văn bản:
    • 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.

CÂU HỎI VÀ BÀI TẬP

1. Nêu một số trường hợp cản phải dùng tập.
2. Trong sơ đồ thao tác với tệp, khi cần ghi dữ liệu vào tệp phải dùng những thao tác nào?
3. Tại sao cần phải có câu lệnh mở tập trước khi đọc/ghi tập?
4. Tại sao phải dùng câu lệnh đóng tập sau khi đã kết thúc ghi dữ liệu vào tệp?

Tin tức mới


Đánh giá

Bài 16: Ví dụ làm việc với tệp | Tin học | Chương 5: Tệp và thao tác với tệp - Lớp 11 - Giáo Dục Việt Nam

Tổng số sao của bài viết là: 5 trong 1 đánh giá
Xếp hạng: 5 / 5 sao

Bình Luận

Để Lại Bình Luận Của Bạn

Tin tức mới

Bộ Sách Lớp 11

Giáo Dục Việt Nam

Bộ Sách Giáo Khoa của Nhà Xuất Bản Giáo Dục Việt Nam

Tài liệu học tập

Đây là tài liệu tham khảo hỗ trợ trong quá trình học tập

Kết Nối Tri Thức Với Cuộc Sống

Sách giáo khoa của nhà xuất bản Kết Nối Tri Thức Với Cuộc Sống

Sách Giáo Dục Việt Nam

Lớp 6

Sách giáo khoa dành cho lớp 6

Lớp 5

Sách giáo khoa dành cho lớp 5

Lớp 4

Sách giáo khoa dành cho lớp 4

Lớp 3

Sách giáo khoa dành cho lớp 3

Lớp 7

Sách giáo khoa dành cho lớp 7

Lớp 8

Sách giáo khoa dành cho lớp 8

Lớp 9

Sách giáo khoa dành cho lớp 9

Lớp 10

Sách giáo khoa dành cho lớp 10

Lớp 11

Sách giáo khoa dành cho lớp 11

Lớp 12

Sách giáo khoa dành cho lớp 12

Liên Kết Chia Sẻ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.