Turbo Pascal khá quen thuộc với chúng ta nhưng đang dần bị lãng quên ... vậy nên tôi quyết định lưu lại các tài liệu về nó và up cho mọi người cùng xem đối với những ai đam mê lập trình giống tôi và để trao dồi kiến thức programming ...
Trang 1Từ khoá trong Turbo Pascal
absolute and array asm begin case const constructor destructor div do downto
else end file for function goto if implementation in inherited inline interface
label mod nil not object of on operator or packed procedure program record
reintroduce repeat self set shl shr string then to type unit until uses var
while with xor
Từ khoá trong Object Pascal và Free Pascal
as class dispinterface except exports finalization finally initialization inline
is library on out packed property raise resourcestring
threadvar try
dispose exit false new true
Các từ khoá là dẫn hướng
absolute abstract alias assembler cdecl cppdecl default export external far
far16 forward index local name near nostackframe oldfpccall override pascal
private protected public published read register reintroduce safecall softfloat
stdcall virtual write
1 while a <> b do WriteLn('Xin cho*`');
2
3
4
5 if a > b then
6
7 writeln('Thỏa man~ điều kiện')
8
9 else
10
11 writeln('Không thỏa man~ điều kiện');
12
13
14
15 for i := 1 to 10 do writeln('Lặp: ', i:1);
16
17
18
19 repeat a := a + 1 until a = 10;
20
21 while a <> b do WriteLn('Xin cho*`');
22
23
24
25 if a > b then
Trang 227 writeln('Thỏa man~ điều kiện')
28
29 else
30
31 writeln('Không thỏa man~ điều kiện');
32
33
34
35 for i := 1 to 10 do writeln('Lặp: ', i:1);
36
37
38
39 repeat a := a + 1 until a = 10;
40
41 program mine(output);
42
43
44
45 procedure print(var i: integer);
46
47
48
49 function next(i: integer): integer;
50
51 begin
52
53 next := i + 1
54
55 end;
56
57
58
59 begin
60
61 writeln('Tổng là: ', i);
62
63 i := next(i)
64
65 end;
66
67
68
69 begin
70
71 i := 1;
72
73 while i <= 10 do print(i)
74
Trang 375 end.
76
Các kiểu số nguyên[ sửa ]
Tên kiểu Khoảng cách Dung lượng theo bytes
Longint -2147483648 2147483647 4
int64 -9223372036854775808 9223372036854775807 8 [2]
QWord 0 18446744073709551615 8 [3]
Cardinal Tương đương với longword
Các kiểu số thực[ sửa ]
Tên kiểu Khoảng cách Số chữ số có nghĩa Dung lượng theo bytes
Real Tùy theo nền tảng đang chạy Không rõ 6
Double 5,0*10-324 1,7*10308 15-16 8
Extended 1,9*10-4932 1,1*104932 19-20 10
Comp -2*1064+1 2*1063-1 19-20 8
Currency -922337203685477.5808
Kiểu chữ[ sửa ]
Tất cả các kiểu chữ đều có thể lưu được các kí tự trong bảng mã ASCII
bytes
Ansistring Tùy thuộc vào bộ nhớ (càng nhiều bộ nhớ thì lưu được càng nhiều) ?
Phương pháp khai báo biến[ sửa ]
Trang 4Đây là một số khai báo kiểu của Pascal:
1 type (* Khai báo kiểu*)
2.
3 KieuSoNguyen = integer;
4.
5 KieuSoNguyenDuong = QWord;
6.
7 MangSoNguyen = array[1 239] of KieuSoNguyen; 8.
9
10.
11 DiaChi = record
12.
13 xa, huyen, tinh : string;
14.
15 SoNha : integer;
16.
17 end;
18.
19
20.
21 { hướng đối tượng }
22.
23 ConVat = object
24.
25 Ten : string;
26.
27 Lop : string;
28.
29 end;
30.
31
32.
33 ConGa = object(ConVat)
34.
35 TiengGay : string;
36.
37 end;
38.
39
40.
41 { Kiểu đoạn con, kiểu tự định nghĩa }
42.
43 SoDem = (mot, hai, ba, bon, nam);
44.
45 SoNho = 0 10;
46.
47 SoDemNho = mot ba;
Trang 5Từ đó, ta có thể khai báo các biến và sử dụng chúng:
1 var
2.
3 x : integer; y : KieuSonguyenduong; 4.
5 A : mangsonguyen;
6.
7 GaTrong : ConGa;
8.
9 z : SoDemNho;
10.
11 Begin {thân chương trình }
12.
13 x := 5;
14.
15 y := x+10;
16.
17 y := y-1;
18.
19 GaTrong.TiengGay := 'O O O '; 20.
21 writeln(GaTrong.TiengGay);
22.
23 End.
24.
Các kiểu phức có thể được xây dựng từ các kiểu đơn:
1 type
2.
3 a = array [1 10] of integer; 4.
5 b = record
6.
7 a: integer;
8.
9 b: char
10.
11 end;
12.
13 c = file of a;
14.
Kiểu chuỗi kí tự (string) là kiểu dữ liệu rất mạnh Pascal cũng hỗ trợ dùng con trỏ:
Trang 61 type
2
3 a = ^b;
4
5 b = record
6
7 a: integer;
8
9 b: char;
10
11 c: a
12
13 end;
14
15 var
16
17 pb : a
18
Ở đây biến pb là một con trỏ đến kiểu dữ liệu b, là một record Để tạo record mới và gán các giá trị 10 và A vào các trường a và b trong record, có thể dùng các câu lệnh sau:
1 new(pb);
2
3 pb^.a := 10;
4
5 pb^.b := 'A';
6
7 pb^.c := nil;
8
9
10
SYSTEM[ sửa ]
write(): in ra màn hình liền sau kí tự cuối.
writeln(): in xuống một hàng.
read( ): đọc biến.
readln( ): đọc biến và xuống dòng
Unit CRT[ sửa ]
o clrscr : xoá toàn bộ màn hình
o textcolor() : in chữ màu
o textbackground() : tô màu cho màn hình
o sound() : tạo âm thanh
o delay() : dừng chương trình trong x miligiây trước khi chạy tiếp
Trang 7o nosound : tắt âm thanh.
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 con trỏ đến vị trí x,y trên màn hình
o deline : xoá một dòng đang chứa con trỏ
o clreol : xoá các ký tự từ vị trí con trỏ đến cuối mà không di chuyển vị trí con trỏ
o insline : chèn thêm một dòng vào vị trí của con trỏ hiện hà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) : sao chép trong bộ nhớ một khối n byte từ biến Var 1 sang biến Var 2
o halt : Ngưng thực hiện chương trình và trở về hệ điều hành
o Abs(n) : Giá trị tuyệt đối
o Arctan(x) : cho kết quả là hàm Arctan(x)
o Cos(x) : cho kết quả là cos(x)
o Exp(x) : hàm số mũ cơ số tự nhiên ex
o Frac(x) : cho kết quả là phần thập phân của số x
o int(x) : cho kết quả là phần nguyên của số thập phân x
o ln(x) : Hàm logarit cơ số tự nhiên
o sin(x) : cho kết quả là sin(x), với x tính bằng Radian
o Sqr(x) : bình phương của số x
o Sqrt(x) : cho kết quả là căn bậc hai của x
o pred(x) : cho kết quả là số nguyên đứng trước số nguyên x
o Succ(x) : cho kết quả là số nguyên đứng sau số nguyên x
o odd(x) : cho kết quả là true nếu x số lẻ, ngược lại là false
o chr(x) : trả về một kí tự có vị trí là x trong bảng mã ASCII
o Ord(x) : trả về một số thứ tự của kí tự x
o round(n) : Làm tròn số thực n tới số nguyên gần n nhất
o trunc(n) : Làm tròn số thực n tới số nguyên có giá trị tuyệt đối bé hơn n
o Random(n) : cho một số ngẫu nhiên trong phạm vi n
o upcase(n) : đổi kí tự chữ thường sang chữ hoa
o assign(f,'<đường dẫn><tên file>.<phần mở rộng>') : tạo file
o rewrite(f) : ghi file lên đĩa
o append(f) : chèn thêm dữ liệu cho file
o close(f) : tắt file
o erase(f) : xóa
o rename() : đặt lại tên
o str(a: integer,s: string) : đổi từ số a thành xâu s
o val(st,n,m): chuyển chuỗi st thành số n, lúc đó m nhận giá trị 0
o length(s) : cho kết quả là chiều dài của xâu
o copy(s: string,a: integer,b: integer) : copy b kí tự từ vị trí a trong xâu s
Trang 8o insert(x: string,s: string,a: integer) : chèn xâu x vào vị trí a cho xâu s.
o delete(s:string,a:integer,b:integer) : xóa b ký tự từ vị trí a trong xâu s
Unit GRAPH[ sửa ]
o initgraph(a,b,) : khởi tạo chế độ đồ hoạ.
o closegraph; : tắt chế độ đồ hoạ
o setcolor(x) : chọn màu
o outtext() : in ra màn hình tại góc trên bên trái
o outtextxy(x,y,); : in ra màn hình tại toạ độ màn hình.
o rectangle(x1,y1,x2,y2): vẽ hình chữ nhật
o line(x1,y1,x2,y2) : vẽ đoạn thẳng
o moveto(x,y) : lấy điểm xuất phát để vẽ đoạn thẳng
o lineto(x,y) : lấy điểm kết thúc để vẽ doạn thảng
o circle(x,y,n) : vẽ đường tròn
o ellipse(x,y,o1,o2,a,b): vẽ hình elip
o floodfill(a,b,n) : tô màu cho hình
o getfillpattern(x) : tạo biến để tô
o setfillpattern(x,a) : chọn màu để tô
o cleardevice; : xoá toàn bộ màn hình
o settextstyle(n,a,b) : chọn kiểu chữ
o bar(a,b,c,d) : vẽ thanh
o bar3d(a,b,c,d,n,h) : vẽ hộp
o arc(a,b,c,d,e) : vẽ cung tròn
o setbkcolor(n) : tô màu nền
o putpixel(x,y,n) : vẽ điểm
o setfillstyle(a,b) : tạo nền cho màn hình
o setlinestyle(a,b,c) : chọn kiểu đoạn thẳng
o getmem(p,1) : chuyển biến để nhớ dữ liệu
o getimage(x1,y1,x2,y2,p): nhớ các hình vẽ trên vùng cửa sổ xác định
o putimage(x,y,p,n) : in ra màn hình các hình vừa nhớ
Unit DOS[ sửa ]
getdate(y,m,d,t): lấy các dữ liệu về ngày trong bộ nhớ.
gettime(h,m,s,hund): lấy các dữ liệu về giờ trong bộ nhớ.
findnext(x): tìm kiếm tiếp.
Findfirst($20,dirinfo): tìm kiếm .