Giáo trình Lập trình Pascal căn bản
Mục đích của giáo trình:
1. Hỗ trợ thêm kiến thức và kỹ năng cho học phần Tin Học Đại
Cương
2. Biết cách chuyển từ việc giải quyết bài toán thông thường
thành việc giải bài toán trên máy tính
3. Rèn luyện tư duy về thuật toán
4. Làm quen với các khái niệm cơ bản về lập trình cho máy
tính thông qua ngôn ngữ lập trình Pascal
t30 = String[30]; VAR MyFile: FI; FileName: St30; (*------------------------------------------------*) Procedure Tao_File(Var F: FI; Ten: St30); Var I: integer; Begin ASSIGN(F, Ten); REWRITE(F); For i:=1 to 100 do Write(F, I); CLOSE(F); End; (*------------------------------------------------*) BEGIN W T ; Tin Học Đại Cương - Lập trình Pascal (căn bản) 50 Edited by Le Duc Long – Mekong Uni. – Computer Science Dep. Readln(FileName); Tao_File(MyFile, FileName); END. T ư F N ư T T M F ư F B ư F ư T ). Đ L Ộ Ậ Đ M ư ư ư ư S . M ư ư ư ư C ư : M T PASCAL . iến tập tin ên tập tin); hay ASSIGN(FileVar, FileName); iến tập tin); hay RESET(FileVar); K ư S RESET ờ ư ư . Đ L Ậ : V ư READ C : il r r r … r ; iến tập tin c c iến); T ư S C V N. M ư READ V V … V N K ư I …). V ư EOF H EOF EOF B _ = T EOF B _ = F D ư X ư : iến tập tin iến tập tin, X); H : WHILE iến tập tin) DO Begin READ B _ , X); Đ *) … End; N EOF ư ư . C ư : L iến tập tin); Tin Học Đại Cương - Lập trình Pascal (căn bản) 51 Edited by Le Duc Long – Mekong Uni. – Computer Science Dep. B ờ NGUYEN DAT ư ư T A B ư G EOF. Program DOC_TEP_1; Var A, B,C: integer; FI: File of integer; Begin ; RESET(FI); Read(FI, A); Đọc một phần t thứ nhất củ tập tin r iến *) Read(FI, B); Đọc một phần t thứ h i củ tập tin r iến *) Read(FI, C); Đọc một phần t thứ củ tập tin r iến *) CLOSE(FI); END. B READ FI … : READ(FI, A, B, B); S 2. T T ư ư NGUYEN DAT D NOT EOF. Program DOC_TEP_2; Var I: integer SoPhanTu: integer; FI: File of integer; FileName: String[20]; Begin W T ; Readln(FileName); ASSIGN(FI, FileName); RESET(FI); SoPhanTu := 0; WHILE NOT EOF(FI) DO Begin Read(FI,I); Đ I *) Writeln(I); SoPhanTu := SoPhanTu + 1; Đ *) End; CLOSE(FI); W S F N S P T ; End. T C ư ư ư . TYPE FI = File Of Integer; VAR FS, FD: FI; (* FS: File Source, FD: File Destination *) Name1, Name2: String[30]; (*--------------------------------------------------------*) Tin Học Đại Cương - Lập trình Pascal (căn bản) 52 Edited by Le Duc Long – Mekong Uni. – Computer Science Dep. Procedure Copy_File_Int(Var Source, Destination: FI); Var I: integer; Begin Reset(Source); Rewrite(Destination); While Not EOF(Source) Do Begin Read(Source, I); Write(Destination, I); End; Close(Source); Close(Destination); End; (*--------------------------------------------------------*) Begin W C F ; R N ; W F ; R N ; Assign(FS, Name1); Assign(FD, Name2); Copy_File_Int(FS,FD); W E C ; End. Ậ Ớ Ầ Ậ L L Ấ : C ư ư … T ư FNS F ư ). V Write(FNS, Nguoi); C ườ ư ư: Write(FNS, Nguoi.Ten); Ậ Ậ : P T ư … ư Đ T ư P : SEEK. C : SEEK(FileVar, No); V N . C ư ư 0. T N S R W N ư . T : G T 3 : Var F: File of Integer; Ch: char; I: integer; Begin Tin Học Đại Cương - Lập trình Pascal (căn bản) 53 Edited by Le Duc Long – Mekong Uni. – Computer Science Dep. … A F SONGUYEN DAT ; R F ; SEEK(F, 2); Đ 3 *); Read(F, I); W I = I ; W C ? C K ; Readln(Ch); I C [ C Begin SEEK(F, 2); Đ 3 *) W I = ; Readln(I); Write(F, I); T *) End; … CLOSE(F); End. B V . L Ậ L. FileSize(FileVar) H F V H FilePos(FileVar) H ờ F V P 0. Erase(FileVar) T ư F V . Rename(FileVar, Str); T S S B ư . Ậ Ă Ả : (TEXT FILES) T P ư ư ư TEXT. T F F TEXT VAR F1, F2: TEXT; C tập tin kiểu l c c kí t c c chữ viết song t il kh c với il of h r chỗ tập tin văn ản được tổ chức th nh từng ng với độ i mỗi ng kh c nh u nhờ c thêm c c ấu hết ng n f Lin h ấu chấm u ng ng Đ c p kí t điều khiển: CR C R ASCII = LF L F ASCII = C ư ư D CR LF ư ư T ư R . T : VI DU VAN BAN 1234 HET Được hiểu l m s chứ trong tập tin văn ản th nh một như s u: VI DU VAN BAN CR LF 1234 CR LF HET EOF B PAS BAS C … ư ư PASCAL, BASIC hay C. Tin Học Đại Cương - Lập trình Pascal (căn bản) 54 Edited by Le Duc Long – Mekong Uni. – Computer Science Dep. D ư R R L W W L C ư . M ư R W ư ờ . VIII./ GHI Ậ Ă ẢN: C C ư ư ườ ư ườ … . c c ch viết C rit il r t m t m … t m ; Writeln(FileVar, Item1, t m … t m ; Writeln(FileVar); T rit il r t m t m … t m ; I I … I N ư I R C S B F V C I I … I N . T : Var I, J: integer; X: real; B: Boolean; S5: String[5]; Ta : rit il r hi u J ; T I : X , , , T W I A S R F V : Write(FileVar, Nguoi); V N C ư F V N S ư ư . T rit ln il r t m t m … t m ; ư . T Writeln(FileVar); ư CR LF ư . N ư rit ln il r t m t m … t m ; ư W W ư ) BEGIN Write(FileVar, Item1); Write(FileVar, Item2); … Write(FileVar, ItemN); Writeln(FileVar); END; C . Tin Học Đại Cương - Lập trình Pascal (căn bản) 55 Edited by Le Duc Long – Mekong Uni. – Computer Science Dep. N VI : Write(FileVar, VI); S F V VI : Write(FileVar, VI:n); S VI G VI 12345 Write(FileVar, VI, VI); cho ra 1234512345 Write(FileVar, VI:8, VI:8); cho ra ___12345___12345 N VR : Write(FileVar, VR:n); C E ư T ư : #.#######E%## n-6 4 . – N ư E E B ư T S - ư . T : VR := 123.123456; Write(FileVar, VR:8); cho ra 1.23E+02 Write(FileVar, VR:n:m); M VR N = ư VR. T : VR = 123.123456; Write(FileVar, VR:10:2); cho ra ____123.12 Write(FileVar, VR:15:9); cho ra __123.123456000 L Ộ (CHAR): W F V VC ; VC ư N > - ư VC. T CH = H ; Write(FileVar, CH:1); cho ra H Write(FileVar, CH:3); cho ra __H ư H} L Ộ Ộ : Write(FileVar, VS:n); C VS ư N < S S . T : rit il r llo ; cho ra H rit il r llo ; cho ra Hel rit il r llo 0 ; cho ra _____Hello T : Var Ketqua: TEXT; A: integer; B: real; C: String[20]; D: Boolean; Begin A = ; B = ; C = END ; D = T ; ssign tqu ; Rewrite(Ketqua); W K K ; Write(Ketqua, A:10); Write(Ketqua, B:10:4); Ket qua la 34 4.14 END Dong 2! TRUE Tin Học Đại Cương - Lập trình Pascal (căn bản) 56 Edited by Le Duc Long – Mekong Uni. – Computer Science Dep. Writeln(Ketqua, C); W D D ; Close(Ketqua); END. C ư ) C ư : rit ln tqu t qu l 0 0 ; M A ư M A A Tư B ư . C C D TRUE FALSE ư . Đ L Ậ Ă Ả : C : il r r r … r ; ln il r r r … r ; Readln(FileVar); T V 1, Va … V N C S I R B ư . hủ tục ln il r r r … r ; ư ư ư . hủ tục ln(FileVar) ư . H B EOLN F EOLN E O L F K EOF=TRUE EOLN TRUE. INPUT ư ư INPUT ườ ư INPUT R R : Read(Var1) được hiểu ngầm l (INPUT, Var1); Readln(Var1) được hiểu ngầm l ln(INPUT, Var1); Readln; được hiểu ngầm l ln(INPUT); ấu hiệu củ tập tin văn ản đ được qui ước l kí t s 26 ư CTRL_Z INPUT CTRL_Z EOF(INPUT)=TRUE While not EOF(INPUT) do Begin R V … ; End; iệc đọc văn ản c thể tạm chi l m h i loại: + + . L Ă Ả : V H ư F Program Dem_chu; Var F: Text; Ch: Char; Tin Học Đại Cương - Lập trình Pascal (căn bản) 57 Edited by Le Duc Long – Mekong Uni. – Computer Science Dep. I: integer; FileName: String[30]; Begin W T ; Readln(Filename); Assign(F, FileName); Reset(F); I := 0; R *) While not EOF(F) do Begin While not EOLN(F) do Begin Read(F, Ch); I := I + 1; End; Readln(F); End; W S I ; Close(F); End. Đ L Ậ Ă Ả : V il r r r … r ; ln il r r r … r ; T V … V N T R R N ư V ư - ư E T F : Ket qua la 34 3.1400 END Dong 2! TRUE G I X (real) c V ư S S [10]: Readln(F, St10, I, J); V R (F, I, J ; K I M ư . hủ tục h m il i , FilePos kh ng được p ụng cho tập tin văn ản v được tính th o đơn v l ng kí t với độ i ng th đổi . Tuy nhiên ur o sc l c h i h m l c một phần tên l Seek: SeekEoln(FileVar); H B ư ư E ư E S T . SekkEof(FileVar); H B ư ư E ư E S T . N ư R R , logic boolean) T : G ư S ư ư B ư : Tin Học Đại Cương - Lập trình Pascal (căn bản) 58 Edited by Le Duc Long – Mekong Uni. – Computer Science Dep. D D ườ T . Ư ư E ư E T P ư Đ ư ư R . N ư ư ư T = S ư N ư C ư ư ? N ư ư ư ư ư ư ư Đ ờ . S C S ư G THANG DAT ư E ư : C ư ư , ư EOLN ư S ư ư V ư W S ư ). PROGRAM DOC_DU_LIEU; Var F: TEXT; NhietDo, DoAm: integer; Ngay: Byte; ApSuat: Real; SoNgay: Byte; S ư *) BEGIN A F THANG DAT ; Reset(F); Readln(F); N 1 *) Readln(F); N 2 *) SoNgay := 0; While not SeekEoln(F) do Begin Đ *) Readln(F, Ngay, NhietDo, ApSuat, DoAm); SoNgay := SoNgay + 1; X *) End; W K S N ; … Close(F); THOI TIET THANG 10 NAM 2000 1 30 298.5 45 2 35 100.8 24 …………… Tin Học Đại Cương - Lập trình Pascal (căn bản) 59 Edited by Le Duc Long – Mekong Uni. – Computer Science Dep. END. M ư S T ư ư V ư S ư ư … C . VAR VANBAN: ARRAY[1..700] OF String[80]; Lư } F: TEXT; I, Sodong: integer; Name: String[30]; BEGIN Đ *) N = VIDU TXT ; Assign(F, Name); Reset(F); I := 1; While not EOF(F) do Begin Readln(F, VANBAN[I]); } I := i + 1; End; Sodong := i – 1; *) … Close(F); … END. Lư : VANBAN KB M ư V N ườ d … . Ậ N ư R F F ư , khi F F ? T P ờ ư ư tin. {$I+} K ư Đ ư ư . {$I-} /r ư ư ờ IOR T P K ờ IOR L ườ H IOR = S . Procedure OpenInputFile; Var Tin Học Đại Cương - Lập trình Pascal (căn bản) 60 Edited by Le Duc Long – Mekong Uni. – Computer Science Dep. OK: Boolean; Begin Repeat W T ; Readln(FileName); Assign(F, FileName); {$I-} hu ển việc kiểm tr v o r cho người ng *) Reset(F); OK := IOResult = 0; {$I+} u khi ng sult t c thể chu ển th nh $I+ *) I OK K ; Until OK; End; T ư ư IOC B IOC . t kh c c ng cần lưu - v sult được ng kh ng ch với thủ tục s t m c n với c c thủ tục kh c như: ERASE, RENAME, WRITE, … Ậ V ư ASCII V ư V ư … NEWFILE.TXT V ư T V ư ườ .
File đính kèm:
- Giáo trình Lập trình Pascal căn bản.pdf