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

