Tải bản đầy đủ (.ppt) (58 trang)

Tài liệu Pascal.ppt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (943.15 KB, 58 trang )


Pascal dựa trên ngôn ngữ lập trình Algol và được đặt tên theo nhà toán học và triết học
Blaise Pascal. Wirth đồng thời cũng xây dựng Modula-2 và Oberon, là những ngôn ngữ
tương đồng với Pascal. Oberon cũng hỗ trợ kiểu lập trình hướng đối tượng
Ban đầu, Pascal là một ngôn ngữ được hướng để dùng trong giảng dạy về lập trình có cấu
trúc, và nhiều thế hệ sinh viên đã "vào đời" thông qua việc học Pascal như ngôn ngữ vỡ lòng
trong các chương trình học đại cương. Nhiều biến thể của Pascal
ngày nay vẫn còn được sử dụng khá phổ biến trong giảng dạy. Mặc dù vậy, nếu nghĩ rằng
Pascal là ngộ ngữ chỉ dành để giảng dạy, thì sẽ sai lầm. Hãy nghe chính ý kiến của Wirrth vè
vấn đề bày (1984)”Có người cho rằng Pascal được thiết kế như một ngôn ngữ để giảng dạy.
Mặc dù điều này là đúng, nhưng việc sử dụng nó để giảng dạy không phải là mục đích duy
nhất. Thực tế, tôi không tin vào sự thành công của việc áp dụng trong khi học các phương
pháp và công cụ mà không thể sử dụng để giải quyết các bài toán thực tế. Theo tiêu chuẩn
ngày pascal có những yếu điểm rỏ rằng khi lập trình các hệ thống lớn, nhưng 15 năm trước
đó là thảo hiệp hợp lí giữa cái mong muốn và hiệu quả ”
Pascal là một ngôn ngữ có định kiểu mạnh mẽ. Điều có nghĩa là mọi biến và hằng số của
một kiểu dử liệu không thể tự đem trộn lẩn với các biến và hằng của một kiêủ dữ liệu khác.
Việc định kiểu chặt chẽ như vậy buộc người lập trình luôn luôn phải có các biểu thức tương
thích nhau về kiểu dữ liệu.Phần lớn hệ điều hành Macintosh được viết bằng Pascal. Hệ sắp
chữ TEX phổ biến được viết bằng một
2
2

ngôn ngữ tên là Web là ngôn ngữ mà Donald Knuth đã vay mượn khá nhiều yếu tố từ
Pascal.
Ngôn ngữ Pascal được dùng hiện nay có nhiều điểm khác biệt với chuẩn Pascal nguyên
thủy của Giáo sư Wirth. Tùy theo quốc gia hoặc công ty đã phát triển cho ra đời các
chương trình biên dịch ngôn ngữ Pascal như:
· ISO PASCAL (International Standards Organization) của Châu Âu
· ANSI PASCAL (American National Standards Institute) của Mỹ
· TURBO PASCAL của hãng BORLAND (Mỹ)


· IBM PASCAL của hãng Microsoft (Mỹ)
P
P
ascal có tiếp tục tồn tại?!
ascal có tiếp tục tồn tại?!
Để kết luận, xin trích dẫn lời của Dennis Ritch tác giả của ngôn ngữ C : “ Pascal là một
ngôn ngữ thanh lịch. Nó vẫn tiếp tục tồn tại.. Nó đã khỡi nguồn cho không ít ngôn ngữ đàn
em và có ảnh hưởng sâu sắc đến việc thiết kế các ngôn ngữ lập trình mới chung”.
Ðến nay, ngôn ngữ Pascal đã phát triển đến phiên bản Turbo Pascal. Các diễn giải và
ví dụ trong giáo trình này chủ yếu sử dụng chương trình Turbo Pascal 5.5 - 7.0, hiện đang
được sử dụng rộng rãi ở Việt Nam vì các ưu điểm của nó : tốc độ dich nhanh, chương trình
dịch pascal được viết rất gọn , các phần mở rộng của nó so với pascal chuẩn đã đáp ứng
được nhiều yêu cầu của con người sử dụng như quan thiệp sâu vào mấy và không ngừng
cải tiến , nâng cao. Vì vậy, Turbo Pascal sản phẩm nổi tiếng thế giới của hảng BORLAND
(Mỹ)
3
3

MỘT SỐ VÍ DỤ VỀ PASCAL
MỘT SỐ VÍ DỤ VỀ PASCAL


Trình biên dịch P4
Trình biên dịch P4 là cơ sở cho rất nhiều trình biên dịch Pascal được viết
bằng Pascal sau đó, bao gồm cả UCSD p-System
4
4




Free Pascal
Free Pascal được viết bằng Pascal (sao cho nó có thể biên dịch được chính nó), đượcphát
triển với mục tiêu là cung cấp một trình biên dịch mạnh mẽ vàthuận tiện, có khả năng biên
dịch cả các ứng dụng cũ lẫn phát triển ứngdụng mới. Được phân phối miễn phí dưới giấy
phép GNU. Có khả năng trộn lẫn cả mã của Turbo Pascal và mã Delphi, hỗ trợ nhiều nền
tảng lẫn nhiều hệ điều hành.
5
5



Turbo Pascal
Turbo Pascal là trình biên dịch Pascal thống trị cho PC vào thập niên 1980 và đầu thập
niên 1990 .Nó phổ biến vì các mở rộng mạnh mẽ và đặc biệt là thời gian biên dịchcực kì
ngắn. Trong thời điểm hiện tại, các phiên bản cũ của TurboPascal (tới 5.5) có thể tải xuống
miễn phí tại trang web của Borland(tuy nhiên vẫn cần phải đăng ký).
turbo_pascal_60
6
6


Chrome
Chrome là thế hệ Object Pascal tiếp theo cho nền tảng .NET và nền tảng Mono, được
RemObjects Software cung cấp
chrome_on_white_small
7
7




GNU Pascal Compiler (GPC)
GNU Pascal Compiler (GPC) là trình biên dịch Pascal của Bộ biên dịch GNU (GCC). Trình
biên dịch này được viết bằng C, thư viện chạy hầu hết viết bằng Pascal. Được phân phối miễn
phí dưới giấy phép GNU, có thể chạy trên rất nhiều nền tảng và hệ điều hành khác nhau. Nó còn
hỗ trợ chuẩnngôn ngữ ANSI/ISO và tương thích với ngôn ngữ Borland/Turbo Pascal.Việc hỗ trợ
cho Borland Delphi và 1 vài biến thể khác vẫn còn khá hạn chế.
GNU Pascal Compiler
8
8



Delphi
Delphi là sản phẩm RAD (Rapid Application Development - phát triển ứng dụng tức
thời) của Borland. Nó sử dụng Delphi,tiền thân từ Pascal, để tạo các chương trình ứng
dụng cho nền Windows.Phiên bản mới nhất còn hỗ trợ cả việc biên dịch cho nền
Microsoft.net.
Delphi 7
9
9



Kylix
Kylix là một nhánh sản phẩm khác kế thừa từ Pascal của Borland, tiền thân từ Delphi, hỗ
trợ hệ điều hành Linux và một thư viện đối tượng đã được bổ sung. Trình biên dịch và môi
trường phát triển (IDE)có thể được cung cấp cho việc sử dụng phi lợi nhuận. Trình biên
dịch(không bao gồm thư viện hay IDE) được cho là trở thành phần mềm Mã nguồn mở trong
thời gian tới.
KylixIDE

10
10




Virtual Pascal
Virtual Pascal được Vitaly Miryanov sáng tạo như một trình biên dịch dành cho
OS/2tương thích với cú pháp của Borland Pascal. Sau đó nó được fPrint pháttriển thành
sản phẩm thương mại, hỗ trợ thêm Win32, và đến năm 2000 trởthành phần mềm miễn
phí. Ngày nay nó có thể biên dịch cho Win32, OS/2và cả Linux, và gần như hoàn toàn
tương thích với Borland Pascal và Delphi.
11
11


IP Pascal
IP Pascal ban đầu là ngôn ngữ Pascal dành cho Z80/CP/M, rồi được chuyển sang vàviết
lại cho Intel 80386/PC. IP Pascal có một thư viện khả chuyển (portability library). Ví dụ,
một chương trình hiển thị văn bản viết bằng Pascal chuẩn từ thập niên 1970 có thể được
biên dịch lại để làm việc trong một cửa sổ và thậm chí cócả việc tạo dựng đồ họa. IP
Pascal hỗ trợ chuẩn ISO 7185 và nâng cấpngôn ngữ một cách logic. Ví dụ, Pascal chuẩn
hỗ trợ các xâu ký tự được"căn lề phải" và sau đó còn hỗ trợ xâu ký tự động. Mảng tĩnh của
Pascalchuẩn được nâng thành mảng động nhưng vẫn hoàn toàn tương thích ngượcvới
mảng tĩnh, v.v…
12
12

Execute IP Pascal
services

13
13



Pocket Studio
Pocket Studio là một tập nhỏ các trình biên dịch Pascal và RAD hướng tới Palm/MC68xxx
với một số mở rộng hỗ trợ giao tiếp với API (Application
Programming Interface - giao tiếp lập trình ứng dụng) của hệ điều hành Palm OS.
DVD Pocket Studio 3.5
14



Lazarus
Lazarus là môi trường phát triển tức thời trực quan đa nền tảng. Lazarus sử dụng trình biên
dịch Free pascal
Lazarus
IDE 9.19
15
15



Super Pascal
Super Pascal là một biến thể của Pascal, bổ sung nhãn không có số, trả lại biểu thức
hay mệnh đề là tên của kiểu dữ liệu. Super Pascal là một biến thể của Pascal, bổ sung
nhãn không có số, trả lại biểu thức hay mệnh đề là tên của kiểu dữ liệu
Super Pascal 128
16

16

II. CẤU TRÚC CƠ BẢN CỦA CHƯƠNG TRÌNH PASCAL
1. Cấu trúc chung :
Một chương trình máy tính là một dãy lệnh, một dãy chỉ thị hướng dẩn máy tính thực
hiện một nhiệm vụ, một xữ lí nào đó trên một tập hợp các dữ liệu, số liệu. Cấu trúc tổng
quát một chương trình Pascal gồm ba phần :
PROGRAM Tên_Chương_Trình; ® (*Tiêu đề*)
USES ... ® (*Phần khai báo: đơn vị chương trình
LABEL ... nhãn ...
CONST ... hằng ...
TYPE ... kiểu ...
VAR ... biến ...*)
PROCEDURE ... ® (*Phần mô tả thủ tục/ch. trình con
FUNCTION ... hàm ...*).
BEGIN ® (*Thân chương trình chính*)
... (*Các câu lệnh chương trình*)
END. ® (*Kết thúc chương trình*)
b. Phần khai báo dữ liệu hằng, biến (Const, Var), mô tả kiểu dữ liệu ( Type), khai báo
chương trình con ( Procedure, Function)
c. Phần thân chương trình chứa các lệnh để máy tính thực hiện
a. Phần tiêu đề của chương trình (phần tên)
2. Sơ đồ cấu trúc chương trình pascal
17
17


Œ Phần tiêu đề:Phần này bắt đầu bằng từ khóa Program rồi tiếp đến là tên của chương
trình và chấm dứt bằng dấu chấm phẩy đặt theo đúng qui cách của danh hiệu tự đặt ).
Phần tiêu đề có hay không cũng được


Phần khai báo dữ liệu:Trước khi sử dụng biến nào phải khai báo biến đó, nghĩa là xác
định rõ xem biến đó thuộc kiểu dữ liệu nào. Có thể có một số hoặc tất cả các khai báo dữ
liệu sau:
CONST : khai báo hằng
TYPE : định nghĩa kiểu dữ liệu mới
VAR : khai báo các biến

Phần khai báo chương trình con: Phần này mô tả một nhóm lệnh được đặt tên chung là
một chương trình con để khi thân chương trình chính gọi đến thì cả nhóm lệnh đó được
thi hành. (có thể có hoặc không tùy theo nhu cầu )
Phần thân chương trình là phần quan trọng nhất và bắt buộc phải có, phần này luôn nằm
giữa 2 từ khoá là BEGIN và END. Ở giữa là lệnh mà các chương trình chính cần thực
hiện. Sau từ khóa END là dấu chấm (.) để báo kết thúc chương trình.
Dấu chấm phẩy dùng để ngăn cách các câu lệnh của Pascal và không thể thiếu được.
Lời chú thích: Lời chú thích dùng để chú giải cho người sử dụng chương trình nhớ nhằm
trao đổi thông tin giữa người và người, máy tính sẽ không để ý đến lời chú thích này. Lời
chú thích nằm giữa ký hiệu: { } hoặc (* *)
18
18

PROGRAM Hello; { Dòng tiêu đề }
USES Crt; { Lời gọi sử dụng các đơn vị chương trình }
VAR Name : string; { Khai báo biến }
PROCEDURE Input; { Có thể có nhiều Procedure và Function } Begin
ClrScr; { Lệnh xóa màn hình }
Write( ‘Hello ! What is your name ?... ‘);Readln(Name);
End;
BEGIN { Thân chương trình chính }
Input;

Writeln ( ‘Welcome to you, ‘, Name) ;
Writeln ( ‘Today, we study PASCAL PROGRAMMING ... ‘);
Readln; END.
Ví dụ :
Ví dụ : Giả sử ta muốn viết ra màn hình các dòng chữ giới thiệu. Sau đây là
chương trình viết bằng TP để thực hiện việc đó
19
19

1. Kiểu logic Bun ( Logic Boolean)
1. Kiểu logic Bun ( Logic Boolean)
- Từ khóa: BOOLEAN
- Miền giá trị: (TRUE, FALSE).
- Trong Pascal, khi so sánh các giá trị boolean các biến, hằng được khai báo kiểu dữ
liệu đúng sai sẽ chỉ nhận 1 trong 2 giá trị True (đúng) và False (sai)
Kiểu dữ liệu đúng sai có từ khóa để khai báo là Boolean. Các phép toán : phép so sánh (=,
<, >) và các phép toán logic: AND, OR, XOR, NOT có thể áp dụng cho các giá trị kiểu
Boolean và cho ta kết quả cũng là kiểu Boolean. Quy tắc của các phep stoán cos thể được
tóm tắt dưới dạng “ bảng sự thật ”(Truth table)

Phép AND : ( phép “và ” logic)

Phép OR : ( phép “hoặc” logic)

Phép NOT : ( phép “đảo ” hay “ phủ định” logic)

Phép XOR : ( phép “hoặc triệt tiêu ” logic)
Ví dụ :
Ví dụ : Giả sử A và B là hai giá trị kiểu Boolean.
III. CÁC KIỂU DỮ LIỆU ĐƠN GIẢN CHUẨN

A B A AND B A OR B A XOR B NOT A
TRUE TRUE TRUE TRUE FALSE FALSE
TRUE FALSE FALSE TRUE TRUE FALSE
FALSE TRUE FALSE TRUE TRUE TRUE
FALSE FALSE FALSE FALSE FALSE TRUE
X X NOT Y
FALSE TRUE
TRUE FALSE
Bảng sự thật của các phép toán logic Boolean
20
20

2. Kiểu số nguyên (Int
2. Kiểu số nguyên (Int
eger
eger
)
)
2.1.
Các kiểu số nguyên:
Các kiểu số nguyên:
Tên kiểu Phạm vi Dung lượng
Shortint
-128 ⇔ 127
1 byte
Byte
0 ⇔ 255
1 byte
Integer
-32768 ⇔ 32767

2 byte
Word
0 ⇔ 65535
2 byte
LongInt
-2147483648 ⇔ 2147483647
4 byte
a. Byte: Chứa các giá trị là số nguyên từ 0 đến 255, và chiếm 1 byte bộ nhớ.
b. Integer: Các số nguyên từ -32768 đến 32767. Chiếm 2 bytes bộ nhớ
c. Shortint: Số nguyên từ -128 đến 127 (1 byte)
d. Word: 0 đến 65535. (2 bytes)
e. Longint: -2.147.483.648 đến 2.147.483.647. (4 bytes)
-
Từ khoá : INTEGER
-
Một giá trị kiểu số nguyên là một phần tử của tập các số nguyên mà ta có thể biểu diển được
trên máy, ngĩa nó là một ập nhỏ của không gian các số nguyên chứ không phải tất cả mọi số
nguyên đều có thể xử lý trên máy tính đực, Thông thường nhất, các số nguyên được biểu diển
bằng hai byte (16 bit) nên phạm vi từ -32768 đến 32767
21

A B A AND B A OR B A XOR B NOT A
1 1 1 1 0 0
1 0 0 1 1 0
0 1 0 1 1 1
0 0 0 0 0 1
SHL (phép dịch trái): a SHL n a × 2n⇔ •
SHR (phép dịch phải): a SHR n a DIV 2n⇔ •

Tất cả các kiểu dữ liệu trên đều là kiểu dữ liệu số nguyên, tức không thể dùng để chứa

các giá trị có phần thập phân.
2.2. Các phép toán trên kiểu số nguyên
2.2. Các phép toán trên kiểu số nguyên
2.2.1.
Các phép toán số học:
Các phép toán số học:
+, -, *, / (phép chia cho ra kết quả là số thực).
Phép chia lấy phần nguyên: DIV (Ví dụ : 34 DIV 5 = 6).
Phép chia lấy số dư: MOD (Ví dụ: 34 MOD 5 = 4).
2.2.2.
Các phép toán xử lý bit:
Các phép toán xử lý bit:
Trên các kiểu ShortInt, Integer, Byte, Word có các phép toán:
NOT, AND, OR, XOR.•

Tùy thuộc vào các yêu cầu, mà các bạn sử dụng kiểu dữ liệu thích hợp. Chọn kiểu dử liệu
nhỏ sẽ tiết kiệm bộ nhớ, nhưng nếu biến số chứa các giá trị vượt qua kiểu dữ liệu đó sẽ làm
cho kết quả bài toán bị sai lệch!
22
22

Ví dụ:
Ví dụ:
Đề yêu cầu nhập vào 2 số nguyên có giá trị <1000, sau đó tính tổng 2 số đó! Lúc
này, ta chắc chắn không thể dùng kiểu byte hay shortint cho 2 số đó, và cho
tổng! Mà ta sẽ dùng kiểu integer hoặc word (đều chiếm 2 bytes) Tất cả các kiểu
dữ liệu trên đều là kiểu dữ liệu số nguyên, tức không thể dùng để chứa các giá
trị có phần thập phân. Tùy thuộc vào các yêu cầu, mà các bạn sử dụng KDL
thích hợp. Chọn kiểu dữ liệu nhỏ sẽ tiết kiệm bộ nhớ, nhưng nếu biến số chứa
các giá trị vượt qua kiểu dữ liệu đó sẽ làm cho kết quả bài toán bị sai lệch!

Ví dụ :
Ví dụ :
+234, - 32767, -1, 23, 123 ….
MaxInt là têngiá trị cực đại cho phép của kiểu nguyên, tức là MaxInt = + 32767
23
23

3. Kiểu số thực (real)
3.1. D
3.1. D
ạng thập phân
ạng thập phân
Đây là kiểu dữ liệu có chứa các số thập phân, tức là các số có dạng xxx.yyyy
a. Single: Chứa các giá trị từ 1.5E -45 đến 3.4 E38 (1,5 x 10^-45 đến 3,4 x
10^38 ). (4 bytes)
Trong Pascal, biểu diễn số thực mặc định dạng xx.yy E zz, tức là xx.yy x 10 mũ
zz
b. Real: 2.9E -39 đến 1.7E 38 (2,9 x10 ^ - 39 đến 1,7 x 10 38 ) (6 bytes).
c. Double: 5.0E -324 đến 1.7E 308 (5,0 x10 ^ - 324 đến 1,7 x 10 ^ 308 ) (8
bytes).
Tên kiểu Phạm vi Dung lượng
Single 1.5×10-45 → 3.4×10+38 4 byte
Real 2.9×10-39 → 1.7×10+38 6 byte
Double 5.0×10-324 → 1.7×10+308 8 byte
Extended 3.4×10-4932 → 1.1×10+4932 10 byte
24
24

3.2. Các phép toán trên kiểu số thực:
3.2. Các phép toán trên kiểu số thực: +, -, *, /

Chú ý: Trên kiểu số thực không tồn tại các phép toán DIV và MOD.
3.3. Các hàm số học thường sử dụng cho kiểu số nguyên và số thực:
3.3. Các hàm số học thường sử dụng cho kiểu số nguyên và số thực:
SQR(x): Trả về x2
SQRT(x): Trả về căn bậc hai của x (x≥0)
ABS(x): Trả về |x|
SIN(x): Trả về sin(x) theo radian
COS(x): Trả về cos(x) theo radian
ARCTAN(x): Trả về arctang(x) theo radian
LN(x): Trả về ln(x)
EXP(x): Trả về ex
TRUNC(x): Trả về số nguyên gần với x nhất nhưng bé hơn x.
INT(x): Trả về phần nguyên của x
FRAC(x): Trả về phần thập phân của x
ROUND(x): Làm tròn số nguyên x
PRED(n): Trả về giá trị đứng trước n
SUCC(n): Trả về giá trị đứng sau n
ODD(n): Cho giá trị TRUE nếu n là số lẻ.
INC(n): Tăng n thêm 1 đơn vị (n:=n+1).
DEC(n): Giảm n đi 1 đơn vị (n:=n-1).
25
25

4. Kiểu ký tự (character)
4. Kiểu ký tự (character)
- Từ khoá: CHAR.
- Kích thước: 1 byte.
- Để biểu diễn một ký tự, ta có thể sử dụng một trong số các cách sau đây:
+ Đặt ký tự trong cặp dấu nháy đơn. Ví dụ 'A',• '0'.
+ Dùng hàm CHR(n) (trong đó n là mã ASCII của• ký tự cần biểu diễn).

Ví dụ: CHR(65) biễu diễn ký tự 'A'.
- Dùng ký hiệu #n (trong đó n là mã ASCII của• ký tự cần biểu diễn).
Ví dụ #65.
- Các phép toán: =, >, >=, <, <=,<>.
- Kiểu ký tự để biểu diễn các ký tự nằm trong bảng mả ASCII (American
Standard Code for Information Interchange). trong đó có chứa các số 0..9, các ký tự
thường a..z và ký tự hoa A..Z, và một số ký tự đặc biệt khác!
Bảng mã ASCII gồm 256 ký từ có mã từ 0 đến 255
Mỗi ký tự tươn gứng với 1 mã số!
Ví dụ, ký tự A sẽ tương ứng với mã 64, space (khoảng trắng) tương ứng với 32!
- Kiểu ký tự ngoài việc dùng để chứa các ký tự xuất ra màn hình, còn dùng để điều khiển
việc nhận lệnh từ bàn phím. Để thể hiện tất cả các ký tự trong bảng mã ASCII, các bạn
dùng chương trình sau :
Program Bang_ma_ASCII;Uses CRT; Var I : Integer; Begin
26
26

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×