Bài 14. Kiểu dữ liệu tệp

Chia sẻ bởi Trương Thắng | Ngày 10/05/2019 | 146

Chia sẻ tài liệu: Bài 14. Kiểu dữ liệu tệp thuộc Tin học 11

Nội dung tài liệu:

I/ Định nghĩa File
II/ Khai báo file
III/ Các thao tác với file
1/ Tạo file
2/ Ghi dữ liệu vào file
3/ Đọc dữ liệu file ra màn hình
4/ Ví dụ tổng hợp
IV/ Củng cố kiến thức tiết học
I/ ĐỊNH NGHĨA
- File là loại biến đặc biệt dùng để thiết lập liên lạc với bất kì thiết bị ngoại vi nào.
- Phân loại file:
+ File định kiểu
+ File văn bản
+ File không định kiểu
I/ ĐỊNH NGHĨA
- Về mặt cấu trúc: File như một dãy các ô được đánh số 0, 1 , 2, ….. Mỗi ô chứa một dữ liệu thành phần của file.
5
7
3
Cuối file
- Các phần tử có cùng kiểu dữ liệu nhưng số lượng phần tử không giới hạn và được lưu giữ ở bộ nhớ ngoài (USB, ổ Cứng….)
Tên biến : File Of kiểu dữ liệu;
Tên kiểu file = file of kiểu dữ liệu;
Tên biến : Tên kiểu file;
Ví dụ:
Var
F : File of integer;
Type
SoDiem = File of real;
Var
Diem : SoDiem;
Tên biến : Text;
Tên kiểu file = Text;
Tên biến : Tên kiểu;
Ví dụ:
Var
F : Text;
Type
DanhSach = text;
Var
TenHS : DanhSach;
+ Để tạo một file mới và đặt tên cho file, Tubo Pascal dùng cặp thủ tục sau:
Assign(Biến file, Tên file);
ReWrite(biến file);
Ví dụ: Để tạo một file có tên là số nguyên trong ổ đĩa D ta viết chương trình như sau:
Program TaoFile;
Var
F: File of integer;
Begin
Assign(F,’ D:Songuyen.dat’);
Rewrite(F);
Close(F);
End.
Kích vào đây để xem ý nghĩa các câu lệnh
Khai báo trực tiếp
Khai báo biến file: F thuộc kiểu số nguyên
Cặp thủ tục để tạo file và đặt tên cho file
Thủ tục đóng file
Pascal
Để ghi dữ liệu vào file ta dùng thủ tục Write hoặc Writeln.
Write(biến file, Các giá trị cần đặt vào);
Trong đó các giá trị cần đặt vào có thể là:
+ Các hằng;
+ Các biến;
+ Các biểu thức;
Write(F,3);
Write(F, i); Với I = 1,2,3
Write(F,2*x + 3);
Lưu ý: Các giá trị đặt vào biến file phải có cùng kiểu dữ liệu với biến file.
Để ghi dữ liệu vào file ta dùng thủ tục Write hoặc Writeln.
Ví dụ: Viết chương trình tạo một file chứa các số nguyên từ 1 đến 100.
Program Filesonguyen;
Var
F : File of integer;
I : Integer;
Begin
Assign(F,’C:Songuyen’);
ReWrite(F);
For i:= 1 To 100 do
Write(F, i);
Close(F);
End.
Pascal
Để mở một file có sẳn trong đĩa, Tubo Pascal dùng cặp thủ tục:
Assign(biến file, tên biến);
Reset(biến file);
Khi chạy chương trình thì con trỏ luôn ở vị trí đầu file, nếu file không rỗng.
+ Việc đọc các phần tử từ file ra sau khi mở file được thực hiện bởi thủ tục READ, Write.
READ(Tên file, cácbiến file);
WRITE( Tên File, danh sách kết quả);
Lưu ý: Để đọc kết quả (sau khi xử lí dữ liệu) ra màn hình ta phải kiểm tra xem con trỏ đã ở cuối file chưa bằng câu lệnh: While Not EOF(tên file) Do
Ví dụ: Viết chương trình đọc các số nguyên từ 1 đến 100 trong file ‘ Songuyen ‘ ra màn hình.
Program docdulieu;
Var
F: file of integer;
i: integer;
Begin
Assign(F,’D:Songuyen.dat’);
Reset(F);
For i:= 1 to 100 do
While not EOF(F) do
Begin
Read(F,i);
Write(i:4);
End;
Close(F);
Readln;
End.
pascal
Ghi file
Đọc file
Bài tập vận dụng:
Viết chương trình tạo một file có tên là: ‘ PHIẾU ĐIỂM’ trong ổ đĩa C với điểm các môn học: Toán, văn. Xuất kết quả xếp loại ra màn hình của từng học sinh của lớp với kết quả xếp loại như sau:
- Nếu điểm toán + điểm văn >= 16 thì xếp loại: ‘Giỏi’;
- Nếu điểm toán + điểm văn >= 13 nhỏ hơn 16 thì xếp loại: ‘Khá’;
- Nếu điểm toán + điểm văn >= 10 nhỏ hơn 13 thì xếp loại: ‘Trung bình’; Còn lại thí xếp loại ‘ Yếu’ .
pascal
pascal
program filePhieudiem;
Type Danhsach = record
hoten: string[40];
Ngaysinh:string[25];
Dtoan,dvan:real;
xeploai:string[25];
end;
Var A: array[1..45] of Danhsach;
F: file of Danhsach;
i,n: integer;
Begin
Assign(F,`C:Phieudiem`);
rewrite(F);

pascal
Write(` Nhap so hoc sinh lop: `);
Readln(n);
For i:=1 to n do
With A[i] do
Begin
Write(`Ho ten: `);
Readln(Hoten);
Write(` Ngay sinh: `);
readln(Ngaysinh);
Write(`Diem toan: `);
readln(Dtoan);
Write(`Diem van: `);
Readln(Dvan);
pascal
If dtoan + dvan >= 16 then Xeploai:=`Xep loai: Gioi `;
If ((Dtoan + dvan >=13) and (Dtoan + dvan <16)) then xeploai:=`Xep loai: Kha`;
If ((Dtoan + Dvan >=10) and (Dtoan + Dvan <13)) then xeploai:=`Xep loai: Trung binh`;
If Dtoan + dvan < 10 then xeploai:=`Xep loai: Yeu`;
end;
reset(F);
For i:=1 to n do Write(F,A[i]);
Writeln;
for i:=1 to n do
pascal
Begin
While not Eof(f) do
Read(F,A[i]);
Writeln(A[i].Hoten);
writeln(A[i].Xeploai);
end;
readln;
end.
pascal
* 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ẻ: Trương Thắng
Dung lượng: | Lượt tài: 2
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)