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

Giáo trình dạy học Ngôn ngữ lập trình Pascal

47 1,3K 20
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

Định dạng
Số trang 47
Dung lượng 366,5 KB

Nội dung

So với nhiều sản phẩm Pascal của nhiều tổ chức và hãng khác nhau xuấtbản, Turbo Pascal đã tỏ ra có nhiều u điểm nhất và hiện nay đợc xem nh là mộttrong những ngôn ngữ lập trình cấp cao p

Trang 1

ngôn ngữ lập trình pascal Chơng 5 Giới thiệu chung về ngôn ngữ Pascal

* Ngữ pháp, ngữ nghĩa đơn giản và có tính logic.

* Cấu trúc chơng trình rõ ràng, dễ hiểu (thể hiện t duy lập trình cấu trúc).

* Dễ sửa chữa và cải tiến.

Trong quá trình phát triển, Pascal đã phát huy đợc u điểm của mình và tỏ rahơn hẳn nhiều ngôn ngữ cấp cao khác Pascal đã trở thành một ngôn ngữ mạnh

đợc ứng dụng trong nhiều lĩnh vực khác nhau Các tổ chức và công ty chuyên

về máy tính dựa trên Pascal chuẩn đã phát triển thêm và tạo ra các ch ơng trìnhdịch ngôn ngữ Pascal với nhiều phần thêm bớt khác nhau

Ví dụ :

- TURBO PASCAL của hãng Borland (Mỹ).

- QUICK PASCAL của hãng Microsoft

- UCSD PASCAL (University of California at San Diego).

- ANSI PASCAL (American National Standard Institut).

So với nhiều sản phẩm Pascal của nhiều tổ chức và hãng khác nhau xuấtbản, Turbo Pascal đã tỏ ra có nhiều u điểm nhất và hiện nay đợc xem nh là mộttrong những ngôn ngữ lập trình cấp cao phổ biến nhất trên thế giới đợc sử dụngtrong lĩnh vực giảng dạy và lập trình chuyên nghiệp

Chỉ trong vòng mấy năm Turbo Pascal đợc cải tiến qua nhiều phiên bản :1.0, 2.0, 3.0, 4.0, 5.0, 5.5 (1989), 6.0 (1990), 7.0 (1992)

Để dánh giá những đóng góp quan trọng trong lĩnh vực Tin học, đặc biệt là

sự ra đời của Pascal, Hội Tin học Mỹ (ACM) đã trao giải thởng quốc tế về Tinhọc mang tên Turning cho N Wirth

Trang 2

5.1.2 Các tập tin chính của Turbo Pascal : Các tập tin của phần mềm

Turbo Pascal đợc chứa trên nhiều đĩa mềm (đĩa cài đặt) Tuy nhiên để chạy đợc

Turbo Pascal thông thờng chỉ cần sử dụng các tập tin chủ yếu sau :

TURBO.EXE : T rình soạn thảo và biên dịch.

TURBO.TPL : Tập tin th viện, lu các đơn vị chuẩn để chạy với TURBO.EXE

(TPL : Turbo Pascal Library).

Với hai tập tin trên chúng ta có thể bắt đầu viết đợc chơng trình bằng ngônngữ Turbo Pascal Sau đó, muốn sử dụng đồ hoạ thì thêm các tập tin sau :

GRAPH.TPU : Tập tin th viện chơng trình đồ hoạ

*.CHR : Các tập tin các phông chữ trong chế độ đồ hoạ

*.BGI : Các trình điều khiển card màn hình trong chế độ đồ hoạ

Nếu muốn xem hớng dẫn sử dụng Turbo Pascal thì cần có thêm tập tin

TURBO.HLP.

5.2 Các khái niệm cơ bản của Turbo Pascal.

5.2.1 Bộ ký tự cơ bản : Turbo Pascal đợc xây dựng từ bộ ký tự cơ bản sau :

- Các chữ cái : 26 chữ hoa (A, B, C, , Z) và 26 chữ thờng (a, b, c, , z)

- Các chữ số thập phân : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

- Các dấu toán học thông dụng : + - * / = < > ( )

- Dấu gạch nối _ (khác với dấu trừ).

- Các ký hiệu đặc biệt : , ; ! ? : ' " { } [ ] % @ & # $ ^

Lu ý : Các chữ ả rập (, , ) không thuộc bộ ký tự của Turbo Pascal

5.2.2 Từ khoá (key word) : Trong Turbo Pascal có một số từ cho sẵn, cóngữ nghĩa đã đợc xác định và tuân theo một cấu trúc ngữ pháp nhất định gọi là

từ khoá Ngời lập trình không đợc đặt một tên mới (tên biến, tên hằng, tên thủ

tục, ) trùng với một trong các từ khoá Sau đây là danh sách một số từ khoá

của Turbo Pascal :

 Từ khoá chung : PROGRAM, BEGIN, END, PROCEDURE, FUNCTION

 Từ khoá để khai báo : CONST, VAR, TYPE, ARRAY, STRING, RECORD,SET, FILE OF, LABEL

 Từ khoá của lệnh lựa chọn : IF THEN ELSE, CASE OF

 Từ khoá của lệnh lặp : FOR TO DO, FOR DOWNTO DO,WHILE DO, REPEAT UNTIL

Trang 3

 Từ khoá điều khiển : WITH, GOTO, EXIT.

 Từ khoá toán tử : AND, OR, NOT, IN, DIV, MOD

Chú ý : Turbo Pascal không phân biệt ký tự in thờng (lower case char) hay in

hoa (upper case char) Chẳng hạn, các cách viết sau có ý nghĩa hoàn toàn nh

nhau : BEGIN, begin, Begin, beGIN,

5.2.3 Tên (identifier) : Tên là một dãy ký tự đợc tạo thành từ các chữ cái,

chữ số và dấu nối (_) dùng để đặt tên cho các đại lợng trong chơng trình nh tênhằng, tên kiểu dữ liệu, tên biến, tên mảng, tên hàm, tên chơng trình,

 Kí tự đầu tiên của tên không đợc là chữ số

 Chiều dài của tên tối đa là 127 ký tự

5.2.4 Tên chuẩn : Trong Turbo Pascal có một số tên đã đợc đặt sẵn rồi, gọi

là tên chuẩn Sau đây là một số tên chuẩn :

 Tên hằng chuẩn : FALSE, TRUE, MAXINT,

 Tên kiểu chuẩn : BOOLEAN, CHAR, INTEGER, WORD, REAL, BYTE,

 Tên hàm chuẩn : ABS, ARCTAN, CHR, COS, SIN, EXP, LN, SQR, SQRT,

 Tên thủ tục chuẩn : READ, READLN, WRITE, WRITELN,

Trang 4

Mặc dù ngời lập trình có thể đặt một tên mới trùng với một trong các tênchuẩn, tuy nhiên để khỏi nhầm lẫn, chúng ta nên tránh điều này.

5.3 Cấu trúc tổng quát của một chơng trình Turbo Pascal.

Một chơng trình Turbo Pascal đầy đủ gồm ba phần sau :

USES ; {khai báo sử dụng các Unit}

TYPE ; {khai báo kiểu dữ liệu mới}

VAR ; {khai báo các biến}

PROCEDURE ;{khai báo các chơng trình con là thủ tục}

FUNCTION ; {khai báo các chơng trình con là hàm}

(* Phần thân chơng trình chứa các lệnh để máy tính thực hiện *)

Trang 5

 Trong cấu trúc tổng quát của chơng trình Turbo Pascal :

- Phần 1 : Chiếm một dòng và có thể có hay không.

- Phần 2 : Tuỳ theo chơng trình cụ thể mà các khai báo có thể có hay không và

có thể lặp lại một số lần.

- Phần 3 : Bắt buộc phải có đối với mọi chơng trình.

 Lời giải thích : Turbo Pascal cho phép ngời lập trình có thể đa vào văn bản

chơng trình các lời bình luận, giải thích, ghi chú để làm cho chơng trình dễ

đọc, dễ hiểu hơn mà không ảnh hởng đến sự thực hiện của chơng trình Cáclời giải thích đợc đặt giữa hai dấu { } hoặc giữa hai cụm dấu (* *) và có thểviết trên một dòng hay nhiều dòng

 Dấu chấm phẩy ( ; ) : Dấu chấm phẩy dùng để ngăn cách các câu lệnh của

Turbo Pascal (không phải là dấu kết thúc lệnh) Nếu dấu chấm phẩy đứng

ngay trớc từ khoá END có thể bỏ Chẳng hạn, có thể viết :

Begin

Write('Turbo Pascal');

Readln

End

 Câu lệnh : Một chơng trình gồm các câu lệnh, mỗi câu lệnh thực hiện một

công việc nào đó Trên một dòng có thể viết một hoặc nhiều câu lệnh Mộtlệnh, nếu dài, thì có thể viết trên hai hay nhiều dòng, chẳng hạn :

Writeln('Phơng trình có hai nghiệm là : x1 = ', x1:8:2,

' và x2 = ', x2:8:2);

5.4 Các bớc để chạy một chơng trình Turbo Pascal.

5.4.1 Ví dụ 1 : Tạo lập và cho thực hiện chơng trình in ra màn hình hai dòngthông báo :

TURBO PASCAL 7.0 XIN CHAO CAC BAN YEU THICH TIN HOC

-Các bớc thực hiện :

B

ớc 1 : Khởi động Turbo Pascal (cho thực hiện tập tin chơng trình TURBO.EXE) bằng lệnh TURBO  Khi đó màn hình làm việc của TurboPascal xuất hiện Dòng trên cùng màn hình là bảng chọn chính :

Ghi chú : ở đây trình bày đối với Turbo Pascal 6.0 Ngời đọc có thể tự suy ra đối với

Turbo Pascal 5.5 hay 7.0 vì về cơ bản chúng giống với phiên bản 6.0

B

ớc 2 : Đặt tên cho tập tin chơng trình sẽ soạn

Gõ Alt-F để chọn mục File trong bảng chọn chính, sẽ xuất hiện bảng chọn dọc :

Trong bảng này chọn New Tiếp đến gõ tên tập tin (không cần

gõ phần mở rộng) vào trong khung vừa hiện ra, ví dụ :

Trang 6

Tập tin VIDU1.PAS sẽ đợc lu trong thực mục hiện hành Nếumuốn tập tin VIDU1.PAS đợc lu trên đĩa A thì khi nhập tên tậptin ta gõ thêm tên ổ đĩa ở đằng trớc, ví dụ :

Writeln(' - TURBO PASCAL 7.0 -’);

Writeln(' XIN CHAO CAC BAN YEU THICH TIN HOC’)

End.

Ghi chú : Muốn ghi văn bản chơng trình vào đĩa thì chọn lệnh File/ Save hoặc gõ F2.

Nếu muốn ghi tập tin với tên khác hay ghi vào th mục khác với th mục lúc đầu thì chọn

lệnh File/ Save as, sau đó nhập vào tên tập tin mới cùng đờng dẫn và gõ Enter.

B

ớc 4 : Biên dịch và thực hiện chơng trình

Ctrl-F9 Khi dịch máy sẽ kiểm tra ngữ pháp của từng lệnh, gặp lệnh saihoặc nhập sai máy dừng lại, trên mà hình có thông báo nguyên nhân sai của lỗi,Ngời lập trình phải tự mình sửa lỗi, rồi gõ Ctrl-F9 để chạy tiếp Lặp lại quátrình này cho đến khi sửa hết lỗi

Ghi chú :

 Nếu sau khi chạy, máy không báo lỗi nhng lại cho kết quả sai thì ta phải tự tìm lỗivì đây là lỗi logic, lỗi về thuật toán máy không phát hiện đợc Chẳng hạn, khi giảiphơng trình bậc hai ta gán nhầm giá trị cho biệt số : delta := b*b - 2*a*c

 Sau khi biên dịch và thực hiện chơng trình xong mà không thấy kết quả chơng

trình trên màn hình thì gõ Alt-F5 để hiện kết quả, xem xong gõ phím bất kỳ để

trở lại màn hình ban đầu

 Nếu chơng trình chạy đúng thì gõ F2 để lu nó lên đĩa lần cuối Bây giờ có thể lặp

lại từ bớc 2 để soạn một chơng trình mới

 Khi chơng trình đã chạy thông suốt, muốn dịch chơng trình ra tập tin trên đĩa cóphần mở rộng EXE để sau này có thể chạy độc lập không phải vào môi trờng củaTurbo Pascal, thì thực hiện bớc 5 và bớc 6

B

ớc 5 : Gõ Alt-C (chọn mục Compile), trên màn hình xuất hiện bảng chọn dọcCompile, trong bảng chọn này, chọn DestinationDisk để kết quả dịch chơngtrình đợc ghi ra đĩa, rồi gõ Alt-F9 để dịch chơng trình Khi xuất hiện thông báo

“Compile Successful : Press any key” thì dịch xong Nếu có lỗi máy cũng dừnglại và thông báo nguyên nhân lỗi trên màn hình

B

ớc 6 : Thoát tạm thời khỏi môi trờng Turbo Pascal để chạy chơng trình đã

dịch thành công : gõ Alt-F để vào bảng chọn dọc File, trong bảng chọn này,chọn Dos Shell Sau đó cho chạy tập tin chơng trình có đuôi EXE đã dịch Chạyxong chơng trình, trở lại Turbo Pascal bằng lệnh EXIT ()

B

ớc 7 : Thoát khỏi hẵn Turbo Pascal : gõ Alt-X.

 Mở xem hoặc hiệu chỉnh một chơng trình cũ : Trờng hợp muốn mở xem

hoặc hiệu chỉnh một chơng trình đã có trên đĩa, hãy chọn lệnh File/ Open hoặc gõ

Trang 7

phím F3, trong khung có tiêu đề là Name, gõ vào *.PAS  (hoặc A:*.PAS  nếutập tin nằm trên đĩa A), một danh sách các tập tin có phần mở rộng PAS sẽ hiện ratrong khung phía dới cho ta chọn Dùng các phím mũi tên để di chuyển và đặtthanh sáng vào tên muốn chọn rồi gõ Enter Nội dung tập tin này sẽ đợc đa lênmàn hình cho chúng ta xem, sửa, chạy thử,

5.4.2 Ví dụ 2 : Viết chơng trình tính chu vi, diện tích hình tròn với bán kính

5.5 Các thao tác soạn thảo cơ bản với Turbo Pascal.

Phím lệnh soạn thảo thông dụng

Xóa kí tự ngay tại vị trí con trỏ Del

Xóa một dòng tại vị trí con trỏ Ctrl-Y

Xóa từ con trỏ đến cuối dòng Ctrl-Q Y

Chuyển con trỏ sang cửa sổ mới Alt - số hiệu cửa sổ

Trang 8

Câu hỏi - Bài tập [5.1] Tập ký tự cơ bản của ngôn ngữ Turbo Pascal.

[5.2] Từ khoá là gì ? Tại sao nên học thuộc các từ khoá của Turbo Pascal [5.3] Phân biệt sự khác nhau giữa từ khoá và tên chuẩn.

[5.4] Tên là gì ? Các tên sau đây tên nào không đúng trong Turbo Pascal ? Tại

sao ?

Alpha1, ket-qua, 26B, $2

[5.5] Trình bày cấu trúc đầy đủ của một chơng trình viết bằng Turbo Pascal.

Trong cấu trúc đó phần nào bắt buộc phải có, phần nào không bắt buộcphải có

Trang 9

Chơng 6 Các kiểu dữ liệu đơn giản

6.1 Kiểu dữ liệu trong ngôn ngữ lập trình.

Một kiểu dữ liệu (data type) là một sự qui định về cấu trúc, miền trị của dữ

liệu và tập các phép toán tác động lên miền trị đó

Một ngôn ngữ lập trình chỉ chấp nhận và xử lý những dữ liệu tuân theo sựqui định về kiểu của ngôn ngữ lập trình đó Trong một ngôn ngữ lập trình, một

dũ liệu bao giờ cũng thuộc về một kiểu dữ liệu nhất định

Các kiểu dữ liệu trong Turbo Pascal đợc chia ra thành hai loại chính :

- Kiểu dữ liệu đơn giản (simple type).

- Kiểu dữ liệu có cấu trúc (tructure type)

Tổng quan phân loại các kiểu dữ liệu trong Turbo Pascal

Chú ý :

 Riêng chuỗi ký tự (STRING) là một kiểu dữ liệu đặc biệt, vừa có tính đơngiản vừa có tính cấu trúc Mỗi chuỗi có thể xem là một giá trị, nhng cũng cóthể xem là một mảng các giá trị kiểu ký tự Vì vậy, việc sử dụng chuỗi cũng

có hai mức khác nhau : mức đơn giản và mức có cấu trúc

 Các kiểu có dấu (*) gọi là kiểu vô hớng đếm đợc (hay có thứ tự).

Dới đây sẽ lần lợt trình bày 5 kiểu dữ liệu đơn giản thông dụng : kiểu logic,kiểu nguyên, kiểu thực, kiểu ký tự và chuỗi

6.2 Các kiểu dữ liệu đơn giản.

6.2.1 Kiểu logic (boolean type) :

- Chỉ có hai giá trị đợc biểu thị qua hai hằng chuẩn là TRUE (đúng),FALSE (sai)

- Một giá trị logic đợc lu trử trong 1 byte

- Quy ớc : FALSE < TRUE

- Các phép toán : NOT, AND, OR và XOR Kết quả của các phép toán này đợc thể hiện qua bảng sau :

9

Kiểu đoạn con (*) Kiểu liệt kê (*)

Kiểu logic (*) Kiểu nguyên (*) Kiểu thực Kiểu ký tự (*)

Kiểu có cấu trúc

Kiểu đơn giản

Kiểu đơn giản

Chuẩn

Do ng ời lập trình

định nghĩa

Kiểu mảng Kiểu tập hợp Kiểu bản ghi Kiểu tập tin

True

False

FalseTrue

TrueTrue

TrueFalse

TrueFalse

TrueTrue

FalseTrue

Trang 10

(A và B là hai giá trị kiểu logic)

Ví dụ 1 : Kết quả của các tính toán sau sẽ cho giá trị logic :

Delta > 0, A <> 0, (Delta > 0) and (A <> 0)

Chú ý : trớc và sau các từ khoá AND, OR, NOT, XOR chỉ có dấu cách.

6.2.2 Kiểu số nguyên :

Kiểu số nguyên thuộc tập Z Có 5 kiểu số nguyên : Integer, Byte, Word,

ShortInt và LongInt Dới đây là bảng chi tiết về tên gọi, phạm vi giá trị và

số byte dùng để lu trữ trong bộ nhớ của từng kiểu :

ShortInt

ByteIntegerWordLongInt

-128 1270 255-32768 327670 65535-2147483648 2147483647

11224

 Các phép tính số học trên số nguyên :

Phép cộng và trừ : Ký hiệu + và - nh thờng lệ.

Phép nhân : Ký hiệu bằng dấu * Chẳng hạn : 3*2 cho kết quả là 6.

Phép chia (lấy kết quả là số thực) : Ký hiệu bằng dấu / Chẳng hạn : 5/2

cho kết quả là 2.5

Phép chia lấy phần nguyên : Ký hiệu bằng từ khoá DIV Chẳng hạn :

5 DIV 2 cho kết quả là 2; 3 DIV 4 cho kết quả là 0

Phép lấy phần d nguyên của phép chia : Ký hiệu bằng từ khoá MOD.

Chẳng hạn : 5 MOD 2 cho kết quả là 1; 10 MOD 4 cho kết quả là 2

- Dấu + hay - ( nếu có) phải đặt ngay trớc chữ số đầu tiên.

- Không đợc sử dụng dấu chấm thập phân.

 Khi thực hiện các phép tính trên số nguyên, cần hết sức thận trọng xem cácphép toán đó có cho kết quả vợt quá phạm vi biểu diễn của số nguyênkhông Chẳng hạn, với a và b là dữ liệu Integer, khi đó hai câu lệnh sau :

Trang 11

a := 80;

b := (a*1245) Div 200;

cho kết quả sai, vì a*1245 = 99600 vợt quá phạm vi của Integer

Ví dụ 2 : Nhập một số tiền N đồng, đổi xem đợc bao nhiêu tờ 10 đồng, bao

nhiêu tờ 5 đồng, bao nhiêu tờ 1 đồng sao cho tổng số tờ là ít nhất Chẳng hạn :

N = 67 đ  đổi đợc 6 tờ 10 đ + 1 tờ 5 đ + 2 tờ 1 đ

Cách tính nh sau :

Số tờ 10 đ = 67 div 10 = 6; Số tiền d = 67 mod 10 = 7

Số tờ 5 đ = (Số tiền d) div 5 = 7 div 5 = 1

Số tờ 1 đ = (Số tiền d) mod 5 = 7 mod 5 = 2

đây là bảng chi tiết về phạm vi giá trị và số byte dùng để lu trữ trong bộ nhớcủa từng kiểu :

RealSingleDouble

Chú ý : Turbo Pascal thờng chỉ làm việc với một kiểu Real Muốn dùng 4

kiểu thực còn lại, phải chuyển sang mode 8087 bằng cách viết chỉ thị{$N+} ở ngay đầu chơng trình

 Cách viết một số thực : Có hai cách biểu diễn các số thực :

Trang 12

Cách 1 : Viết nh một số thực bình thờng trong toán học, trong đó dấu phẩy

thập phân đợc thay bằng dấu chấm thập phân Chẳng hạn : 2.12; 4.0; 125.09; +235.55

-Cách 2 : Viết số dới dạng khoa học

2.345E+1 (có giá trị là 2.345*10 1 = 23.45)

123.456E-4 (có giá trị là 123.456*10 -4 = 0.0123456)

-52.4E2 (có giá trị là -52.4*10 2 = -5240.0)

Trong dạng này, số gồm có hai phần : phần đứng trớc E gọi là phần

định trị, đợc viết theo cách 1; phần đứng sau E gọi là phần bậc, gồm dấucộng hoặc trừ, tiếp đến là một số nguyên

Số viết theo cách 1 còn gọi là số có dấu chấm thập phân cố định, sốviết theo cách 2 còn gọi là số có dấu chấm thập phân di động hay số dạngkhoa học

 Các phép toán trên số thực : cộng (+), trừ (-), nhân (*) và chia (/) Khi mộttrong các số hạng tham gia tính toán là kiểu thực thì kết quả của phép toáncũng là một số thực

Lu ý : Phép toán DIV và MOD không dùng cho các số thực.

 Các hàm số học dùng cho số nguyên và số thực :

Tên hàm Kiểu của

đối số

Kiểu của kết quả

nếu có Trunc(4.86) = 4; Trunc(-3.2) =-3

Round(x) : cho số nguyên gần x nhất.

FRED

Pred(n) = n-1.

kết quả FALSE nếu ngợc lại

6.2.4 Kiểu ký tự (character type) :

 Các ký tự dùng trong máy tính đợc liệt kê đầy đủ trong bảng mã ASCII gồm

256 ký tự khác nhau và đợc đánh số thứ tự từ 0 đến 255 Số thứ tự của mỗi

ký tự còn gọi là mã ASCII của ký tự đó Dới đây là một phần của bảng mãASCII :

Trang 13

Mã ASCII Ký tự

73243484965669798134

BellSpace (ký tự trắng)

+01ABab

Lu ý : Các ký tự có mã từ 0 đến 31 gọi là các ký tự điều khiển, không in ra đợc,

đợc dùng để điều khiển các thiết bị ngoại vi Chẳng hạn, ký tự có mã là 7 (bell)

dùng để tạo một tiếng kêu bip; ký tự có mã 13 dùng để chuyển con trỏ mànhình xuống đầu dòng dới,

 Mỗi ký tự trong bảng mã ASCII gọi là một hằng ký tự, chiếm độ dài 1 byte,

và khi viết trong Turbo Pascal phải đợc đặt trong cặp nháy đơn, chẳng hạn:

’A’, ’2’, ’$’,

 Phép toán : Chỉ có phép toán so sánh Ký tự có mã nhỏ hơn thì nhỏ hơn Tức

là : ‘0’ < ‘1’ < < ‘A’ < ‘B’ < < ‘a’ < ‘b’ <

 Các hàm liên quan đến ký tự :

 Hàm UPCASE(ch) : Đổi ký tự ch thành ký tự hoa Chẳng hạn :

UpCase(’a’) = ’A’; UpCase(’B’) = ’B’

 Hàm PRED(ch) : Cho ký tự đứng ngay trớc ký tự ch trong bảng mã.

- Lệnh Write(Chr(242)) : in ra ký tự 

- Lệnh Write(Chr(240)) : in ra ký tự 

- Lệnh Write(Chr(7)) hay Write(#7) : phát ra một tiếng bip

 Turbo Pascal cho phép viết gọn Chr(k) thành #k nếu k là hằng số Chẳnghạn, các lệnh sau đều in lên màn hình ký tự A : Write(’A’); Write(#65);Write(Chr(65))

 Turbo Pascal không có hàm đổi ký tự hoa ra ký tự thờng, nhng có thể làmviệc này nhờ công thức sau :

Ký tự thờng := Chr(Ord(ký tự hoa) + 32)

Trang 14

6.2.5 Kiểu chuỗi ký tự (string type) : Một dãy ký tự đặt trong cặp nháy

đơn gọi là một hằng chuỗi Dới đây là hai hằng chuỗi :

’Ho va ten’ : gồm 9 ký tự

’TURBO PASCAL’: gồm 12 ký tự

Số ký tự của chuỗi không quá 255 Chuỗi không có ký tự nào cả gọi làchuỗi rỗng

Dữ liệu kiểu chuỗi sẽ đợc trình bày chi tiết hơn ở các chơng sau

Câu hỏi - Bài tập [6.1] Kiểu dữ liệu là gì ?

[6.2] Trình bày các kiểu dữ liệu đơn giản của Turbo Pascal.

[6.3] Trong Turbo Pascal có thể biểu diễn đợc bao nhiêu ký tự khác nhau [6.4] Khi cần tính các số nguyên có giá trị từ 0 đến 245 ta nên dùng dữ liệu

có đúng hay không ? tại sao ? Nếu sai, hãy viết lại cho đúng

[6.6] Các dữ liệu sau thuộc kiểu dữ liệu đơn giản chuẩn nào ?

e) Int(12.5) f) 4 >=5 g) Round(12.4) h) 15/3

[6.7] Trong các phép toán dới đây phép nào có thể thực hiện đợc trong Turbo

Pacal và kết quả của phép toán thuộc kiểu dữ liệu nào ? Trong trờng hợpkhông thực hiện đợc hãy giải thích tại sao ?

[6.9] Viết chơng trình nhập vào từ bàn phím họ tên, năm sinh của một học

sinh và đa các dữ liệu đó ra màn hình

[6.10] Viết chơng trình tính diện tích mặt cầu và thể tích của hình cầu Biết bán

kính R nhập vào từ bàn phím

Trang 15

Chơng 7 Hằng, biến, kiểu, biểu thức, câu lệnh, lệnh gán

7.1 Hằng.

7.1.1 Khái niệm về hằng (constant) : Hằng là đại lợng có giá trị khôngthay đổi trong suốt quá trình thực hiện chơng trình

7.1.2 Cách khai báo hằng :

trong đó Tên_hằng là tự đặt, theo đúng quy tắc của một tên, còn giá_trịcó thể

là một hằng hoặc một biểu thức mà các toán hạng đều là hằng

Lu ý : Turbo Pascal có sẵn một số hằng chuẩn cho phép sử dụng mà không phải

khai báo nh : Pi (có giá trị bằng số ), MaxInt (có giá trị bằng 32767, là số

Integer lớn nhất) Chẳng hạn, có thể dùng lệnh sau :

Writeln(‘Diện tích hình tròn bán kính r = 5 là : ’,pi*5*5:8:3);

Chúng ta dùng các tên hằng để chơng trình đợc rõ ràng và dễ sửa đổi

7.2 Biến.

7.2.1 Khái niệm về biến (variable) : Biến là đại lợng có giá trị thay đổi

đ-ợc trong chơng trình Mỗi biến phải thuộc về một kiểu dữ liệu nhất định và phải

đợc khai báo trớc Việc khai báo có tác dụng báo cho máy dành sẵn các ô nhớthích hợp trong bộ nhớ để sẵn sàng chứa dữ liệu

7.2.2 Cách khai báo biến :

trong đó Danh_sách_tên_biến là một dãy tên biến đợc đặt cách nhau bởi dấuphẩy

Trang 16

 Biến ten ở ví dụ trên chứa một dãy không quá 7 ký tự Ta nói biến ten có độ

dài 7 byte Biến String khai báo tối đa là String[255]

 Một biến String đợc cấp một số byte bằng độ dài của nó cộng thêm 1 Byte đầutiên dùng để ghi số ký tự đang đợc lu trữ, mỗi byte còn lại chứa một ký tự

 Có thể vừa khai báo vừa khởi đầu (gán giá trị) cho các biến theo cách sau :

Const

x = 25.0;

y : Real = -5.23;

Ho_ten : String[25] = ‘Le Hung’;

Chú ý phân biệt x và y : x là hằng thực, y là biến thực Trong chơng trình có thể thay đổi giá trị của y nhng không thể thay đổi giá trị của x.

7.3 Định nghĩa kiểu dữ liệu.

Ngoài các kiểu dữ liệu đã đợc định nghĩa sẵn nh : Real, Integer, Byte, Char,Boolean, Turbo Pascal còn cho phép ta định nghĩa các kiểu dữ liệu khác từcác kiểu căn bản đã có sẵn theo quy tắc xây dựng của Turbo Pascal Kiểu dữliệu mới đợc định nghĩa bởi từ khoá TYPE nh sau :

Sau đó có thể khai báo các biến thuộc kiểu dữ liệu mới này

Ví dụ 3 :

Type songuyen = Integer;

tuoi_tho = 1 100; {miền giá trị của tuoi_tho từ 1 đến 100}

color = (Red, Blue, Green);

Sau đó ta có quyền sử dụng các kiểu trên để khai báo, chẳng hạn :

Var i, j : songuyen;

tuoi : tuoi_tho; mau : color;

TYPE

tên_kiểu = mô_tả_ kiểu;

Trang 17

7.4 Biểu thức.

7.4.1 Định nghĩa : Biểu thức (expression) là một công thức gồm có một hay nhiều thành phần đợc kết nối với nhau bởi các phép toán Mỗi thành phần (hay

toán hạng) có thể là hằng, là biến hay là hàm Kiểu dữ liệu của biểu thức là

kiểu của kết quả sau khi tính biểu thức

Ví dụ 4 :

 3*5 div 2 + 7 mod 4 : biểu thức nguyên, có kết qủa là 10

 ('A' <> 'a') And (5-2=3) : biểu thức logic, có kết quả là True

 5 + sin(pi/2) : biểu thức thực, có kết quả là 6.0

Chú ý : Các thành phần trong biểu thức cần phải có kiểu dữ liệu phù hợp để cho

các phép toán thực hiện đợc, nếu không máy sẽ báo lỗi Chẳng hạn, biểu thức :

2 + chr(67) là sai vì ta không thể cộng một số nguyên với một ký tự

7.4.2 Thứ tự u tiên : Một biểu thức có thể chứa nhiều phép toán Thứ tự thực hiện các phép toán đợc cho trong bảng dới đây :

NOT, - (phép lấy dấu âm)

*, /, DIV, MOD, AND

+, - (trừ), OR, XOR

=, <>, <, <=, >, >=, INKhi tính một biểu thức có hai quy tắc về thứ tự u tiên nh sau :

 Quy tắc 1 : Phép toán có cấp u tiên nhỏ thì đợc tính trớc, phép toán có cấp u

 (5 + 2 > 4) and not (true or (5 - 3 = 8)) : biểu thức logic, cho kết quả false

 -b + sqrt(delta)/2*a : cho kết quả là b delta a

Lệnh

đơn giản

Lời gọi ch ơng trình con

Xử lý tập tin (Reset, Rewrite, Assign, )

Lệnh phức (Begin End) Lệnh lựa chọn (If , Case )

Trang 18

Các câu lệnh phải đợc ngăn cách nhau bởi dấu chấm phẩy (;) và không bắtbuộc phải viết mỗi câu lệnh trên một dòng Vấn đề là chúng ta phải trình bàychơng trình sao cho đẹp, rõ ràng, thể hiện đợc thuật toán.

7.6 Lệnh gán.

Lệnh gán (assignment statement) dùng để gán giá trị của một biểu thức cho

một biến đã khai báo

 Cú pháp của lệnh gán :

ý nghĩa : Đầu tiên máy tính trị của biểu_thứcvế phải, sau đó gán giá trị tính

đ-ợc cho tên_biến ở vế trái

Chú ý :

 Vế trái của phép gán chỉ và chỉ có thể là một biến mà thôi Chẳng hạn, viết

x + y := 7 là sai vì vế trái là một biểu thức chứ không phải là một biến

 Kiểu của biểu thức phải trùng với kiểu của biến, trừ trờng hợp một biến thực

Câu hỏi - Bài tập

[7.1] Hằng, biến là gì ? Viết các khai báo hằng và biến sau :

a) hằng số c = 100.

b) x, y là các biến thực.

c) i là biến nhận các giá trị nguyên trong khoảng từ -32768 đến 32767 d) kt, traloi là các biến ký tự.

e) hoten là biến chuỗi ký tự.

[7.2] Hãy viết các biểu thức sau ra Turbo Pascal :

a)

2

y x

y x

) 1 ( 9

) 6 5 2 )(

x x a

;

c)

2 3

cos sin

; d) x  log (x2  2 )  e x

2 3

Trang 19

a) Exp(x*ln(y)); b) Sqrt(a+Sqrt(sqr(b)+sqr(c))).

[7.5] Có bao nhiêu loại câu lệnh trong Turbo Pascal ? Lệnh gán là loại câu

lệnh nào và dùng để làm gì ?

[7.6] Giả thiết có các khai báo sau :

Var x, y, z : Real; i, j : Byte; k : Word; c : Char; b : Boolean;

Hãy xem các giá trị dới đây có thể gán cho các biến nào ;

a) 12.45; b) -5; c) 1e-5; d) 65532; e) ‘1996’f) ‘&’; g) sqrt(4); h) sqr(15); i) -32770; k) ‘CINTA’

[7.7] Hãy xác định giá trị của các biến sau khi thực hiện các lệnh gán sau :

x := (4+5)*2 div 7 + sin(pi/6);

L := (2 > 4 div 2) or Not (49.25 + 2 < 50);

[7.8] Cho biết kết quả và kiểu dữ liệu của các biểu thức sau :

a) 3 + 5.0 ; b) 6/3 + 2 div 3 ;

c) (10*((45 mod 3)+12))/6 ; d) (5<=3) and (not true and (12 div 3 <=1))

[7.9] Viết chơng trình nhập số thực x từ bàn phím; sau đó tính và in các giá trị

của y và z lên màn hình theo công thức :

2

3 2

trong đó bt_1, bt_2, , bt_n là các biểu thức cần phải xuất giá trị ra màn hình.

Trong trờng hợp đơn giản, mỗi biểu thức này có thể là một biến, một hằng, haymột hàm

 Dạng (1) : xuất ra màn hình giá trị các biểu thức tại vị trí hiện thời của contrỏ trên màn hình theo thứ tự viết trong , và sau lệnh này con trỏ ở vị trí saugiá trị của bt_n

 Dạng (2) : xuất ra màn hình giá trị các biểu thức tại vị trí hiện thời của contrỏ trên màn hình theo thứ tự viết trong câu lệnh, và sau đó đa con trỏ về đầudòng mới

Chú ý : Lệnh WRITELN {không có tham số}sẽ không xuất gì cả, mà chỉ đa con

Trang 20

Kết quả trên màn hình sau khi chạy chơng trình :

Chú ý : Có hai dạng viết trong thủ tục WRITE và WRITELN là viết không quy

cách và viết có quy cách Chúng sẽ đợc xét cụ thể với từng kiểu dữ liệu qua các

Kết quả trên màn hình sau khi chạy chơng trình :

Vậy cách viết không quy cách sẽ căn lề theo bên trái

Ví dụ 3 :

Đây là kết quả của phép nhân A với B : 8*****

1.2345600000E+02 {số thực dơng đợc viết ra với trình tự sau : 1 dấu cách, 1 số

-3.1400000000E+00 phần nguyên, dấu chấm, 10 chỗ phần thập phân, chữ E, dấu

5.0000000000E+01 của phần mũ, 2 số biểu diễn giá trị phần mũ}

D {các ký tự in bình thờng, 1 ký tự chiếm 1 chỗ}

TRUE {kiểu boolean đợc viết ra chữ TRUE hay FALSE}

200

Trang 21

Program Vidu_3 ; {dạng viết có quy cách}

Kết quả trên màn hình sau khi chạy chơng trình :

Vậy cách viết không quy cách sẽ căn lề theo bên phải

Chú ý : Vì dấu nháy đơn (’) để đánh dấu ký tự, do đó khi muốn xuất nó ra màn

hình, ta viết 2 lần dấu nháy đơn Chẳng hạn, lệnh Write(’Don’’t forget me !’); sẽxuất ra màn hình : Don’t forget me !

8.1.2 Xuất dữ liệu ra máy in : Để xuất dữ liệu ra máy in, ta dùng các lệnhWRITE, WRITELN với tham số LST vào trớc danh sách các tham số Vì biếnLST đợc khai báo trong Unit Printer, vì vậy cần khai báo Unit này ở đầu chơngtrình sau từ khoá USES

Kết quả sẽ in ra giấy nội dung sau : x = 12 và y = 3.6

8.1.3 Một số hàm, thủ tục trình bày màn hình trong Turbo Pascal

Trang 22

GOTOXY(X,Y) : Thủ tục di chuyển con trỏ đến vị trí dòng Y cột X Các cột

đợc đánh số từ 1 đến 80, các dòng đợc đánh số từ 1 đến 25

CLRSCR (Clear Screen) : Thủ tục xoá toàn bộ màn hình và đa con trỏ về

dòng 1 và cột 1 của màn hình

CLREOL (Clear End Of Line) : Thủ tục xoá các ký tự từ vị trí con trỏ đến

hết dòng Sau khi thực hiện xong, con trỏ đứng ngay vị trí trớc khi gọi thủtục

DELLINE : Thủ tục xoá dòng con trỏ đang đứng và dịch các dòng dới lên

một dòng

WINDOW(x1,y1,x2,y2) : Thủ tục thiết lập một cửa sổ hoạt động giới hạn từ

điểm (x1,y1) đến (x2,y2) Các toạ độ phải tính lại theo quy tắc :

Hoành độ mới = Hoành độ cũ -x1 + 1

Tung độ mới = Tung độ cũ -y1 + 1

Chẳng hạn, muốn di chuyển con trỏ đến dòng 8 cột 10 trên màn hình saukhi đã thực hiện lệnh Window(5,7,75,15); ta phải viết GotoXY(6,2).

WHEREX : Hàm cho giá trị có kiểu byte cho biết con trỏ đang ở cột nào

WHEREY : Hàm cho giá trị có kiểu byte cho biết con trỏ đang ở dòng nào.

Chú ý : Muốn sử dụng các hàm và thủ tục trên phải khai báo : USES CRT;

GotoXY(x-2,y+2); Write(’BAN HAY DEN VOI’);

GotoXY(x,y+3); Write(’TURBO PASCAL’);

BAN HAY DEN VOI TURBO PASCAL 7.0

Trang 23

Hoặc gõ : 5 5.4 3  (có ít nhất một dấu cách giữa hai số)

Hoặc gõ từng số và Enter nh dới đây :

5 

5.4 

4 

Trong cả hai trờng hợp ta đều đợc : a = 5; b = 5.4; n = 3

Ngoài cách dùng một lệnh Readln(a, b, n), ta cũng có thể nhập riêng cho từngbiến bằng ba lệnh sau :

Readln(a);

Readln(b);

Readln(n);

8.2.2 Nhập dữ liệu kiểu ký tự hay chuỗi : Ta dùng lệnh :

Ví dụ 7 : Cho khai báo :

Var Ho_ten : String[18];

Ngày đăng: 05/07/2013, 01:26

HÌNH ẢNH LIÊN QUAN

 Các ký tự dùng trong máy tính đợc liệt kê đầy đủ trong bảng mã ASCII gồm 256 ký tự khác nhau và đợc đánh số thứ tự từ 0 đến 255 - Giáo trình dạy học Ngôn ngữ lập trình Pascal
c ký tự dùng trong máy tính đợc liệt kê đầy đủ trong bảng mã ASCII gồm 256 ký tự khác nhau và đợc đánh số thứ tự từ 0 đến 255 (Trang 14)
Chẳng hạn, muốn di chuyển con trỏ đến dòng 8 cột 10 trên màn hình sau khi đã thực hiện lệnh Window(5,7,75,15); ta phải viết GotoXY(6,2). - Giáo trình dạy học Ngôn ngữ lập trình Pascal
h ẳng hạn, muốn di chuyển con trỏ đến dòng 8 cột 10 trên màn hình sau khi đã thực hiện lệnh Window(5,7,75,15); ta phải viết GotoXY(6,2) (Trang 25)
Ví dụ 10 : Viết chơng trình nhập chiều dài, chiều rộng của hình chữ nhật từ bàn phím và in hình chữ nhật đó ra màn hình bằng các dấu * có dạng sau : - Giáo trình dạy học Ngôn ngữ lập trình Pascal
d ụ 10 : Viết chơng trình nhập chiều dài, chiều rộng của hình chữ nhật từ bàn phím và in hình chữ nhật đó ra màn hình bằng các dấu * có dạng sau : (Trang 42)
Write('Nhập độ dài 2 cạnh của hình chữ nhật : '); Readln(a,b); Writeln('  Diện tích hình chữ nhật là : S = ', a*b:1:5); Readln; - Giáo trình dạy học Ngôn ngữ lập trình Pascal
rite ('Nhập độ dài 2 cạnh của hình chữ nhật : '); Readln(a,b); Writeln(' Diện tích hình chữ nhật là : S = ', a*b:1:5); Readln; (Trang 46)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w