1. Trang chủ
  2. » Giáo án - Bài giảng

Tài liệu Pascal.ppt

58 561 2
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tài liệu Pascal.ppt
Trường học Đại học Bách Khoa Hà Nội
Chuyên ngành Khoa học máy tính
Thể loại Tài liệu hướng dẫn
Thành phố Hà Nội
Định dạng
Số trang 58
Dung lượng 1,45 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Oberon cũng hỗ trợ kiểu lập trình hướng đối tượngBan đầ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

Trang 1

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

Trang 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ỹ)

Pascal 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ỹ)

Trang 3

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

bằng Pascal sau đó, bao gồm cả UCSD p-System

Trang 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

Trang 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ý)

Trang 6

Chrome là thế hệ Object Pascal tiếp theo cho nền tảng NET và nền tảng Mono, được Chrome

RemObjects Software cung cấp

Trang 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ế

Trang 8

DelphiDelphi 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

Trang 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

Trang 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

Trang 11

IP Pascal ban đầu là ngôn ngữ Pascal dành cho Z80/CP/M, rồi được chuyển sang IP Pascal

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…

Trang 12

Execute IP Pascal services

Trang 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

Trang 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

Trang 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

Trang 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

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

Trang 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 (* *)

Trang 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

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 đó

Trang 19

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

FALSE FALSE FALSE FALSE FALSE TRUE

X X NOT Y FALSE TRUE TRUE FALSE

Trang 20

2 Kiểu số nguyên (Integer)

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)

Trang 21

A B A AND B A OR B A XOR B NOT A

+, -, *, / (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:

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

Trang 22

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ụ :

+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

Trang 23

3 Kiểu số thực (real)

3.1 Dạ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

Trang 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:

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)

Trang 25

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

Trang 26

* Các hàm trên kiểu ký tự:

 UPCASE(ch): Trả về ký tự in hoa tương ứng với ký tự ch

Ví dụ: UPCASE('a') = 'A'

 ORD(ch): Trả về số thứ tự bảng mã ASCII của ký tự ch Ví dụ ORD('A')=65

 CHR(n): Trả về ký tự tương ứng trong bảng mã ASCII có số thứ tự là n

Ví dụ: CHR(65)='A'

 PRED(ch): cho ký tự đứng trước ký tự ch Ví dụ: PRED('B')='A'

 SUCC(ch): cho ký tự đứng sau ký tự ch Ví dụ: SUCC('A')='B'

5 Kiểu chuỗi (String)

Kiểu string là 1 KDL gồm tối đa 255 ký tự liên tiếp nhau

Thích hợp để dùng các biến chứa tên, địa chỉ, email

Có 2 cách khai báo KDL string

a Mặc định, tức biến sẽ có độ dài tối đa 255 ký tự

Ta khai báo: Var chuoi1: string;

b Giới hạn:

Ta giới hạn chiều dài của chuỗi bằng 1 con số cụ thể

Var: chuoi2: string[độ dài];

Trong đó độ dài là 1 số từ 0 đến 255, khi khai báo theo kiểu này, thì biến sẽ là 1 chuỗi

có số ký tự tối đa là độ dài

Ví dụ: Var hoten: string[20];

lop: string[4];

Mã: string[1];

Trang 27

IV CÁC CÂU LỆNH VÀO RA

Câu lệnh đơn giản

+ Phép gán :=

+ Lời gọi Procedure

+ Lệnh phẩy GOTO

 Câu lệnh có cấu trúc

+ Câu lệnh ghép (lệnh hợp thành) BEGIN …END

+Lệnh lựa chọn if <biểu thức logic>…… then Statement… else statement case……… Of………

+ Các vòng lặp FOR…TO…DO…REPEAT…UNTIL…WHILE…DO

+ WITH

C âu lệnh đơn giản : âu lệnh đơn giản :

- write; hay writeln; {Xuất dòng chữ ra màn hình}

- read; hay readln; {Nhập giá trị của biến từ bàn phím}

(* ln : có nghĩa là con nháy sẽ xuống hàng sau khi thực hiện xong nhiệm vụ nhập hay xuất dữ liệu - và phải nhấn enter để thực hiện lệnh đó*)

for biến:=1 to… do

Trang 28

statement;

until <biều thức điều kiện>;

 Sau mỗi câu lệnh, phải có dấu chấm phẩy - ';‘

 Nếu muốn chú thích trong lúc lập trình để dễ dàng nhớ tới trong 1 lần đọc source, hãy

để nó trong dấu '{' và '}' hay '(*' và '*)‘

 Nếu muốn xuất dữ liệu cuối cùng ra màn hình, phải có 1 câu lệnh read hay readln để chờ bạn bấm enter mới thoát ra ngoài ; hay bấm Alt+F5 để xem tất cả những gì vừa hiện trên màn hình trong lần chạy chương trình gần nhất

 Nếu muốn xóa trắng màn hình trước khi nhập hay xuất dữ liệu, bạn gõ lệnh clrscr; {Clear Screen} với thư viện sử dụng là crt; {khai báo trong phần uses}

 Các trang trong thể loại “Lệnh Pascal”

14 trang sau nằm trong thể loại lệnh pascal, trên tổng số 14 trang

Trang 29

Biểu thức điều kiện

Công việc 1 Thoát ĐúngSai

Công việc 2 Giải thích:

Công việc 1, công việc 2 được thể hiện là 1 câu lệnh hay 1 khối lệnh

Đầu tiên Biểu thức điều kiện được kiểm tra trước

Nếu điều kiện đúng thì thực hiện công việc 1

Nếu điều kiện sai thì thực hiện công việc 2

Các lệnh phía sau công việc 2 không phụ thuộc vào điều kiện

V CÂU LỆNH RẼ NHÁNH, CẶP VÀ GHÉP

Ngày đăng: 23/11/2013, 20:11

HÌNH ẢNH LIÊN QUAN

Bảng sự thật của các phép toán logic Boolean 20 20 - Tài liệu Pascal.ppt
Bảng s ự thật của các phép toán logic Boolean 20 20 (Trang 19)

TỪ KHÓA LIÊN QUAN

w