1. Trang chủ
  2. » Giáo án - Bài giảng

Giáo án Tin học 11 bài 14+15: Kiểu dữ liệu tệp. Thao tác với tệp

9 12 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 9
Dung lượng 61,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Thái độ: - Học sinh thấy được sự cần thiết và tiện lợi của kiểu dữ liệu lưu trữ dưới dạng tệp.. gọi một học sinh xung phong lên bảng và học sinh khác nhận xét, hỏi thêm hai phần tử bất k

Trang 1

Giáo án Tin học 11

KIỂU DỮ LIỆU TỆP THAO TÁC VỚI TỆP

I Mục tiêu:

1 Kiến thức:

- Khái niệm tệp

- Kiểu tệp

- Các thủ tục và hàm thao tác trên tệp

2 Kĩ năng:

- Học sinh biết cách lấy dữ liệu từ tệp hoặc lưu trữ dưới dạng tệp

- Học sinh ghi nhớ, biết cách sử dụng các thủ tục và hàm thao tác trên tệp

3 Thái độ:

- Học sinh thấy được sự cần thiết và tiện lợi của kiểu dữ liệu lưu trữ dưới dạng tệp

- Học sinh có ý thức lưu trữ dữ liệu một cách khoa học, phòng chống mất mát và nhiễm virus

- Học sinh ý thức tôn trọng bản quyền, không sữa chữa vô ý thức các phần mềm chưa mua bản quyền

II Dự kiến phương pháp và phương tiện giảng dạy:

1 Phương pháp:

- Hỏi đáp

- Giải quyết vấn đề

Trang 2

2 Phương tiện:

- Bảng đen, phấn

- Chương trình minh hoạ

III Tiến trình lên lớp:

1 Ổn định tình hình lớp:(2 phút)

- Sỹ số: có mặt: vắng mặt:

- ổn định trật tự lớp

Giới thiệu giấo viên dự giờ

2 Kiểm tra bài cũ: (5phút)

- Câu hỏi:

Hãy khai báo 2 mảng có n phần tử ( 1 n) trong đó mảng A có kiểu phần tử là xâu (string) và mảng B có kiểu phần tử là kí tự (Char)

(gọi một học sinh xung phong lên bảng và học sinh khác nhận xét, hỏi thêm hai phần tử bất kì của 2 mảng trên có gán giá trị cho nhau được không)

- Trả lời:

* VAR A: ARRAY 1 n] OF STRING;

B: ARRAY[1 n] OF CHAR;

* không thể gán được vì chúng không cùng một kiểu dữ liệu

3 Nội dung bài mới:

Đặt vấn đề: (1’)

Trang 3

0 1 2 3 4 …

Dấu hiệu cuối tệp Cửa sổ tệp

Ta đã biết các kiểu dữ liệu đã học được lưu trữ trong bộ nhớ RAM mang tính chất tạm thời phục vụ cho quá trình xử lí thông tin Vì vậy mà khi dừng

chương trình hoặc mất điện thì các giá trị của chúng sẽ bị mất đi Đối với

những bài toán trong đó dữ liệu được lưu trữ để xử lí nhiều lần và với khối

lượng lớn thì cần có kiểu dữ liệu khác với các kiểu dữ liệu đã học Trong

Turbo Pascal đó là kiểu dữ liệu tệp

T

G

Hoạt động của

HS

Hoạt động của GV Nội dung ghi bảng

5’

- HS: Đĩa mềm,

đĩa cứng, đĩa

CD…

Không bị mất

khi tắt nguồn,

lâu dài

Các em có thể hình dung thực tế tệp giống như một cuốn phim Trong một cuốn phim gồm nhiêù ảnh Khi ta không muốn xem ảnh nữa thì các ảnh trong cuốn phim vẫn không bị mất đi; hoặc

ta có thể xem cuốn phim đó nhiều lần Và tệp cũng như vậy

?Nhắc lại các thiết bị ngoài

Tệp được lưu trữ ở thiết bị ngoài vậy tệp có ưu điểm gì?

Tại mỗi thời điểm tất cả các

ô bị che chỉ trừ một ô gọi là cửa sổ tệp Nhờ cửa sổ tệp

Bài 14: KIỂU TỆP.

1 Khái niệm tệp:

Tệp là một tập hợp các dữ liệu cùng kiểu được nhóm với nhau và thường được lưu trữ ở thiết bị ngoài với một tên nào đó

 lâu dài, không mất đdùng khi không có nguồn điện, với khối lượng lớn

* Cấu trúc của tệp:

… EOF

Trang 4

Giống: dãy gồm

các phần tử

cùng kiểu

Khác: số phần

tử không xác

định trước, lưu

trữ ở thiết bị

ngoài…

Biến tệp f1

chứa các số

nguyên

Var sothuc: file

of real;

có thể đọc ghi dữ liệu vào tệp vị trí sau thành phần cuối cùng của tệp là dấu hiệu cuối tệp

So sánh với mảng?

Để làm việc với biến tệp trước hết chúng ta phải biết cách khai báo một biến kiểu tệp

Giải thích vd1?

Khai báo một biến sothuc chứa các số thực?

Khi khai báo var x: integer

2 Khai báo biến kiểu tệp:

Có hai cách:

+ Gián tiếp:

TYPE <kiểutệp> = FILE OF

<kiểuphầntử>;

VAR biếntệp: kiểutệp;

+ Trực tiếp

VAR biếntệp: FILE OF

<kiểuphầntử>;

Trong đó:

<kiểutệp>: là biến kiểu tệp

<kiểuphầntử>: là kiểu của phần tử của tệp

ví dụ1:

var f1: file of integer;

vd2

3 Các hàm và thủ tục thao tác trên tệp:

Trang 5

5’

Hoặc Type

thuc= FILE OF

REAL;

Var

sothuc:thuc;

thì giá trị của nó chưa được xác định, phải dùng lệnh gán chẳng hạn x:= 7 hoặc bằng thủ tục Read(x) để nhập giá trị cho x từ bàn phím Cũng như khi khai báo var f : file of integer thi

f mới chỉ là một biến tệp các số nguyên và nó chưa tương ứng với 1 tệp thực sự nào Để gán tên cho biến tệp f ta phải sử dụng thủ tục : Mọi thao tác trên tệp đều thông qua <tênbiếntệp>

Vì vậy muốn làm các thao tác khác trên tệp trước tiên phải sử dụng thủ tục này

Vd1: giả sử có biến xâu s

và cần gán biến tệp f với tệp có tên là dulieu.dat

Cần gán biến tệp f1 với tệp

có tên solieu.dat tại thư mục gốc của ổ đĩa C?

Muốn thao tác trên tệp thì

ta phải mở tệp ra để đọc dữ

a Thủ tục gán tên cho biến tệp:

cú pháp: ASSIGN(tênbiếntệp, têntệp);

chức năng: gán <têntệp> cho

<tênbiếntệp> Trong đó <têntệp>

là biến kiểu xâu hoặc hằng xâu;

<tênbiếntệp> đặt tên theo qui tắc của Turbo Pascal

Vd1:

S:= ‘dulieu.dat’; ASSIGN(f, s); Hoặc ASSIGN(f, ‘dulieu.dat’);

b Thủ tục mở tệp:

* Mở tệp mới:

cú pháp:

ASSIGN(tênbiếntệp, têntệp); REWRITE(tênbiếntệp);

chức năng: tạo một tệp mới vd1:

ASSIGN(f, ‘dulieu.dat’);

REWRITE(f);

Trang 6

5’

Giải thích ví dụ

Học sinh lên

bảng

Học sinh giải

thích

Học sinh lên

bảng

liệu từ tệp hoặc ta có thể tạo ra một tệp mới

Giải thích ví dụ?

Muốn tạo 1 tệp mới có tên lop11vp.dat tại thư mục khoi11 của ổ đĩa C?

Giải thích ví dụ?

Muốn mở tệp quochoc.dat tại thư mục hiện hành để

Chú ý:

- Nếu <têntệp> đã tồn tại thì nội dung của tệp này sẽ bị xoá sạch và tạo thành tệp mới có kích thước 0 byte

- Nếu <têntệp> không có đường dẫn thì tệp mới sẽ được tạo tại thư mục hiện hành

Vd2:

* Mở tệp đã có sẵn:

cú pháp:

ASSIGN(tênbiếntệp, têntệp); RESET(tênbiếntệp);

chức năng: mở 1 tệp có tên đã gán cho <tênbiếntệp> trước đó để sẵn sàng truy xuất (đọc/ ghi) dữ liệu của tệp

Vd:

Assign(f,’solieu.dat’);

Reset(f);

c Thủ tục ghi dữ liệu:

cú pháp:

Trang 7

5’

Học sinh trả lời

Read(x): nhập

giá trị cho x từ

bàn phím còn

read(f,x) là đọc

dữ liệu từ tệp

có tên gán cho

biến tệp f và

gán cho biến x

đọc

Khi chúng ta mở tệp mới tức là tạo một tệp như vậy chúng cần phải ghi dữ liệu vào tệp

Chúng ta đã biết cách ghi

dữ liệu vào tệp, làm thế nào

để đọc dữ liệu từ tệp ra?

đọc giá trị từ tệp gắn cho biến tệp f1 và gán cho biến a?

Sự khác nhau giữa Read(x)

và Read(f,x)?

WRITE(tênbiếntệp, bt1,bt2, ,btn);

chức năng:lần lượt ghi giá trị của bt1,bt2, ,btn vào tệp bắt đầu tại vị trí cửa sổ tệp

Vd: write(f,a);

Chú ý: các biểu thức phải cùng kiểu dữ liệu với thành phần của tệp

d Thủ tục đọc dữ liệu từ tệp:

cú pháp:

READ(tênbiếntệp, biến1,biến 2, ,biếnn);

chức năng:lần lượt đọc các giá trị của tệp bắt đầu từ vị trí cửa sổ tệp

và gán cho các biến tương ứng Vd1: read(f,a);

Vd2: read(f,a,b,c);

Chú ý: các biểu thức phải cùng kiểu dữ liệu với thành phần của tệp

0 1 2 3 4

Trang 8

Assign((tênbiếntệp, têntệp);

Rewrite(tênbiếntệp); Rewrite(tênbiếntệp);

Write(tênbiếntệp, bthức); Read(tênbiếntệp, biến);

5’

3 -31 410 32 -33

Sau khi chúng ta làm việcvới tệp xong chúng ta phải đóng tệp lại để tránh mất mát thông tin

d Thủ tục Seek:

cú pháp: SEEK(tênbiếntệp, biếnnguyên);

Chức năng:đưa cửa sổ tệp về vị trí

phần tử có số thứ tự xác định bởi giá trị <biếnnguyên>

vd: seek(f1,4);

e Thủ tục đóng tệp:

cú pháp: CLOSE(tênbiếntệp);

f Một số hàm:

- Hàm EOF(tênbiếntệp): có giá

trị True nếu cửa sổ tệp đang ở cuối tệp và cho giá trị False nếu ngược lại

- Hàm FILESIZE(tênbiếntệp):

cho biết kích thước của tệp

4 Củng cố kiến thức (2’):

- Các thủ tục và hàm thao tác trên tệp

Trang 9

- Sự khác nhau giữa read(x) và read(f,x).

Ngày đăng: 02/05/2021, 16:59

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w