Nếu file đã có trên đĩa thì mọi dữ liệu trên đó sẽ bị xoá và con trỏ file trỏ ở vị trí đầu tiên của file.. Mở file đã có trên đĩa Cuù phaùp: ResetF; Chức năng: Mở file có tên đã gán cho [r]
(1)Caùc caâu leänh SYSTEM write(): in màn hình liền sau kí tự cuối writeln(): in xuoáng moät haøng read( ): đọc biến readln( ): đọc biến và xuống dòng Unit CRT o clrscr : xoá toàn màn hình o textcolor() : in chữ màu o textbackground() : toâ maøu cho maøn hình o sound() : taïo aâm o delay() : laøm treã o nosound : taét aâm o windows(x1,y1,x2,y2) : thay đổi cửa sổ màn hình o highvideo : tăng độ sáng màn hình o lowvideo : giảm độ sáng màn hình o normvideo : màn hình trở lại chế độ sáng bình thường o gotoxy(x,y) : đưa trỏ đến vị trí x,y trên màn hình o deline : xoá dòng chứa trỏ o clreol : xoá các ký tự từ vị trí trỏ đến cuối mà không di chuyeån vò trí troû o insline : cheøn theâm moät doøng vaøo vò trí cuûa troû hieän haønh o exit : thoát khỏi chương trình o textmode(co40) : tạo kiểu chữ lớn o randomize : khởi tạo chế độ ngẫu nhiên o move(var 1,var 2,n) : chép nhớ khối n byte từ biến Var sang biến Var o halt : Ngưng thực chương trình và trở hệ điều haønh o Abs(n) : Giá trị tuyệt đối o Arctan(x) : cho keát quaû laø haøm Arctan(x) (2) o o o o o o o o o o o o o o o o o o o o o o o o o o Cos(x) : cho keát quaû laø cos(x) Exp(x) : hàm số mũ số tự nhiên ex Frac(x) : cho keát quaû laø phaàn thaäp phaân cuûa soá x int(x) : cho keát quaû laø phaàn nguyeân cuûa soá thaäp phaân x ln(x) : Hàm logarit số tự nhiên sin(x) : cho kết là sin(x), với x tính Radian Sqr(x) : bình phöông cuûa soá x Sqrt(x) : cho keát quaû laø caên baäc hai cuûa x pred(x) : cho kết là số nguyên đứng trước số nguyên x Succ(x) : cho kết là số nguyên đứng sau số nguyên x odd(x) : cho kết là true x số lẻ, ngược lại là false chr(x) : trả kí tự có vị trí là x bảng mã ASCII Ord(x) : trả số thứ tự kí tự x round(n) : Làm tròn số thực n Random(n) : cho moät soá ngaãu nhieân phaïm vi n upcase(n) : đổi kí tự chữ thường sang chữ hoa assign(f,'<đường dẫn><tên file>.<phần mở rộng>') : tạo file rewrite(f) : ghi file leân ñóa append(f) : chèn thêm liệu cho file close(f) : taét file erase(f) : xoùa rename() : ñaët laïi teân length(s) : cho keát quaû laø chieàu daøi cuûa xaâu copy(s,a,b) : copy xaâu insert(,s,a) : cheøn theâm cho xaâu delete(s:string,a:integer,b:integer) : xóa b ký tự từ vị trí a xaâu s Unit GRAPH (3) initgraph(a,b,) : khởi tạo chế độ đồ hoạ closegraph; : tắt chế độ đồ hoạ setcolor(x) : choïn maøu outtext() : in maøn hình taïi goùc treân beân traùi outtextxy(x,y,); : in màn hình toạ độ màn hình rectangle(x1,y1,x2,y2): vẽ hình chữ nhật line(x1,y1,x2,y2) : vẽ đoạn thẳng moveto(x,y) : lấy điểm xuất phát để vẽ đoạn thẳng lineto(x,y) : lấy điểm kết thúc để vẽ doạn thảng circle(x,y,n) : vẽ đường tròn ellipse(x,y,o1,o2,a,b): veõ hình elip floodfill(a,b,n) : toâ maøu cho hình getfillpattern(x) : tạo biến để tô setfillpattern(x,a) : chọn màu để tô cleardevice; : xoá toàn màn hình settextstyle(n,a,b) : chọn kiểu chữ bar(a,b,c,d) : veõ bar3d(a,b,c,d,n,h) : veõ hoäp arc(a,b,c,d,e) : veõ cung troøn setbkcolor(n) : toâ maøu neàn putpixel(x,y,n) : veõ ñieåm setfillstyle(a,b) : taïo neàn cho maøn hình setlinestyle(a,b,c) : chọn kiểu đoạn thẳng getmem(p,1) : chuyển biến để nhớ liệu getimage(x1,y1,x2,y2,p): nhớ các hình vẽ trên vùng cửa soå xaùc ñònh o putimage(x,y,p,n) : in màn hình các hình vừa nhớ Unit DOS getdate(y,m,d,t): lấy các liệu ngày nhớ gettime(h,m,s,hund): lấy các liệu nhớ findnext(x): tìm kieám tieáp Findfirst($20,dirinfo): tìm kieám DỮ LIỆU KIỂU FILE o o o o o o o o o o o o o o o o o o o o o o o o o (4) I KHAÙI NIEÄM: Để sử dụng thông tin lâu dài ta phải lưu trữ chúng thành các File ( tập tin, tệp ) trên đĩa mềm đĩa cứng Do đó File là kiểu liệu có cấu trúc và quan trọng Trong Pascal chia loại File: File coù ñònh kieåu File khoâng ñònh kieåu File vaên baûn Trong giới hạn chương trình, chúng ta nghiên cứu File văn baûn DỮ LIỆU KIỂU FILE I KHAÙI NIEÄM: Để sử dụng thông tin lâu dài ta phải lưu trữ chúng thành các File ( tập tin, tệp ) trên đĩa mềm đĩa cứng Do đó File là kiểu liệu có cấu trúc và quan trọng Trong Pascal chia loại File: File coù ñònh kieåu File khoâng ñònh kieåu File vaên baûn Trong giới hạn chương trình, chúng ta nghiên cứu File văn baûn II CAÙC THUÛ TUÏC VAØ HAØM CHUAÅN 2.1 Caùc thuû tuïc chuaån 2.1.1 Gaùn teân file Cuù phaùp: Assign(F, Filename); Chức năng: Gán file trên đĩa có tên là Filename cho biến file F, truy xuất trên file cụ thể thực thông qua biến file naøy Chuù yù: Filename bao gồm tên ổ đĩa và đường dẫn file không nằm ổ đĩa, thư mục thời 2.1.2 Mở file (5) Cuù phaùp: Rewrite(F); Chức năng: Tạo file có tên đã gán cho biến file F Nếu file đã có trên đĩa thì liệu trên đó bị xoá và trỏ file trỏ vị trí đầu tiên file 2.1.3 Mở file đã có trên đĩa Cuù phaùp: Reset(F); Chức năng: Mở file có tên đã gán cho biến file F Nếu file chưa có trên đĩa thì chương trình dừng vì gặp lỗi xuất/nhập Vì người ta phải kiểm tra mở file Chú ý: Kiểm tra mở file: Người ta định hướng kiểm tra lỗi vào cách dùng thị {$I-} và {$I+}vào trước và sau câu lệnh Reset(F) Dùng hàm Ioresult: Word biết kết mở file Nếu Ioresult có giá trị là thì không có lỗi, ngược lại khác thì có loãi Ví duï: Program MoFile; Var Ten_File:String; F:Text; Begin Write(‘Nhaäp teân File: ‘);readln(Ten_File); Assign(F,Ten_File); {$I-} Reset(F); {$I+} If Ioresult <> then Begin writeln(‘Co loi truy xuat File : ‘,Ten_File); Exit; End Else Writeln(‘ Khong co loi truy xuat File ‘); End; 2.1.4 Đọc liệu từ file Cuù phaùp: Read(F, x); Chức năng: Đọc phần tử liệu từ file F vị trí trỏ file vaø gaùn cho caùc bieán x (6) 2.1.5 Ghi liệu lên file Cuù phaùp: Write(F, Value); Chức năng: Ghi giá trị Value vào file F vị trí thời troû file 2.1.6 Đóng file Cuù phaùp: Close(F); Chức năng: Cập nhật sửa đổi trên file F và kết thúc thao taùc treân file naøy 2.2.2 Haøm kieåm tra cuoái file Cuù phaùp: EOF(F); Chức năng: Hàm trả giá trị True trỏ file cuối file, ngược lại hàm trả giá trị False III FILE VAÊN BAÛN (TEXT FILE) 3.1 Khai baùo Var <Teân bieán file>: Text; Ví duï: F:Text; 3.2 Các thủ tục và hàm tác động trên file dạng text 3.2.1 Thuû tuïc Append Cuù phaùp: Append(F); Chức năng: Mở file đã tồn để bổ sung nội dung vào cuối file 3.2.2 Thuû tuïc Readln Cuù phaùp: Readln(F,x); Chức năng: Đọc dòng từ vị trí trỏ file và gán cho biến x Thực xong, trỏ file chuyển đầu dòng Biến x có thể nhận các kiểu: Char, String kiểu số Chú ý: không thể dùng lệnh Readln(F,x)để đọc số nguyên moät teäp soá nguyeân 3.2.3 Thuû tuïc Writeln Cuù phaùp: Writeln(F, x); Chức năng: Ghi giá trị x vào file vị trí trỏ file Kết thúc thủ tục, trỏ file chuyển đầu dòng sau 3.2.4 Haøm EOLn (7) Cuù phaùp: EOLn(F); Chức năng: Hàm trả giá trị True trỏ cuối dòng, ngược lại hàm trả giá trị False Chuù yù: Sau ñaây laø caùc thao taùc cô baûn xuaát nhaäp file: Ghi liệu vào file Đọc liệu từ file ASSIGN(f,FileName); ASSIGN(f,FileName); REWRITE(f); RESET(f); WRITE(f,value); While Not EOF(f) Do Begin CLOSE(f); READ(f,x); End; CLOSE(f); BAØI TAÄP Bài tập 1: Viết chương trình đọc các số nguyên File text và gán các số nguyên đó vào mảng A (File text gồm các số nguyên đã lưu ổ cứng) Var f:Text; tenfile:String; A:Array[1 100] of integer; i,n:integer; Begin Write(' Nhap ten file du lieu : '); Readln(tenfile); Assign(f,tenfile); {$I-} Reset(f); {$I+} If Ioresult<>0 then Begin Writeln(' Khong co tap tin co ten : ',tenfile); Halt(1); (8) End; n:=0; While Not EOF(f) Begin While Not EOLN(f) Begin inc(n);Read(F,a[n]); End; Readln(f); End; Close(f); Writeln; If n>0 then Begin Write('A = '); For i:=1 to n write(a[i],' '); End; Readln; End Bài tập 2: Viết chương trình đọc và đếm số lượng số nguyên moät File text Baøi taäp 3: Vieát chöông trình taïo moät File text coù teân DULIEU.INP goàm caùc soá nguyeân Tính toång caùc soá nguyeân treân moät haøng Keát quaû löu vaøo File text coù teân DULIEU.OUT, đó tổng ghi trên hàng Chaúng haïn DULIEU.INP DULIEU.OUT 65 11 12 31 10 34 82451 20 Baøi taäp 3: Vieát chöông trình saép xeáp caùc soá nguyeân moät File text theo thứ tự tăng dần Bài tập 4: Viết chương trình thực các công việc sau: (9) a) Đọc file text số nguyên và xếp chúng theo thứ tự tăng daàn b) Hãy nối file đó lại với thành file thứ cho file có thứ tự tăng dần Gợi ý: - Câu a) dùng hai mảng A,B để ghi các số nguyên có file saép xeáp theo maûng A,B - Câu b) có thể làm theo hướng dẫn sau: Duøng theâm maûng C vaø ta tieán haønh nhö sau: Dùng số i,j để duyệt qua các phần tử mảng A, B và k laø chæ soá cho maûng C Trong (i<=m) vaø (j<=n) thì: {Tức là đồng thời dãy A, B chưa duyệt hết} + Neáu A[i]>B[j] thì: C[k]:=A[i]; i:=i+1; + Ngược lại: C[k]:=B[j]; j:=j+1; Nếu dãy nào hết trước thì đem phần còn lại dãy bổ sung vaøo cuoái daõy C BAØI TẬP TỰ GIẢI Bài tập 1: Viết chương trình thực các công việc sau: c) Tạo file số nguyên và xếp chúng theo thứ tự tăng daàn d) Hãy nối file đó lại với thành file thứ cho file có thứ tự tăng dần Bài tập 2: Cho mảng số nguyên: Mảng A có m phần tử, mảng B có n phần tử a/ Sắp xếp lại các mảng đó theo thứ tự giảm dần b/ Trộn mảng đó lại thành mảng C cho mảng C có thứ tự giảm dần (Không xếp lại mảng C) Bài tập 3: Cho đa thức P(x) = a0 + a1x + a2x2 + + anxn Trong đó n là bậc đa thức và a 0, a1, , an là các hệ số đa thức lưu file văn với qui ước sau: (10) - Dòng đầu file văn chứa bậc đa thức và giá trị x - Dòng chứa các hệ số đa thức Ví dụ: P(x) = + 2x - 5x2 + 4x3 , x = 2.5 lưu file văn baûn nhö sau: 2.5 -5 Viết chương trình đọc file văn trên để lấy các số liệu tính giá trị đa thức Gợi ý: - Tổ chức mảng để lưu đa thức - Viết thủ tục để đọc file text lưu vào mảng Baøi taäp 4: Vieát chöông trình taïo hai taäp tin löu caùc soá kieåu word mà các số file đã thứ tự tăng dần Hãy tạo tập tin chứa tất các số tập tin trên cho thứ tự tăng dần trì Chú ý: Không dùng mảng (11)