Ngôn ngữ lập trình trình Pascal
Mọi chương trình Pascal bắt đầu bằng từ khóa Program, cùng với một danh sách tùy chọn các phần mô tả các tập tin ngoài và sau đó là mộtkhối các dòng lệnh nằm giữa các từ khóa Begin và End. Dấu chấm phẩy dùng để tách các dòng lệnh khác nhau, và dấu chấm để báo hiệu kết thúc chương trình (hay đơn vị). Trong mã nguồn Pascal, không phân biệt chữ viết in.
1. program ChaoThegioi(output);
2.
3.
4.
5. begin
6.
7. writeln('Chao The gioi!');
8.
9. end.
10.
Pascal, nguyên thể đơn thuần là ngôn ngữ lập trình thủ tục với một loạt các từ khóa chuẩn if, while, for, và các thành phần khác.
Ngôn ngữ Mọi chương trình Pascal bắt đầu bằng từ khóa Program, cùng với một danh sách tùy chọn các phần mô tả các tập tin ngoài và sau đó là mộtkhối các dòng lệnh nằm giữa các từ khóa Begin và End. Dấu chấm phẩy dùng để tách các dòng lệnh khác nhau, và dấu chấm để báo hiệu kết thúc chương trình (hay đơn vị). Trong mã nguồn Pascal, không phân biệt chữ viết in. program ChaoThegioi(output); begin writeln('Chao The gioi!'); end. Pascal, nguyên thể đơn thuần là ngôn ngữ lập trình thủ tục với một loạt các từ khóa chuẩn if, while, for, và các thành phần khác. Pascal cũng là một ngôn ngữ lập trình có cấu trúc, nghĩa là chuỗi điều khiển được cấu trúc thành các câu lệnh chuẩn, hạn chế tối đa các lệnhgo to chuyển hướng lung tung trong cấu trúc chương trình. while a b do WriteLn('Xin cho*`'); if a > b then writeln('Tho?a man~ ddie^`u kie^.n') else writeln('Kho^ng tho?a man~ ddie^`u kie^.n'); for i := 1 to 10 do writeln('La(.p: ', i:1); repeat a := a + 1 until a = 10; Pascal cấu trúc các chương trình thành các thủ tục và hàm. program mine(output); procedure print(var i: integer); function next(i: integer): integer; begin next := i + 1 end; begin writeln('To^?ng la`: ', i); i := next(i) end; begin i := 1; while i <= 10 do print(i) end. Các thủ tục và hàm có thể lồng vào nhau theo nhiều cấp, và từ program là khối cấu trúc ngoài cùng nhất. Mỗi khối có thể có khai báo các nhãn goto, hằng, kiểu, biến, cùng với các thủ tục và hàm riêng, tất cả phải tuân theo trình tự đó. Pascal có các kiểu đơn như integer (số nguyên), character (ký tự), boolean (logic), v.v. và enumerations (liệt kê), là kiểu mới được đưa vào Pascal sau này. program myprog; var a: integer; b: char; c: boolean; d: (mot, hai, ba, bon, nam); Có thể tạo ra bất kỳ "kiểu con" nào từ các kiểu trên. var x: 1..10; y: 'a'..'z'; z: hai..bon; Các kiểu có thể được tạo ra từ các kiểu khác bằng cách khai báo kiểu. program myotherprog; type x = integer; y = x; ... Hơn thế nữa, các kiểu phức có thể được xây dựng từ các kiểu đơn: type a = array [1..10] of integer; b = record a: integer; b: char end; c = file of a; Các chuỗi ký tự là các dãy kết hợp bắt đầu bằng một chỉ số nguyên là 1. Pascal cũng hỗ trợ dùng con trỏ: type a = ^b; b = record a: integer; b: char; c: a end; var pb : a Ở đâ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: new(pb); pb^.a := 10; pb^.b := 'A'; pb^.c := nil; ... Danh sách liên kết cũng có thể được tạo ra bằng cách cho một trường kiểu con trỏ (c) vào trong record. Các câu lệnh [sửa]SYSTEM 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 [sửa]Unit CRT clrscr : xoá toàn bộ màn hình. textcolor() : in chữ màu. textbackground() : tô màu cho màn hình. sound() : tạo âm thanh. delay() : làm trễ. nosound : tắt âm thanh. windows(x1,y1,x2,y2) : thay đổi cửa sổ màn hình. highvideo : tăng độ sáng màn hình. lowvideo : giảm độ sáng màn hình. normvideo : màn hình trở lại chế độ sáng bình thường. gotoxy(x,y) : đưa con trỏ đến vị trí x,y trên màn hình. deline : xoá một dòng đang chứa con trỏ. clreol : xoá các ký tự từ vị trí con trỏ đến cuối mà không di chuyển vị trí con trỏ. insline : chèn thêm một dòng vào vị trí của con trỏ hiện hành. exit : thoát khỏi chương trình. textmode(co40) : tạo kiểu chữ lớn. randomize : khởi tạo chế độ ngẫu nhiên. 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. halt : Ngưng thực hiện chương trình và trở về hệ điều hành. Abs(n) : Giá trị tuyệt đối. Arctan(x) : cho kết quả là hàm Arctan(x). Cos(x) : cho kết quả là cos(x). Exp(x) : hàm số mũ cơ số tự nhiên ex. Frac(x) : cho kết quả là phần thập phân của số x. int(x) : cho kết quả là phần nguyên của số thập phân x. ln(x) : Hàm logarit cơ số tự nhiên. sin(x) : cho kết quả là sin(x), với x tính bằng Radian. Sqr(x) : bình phương của số x. Sqrt(x) : cho kết quả là căn bậc hai của x. pred(x) : cho kết quả là số nguyên đứng trước số nguyên x. Suuc(x) : cho kết quả là số nguyên đứng sau số nguyên x. odd(x) : cho kết quả là true nếu x số lẻ, ngược lại là false. chr(x) : trả về một kí tự có vị trí là x trong bảng mã ASCII. Ord(x) : trả về một số thứ tự của kí tự x. round(n) : Làm tròn số thực n. Random(n) : cho một số ngẫu nhiên trong phạm vi n. upcase(n) : đổi kí tự chữ thường sang chữ hoa. assign(f,'.') : tạo file. rewrite(f) : ghi file lên đĩa. append(f) : chèn thêm dữ liệu cho file. close(f) : tắt file. erase(f) : xóa. rename() : chết. length(s) : cho kết quả là chiều dài của xâu. copy(s,a,b) : copy xâu. insert(,s,a) : chèn thêm cho xâu. delete(s:string,a:integer,b:integer) : xóa b ký tự từ vị trí a trong xâu s [sửa]Unit GRAPH initgraph(a,b,) : khởi tạo chế độ đồ hoạ. closegraph; : tắt chế độ đồ hoạ. setcolor(x) : chọn màu. outtext() : in ra màn hình tại góc trên bên trái. outtextxy(x,y,); : in ra màn hình tại 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): vẽ hình elip. floodfill(a,b,n) : tô màu cho hình. getfillpattern(x) : tạo biến để tô. setfillpattern(x,a) : chọn màu để tô. cleardevice; : xoá toàn bộ màn hình. settextstyle(n,a,b) : chọn kiểu chữ. bar(a,b,c,d) : vẽ thanh. bar3d(a,b,c,d,n,h) : vẽ hộp. arc(a,b,c,d,e) : vẽ cung tròn. setbkcolor(n) : tô màu nền. putpixel(x,y,n) : vẽ điểm. setfillstyle(a,b) : tạo nền cho màn hình. setlinestyle(a,b,c) : chọn kiểu đoạn thẳng. getmem(p,1) : chuyển biến để nhớ dữ liệu. getimage(x1,y1,x2,y2,p): nhớ các hình vẽ trên vùng cửa sổ xác định. putimage(x,y,p,n) : in ra màn hình các hình vừa nhớ. ... [sửa]Unit DOS 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. ... [sửa]Đọc thêm Kathleen Jensen and Niklaus Wirth: PASCAL - User Manual and Report. Springer-Verlag, 1974, 1985, 1991, ISBN 0-387-97649-3 and ISBN 0-540-97649-3 [1] Niklaus Wirth: The Programming Language Pascal. Acta Informatica, 1, (Jun 1971) 35-63 N. Wirth, M. Broy, ed, and E. Denert, ed: Pascal and its Successors in Software Pioneers: Contributions to Software Engineering.Springer-Verlag, 2002, ISBN 3-540-43081-4 also in N. Wirth, and A. I. Wasserman, ed: Programming Language Design. IEEE Computer Society Press, 1980 N. Wirth: Recollections about the Development of Pascal. ACM SIGPLAN Notices, Volume 28, No 3, March 1993. ISO/IEC 10206: Extended Pascal. [2] ISO/IEC 7185: Programming Languages - PASCAL. [3] Brian W. Kernighan, Why Pascal is Not My Favorite Programming Language Bill Catambay, The Pascal Programming Language How To Code: Pascal [sửa]Xem thêm Wikibooks có thông tin Anh ngữ về: Programming:Pascal ALGOL C Ada: hậu duệ Pascal của Bộ Quốc phòng Mỹ, thiết kế để trở nên đa năng và mạnh mẽ hơn. Delphi Modula: hậu duệ Pascal của Wirth Oberon: hậu duệ Module hướng đối tượng của Wirth Object Pascal Pascal và C: so sánh giữa Pascal và C. IP Pascal [sửa]
File đính kèm:
- Ngôn ngữ lap trinh pascal.doc