1. Trang chủ >
  2. Công Nghệ Thông Tin >
  3. Tin học văn phòng >

Câu lệnh và lời chú thích

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 (735.23 KB, 141 trang )


BỘ MÔN TIN HỌC







TRƯỜNG ĐẠI HỌC HOA LƯ



Readln(k)

End;

Từ các lệnh đơn giản và các lệnh có cấu trúc đã có lại có thể xây dựng được các lệnh có

cấu trúc phức tạp hơn, ví dụ:

If k>= 0 then Writeln(k)

else

Begin

Writeln(‘ k âm, xin nhập lại: ‘);

Readln(k);

End;

Sau đây sẽ trình bày kỹ về một lệnh đơn giản và thông dụng: lệnh gán.

b. Lệnh gán

Lệnh gán có cú pháp như sau: TênBiến:= Biểuthức;

Ý nghĩa: tính toán biểu thức bên phải, rồi lưu kết qủa tính được vào tên biến ở vế trái.

Ví dụ, cho khai báo:

Var A, B: Real; K: Integer;

Khi dùng lệnh các lệnh:

K:= 10 ; B:= K* 3+4.5;

thì biến K có giá trị là 10, biến B có giá trị là 34.4.

Nếu thực hiện tiếp lệnh gán: B:= 17/2; thì giá trị của B bây giờ sẽ là 8.4.

Như vậy nếu một biến được gán nhiều lần thì nó sẽ lấy giá trị của lần gán sau cùng, tính

đến thời điểm đang xét.

Yêu cầu để cho lệnh gán thực hiện được là kiểu dữ liệu của biểu thức ở vế phải phải phù

hợp với kiểu dữ liệu của biến ở vế trái, nếu không phù hợp thì khi dịch (Compile) chương

trình, Turbo Pascal sẽ thông báo lỗi: "Error 26: Type mismatch". Ví dụ, lệnh gán dưới đây

là sai vì vế trái là kiểu thực còn vế phải là kiểu chuỗi: A:=‘Pascal’;

Chú ý rằng một số nguyên có thể gán cho một biến thực, (chẳng hạn lệnh A:=10; là

đúng), nhưng một số thực không thể gán cho một biến nguyên. Ví dụ lệnh K:=10/4; là sai

vì biến K có kiểu nguyên, còn vế phải cho kết qủa là một số thực (=2.5).

Xét thêm ví dụ về các kiểu dữ liệu khác:

Cho khai báo:



Ngôn ngữ lập trình Pascal



18



BỘ MÔN TIN HỌC



Var







TRƯỜNG ĐẠI HỌC HOA LƯ



Ch: Char ; St: String[20];



Khi đó: Lệnh St:=‘A’; là đúng.

Lệnh St:=‘1234’; là đúng.

Lệnh Ch:=‘ABCD’; là sai vì vế phải là một chuỗi.

Lệnh St:= 100; là sai vì vế phải là một số.

Lệnh Ch:=‘1’ ; là đúng.

Lệnh Ch:=St ; là sai vì vế phải là một chuỗi.

c. Lời chú giải

Lời chú giải có thể đặt tại bất kỳ chỗ nào trong chương trình và được viết theo một trong

hai cách:

{ lời giải thích } hoặc (* lời giải thích *)

Lời giải thích là một chuỗi ký tự giải thích mục đích của chương trình hay của một câu lệnh.

Nó chỉ có tác dụng cho người dùng tham khảo nhằm hiểu nhanh mục đích của chương trình hay

của một câu lệnh mà không cần phải đọc hết chương trình hay câu lệnh đó.

3. Nhập dữ liệu

Nhập và xuất dữ liệu là hai khâu quan trọng trong quá trình xử lý thông tin. Hầu như

chương trình nào cũng phải giải quyết vấn đề nhập, xuất dữ liệu.

a. Nhập dữ liệu kiểu số

Ðể nhập dữ liệu cho biến nguyên hay thực, ta dùng lệnh:

Readln(biến1, biến2, ..., biếnk);

trong đó biến1, biến2,..., biếnk đã được khai báo và có kiểu dữ liệu là nguyên hay thực.

Khi gặp lệnh này, chương trình tạm dừng, chờ ta gõ đủ k số từ bàn phím và kết thúc

bằng Enter, rồi gán lần lượt k số đó cho biến1, biến2, ..., biếnk.

Ví dụ, để nhập dữ liệu cho hai biến thực x, y và biến nguyên j, ta dùng lệnh:

Readln(x, y);

Cách nhập như sau:

hoặc gõ 10 5.5  (có khoảng trắng giữa hai số ),

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

10

5.5

Trong cả hai trường hợp ta đều được: x=10 và y=5.4.



Ngôn ngữ lập trình Pascal



19



BỘ MÔN TIN HỌC







TRƯỜNG ĐẠI HỌC HOA LƯ



Ngoài cách dùng một lệnh Readln(x, y) ; ta cũng có thể nhập riêng cho từng biến bằng

hai lệnh sau:

Readln(x); Readln(y);

b. Nhập dữ liệu kiểu ký tự hay kiểu chuỗi

Ta dùng lệnh:

Readln(biến );

Ví dụ, cho khai báo:

Var

Ho_ten: String[18];

Phai: String[3];

Khoi_thi: Char;

Muốn nhập dữ liệu cho ba biến Ho_ten, Phai, Khoi_thi ta phải dùng ba lệnh:

Readln(Ho_ten);

Readln(Phai);

Readln(Khoi_thi);

Khi nhập, ta gõ:

Tran Van Thanh 

nam

A

Kết qủa, ba biến sẽ có giá trị là: Ho_ten = ‘Tran Van Thanh’, Phai= ‘nam’ và

Khoi_thi=‘A’.

Khác với dữ liệu số, ta không nên dùng một lệnh Readln để nhập dữ liệu cho hai hay

nhiều biến kiểu ký tự hay kiểu chuỗi, vì sẽ có những nhầm lẫn không kiểm soát được.

Ví dụ, không dùng lệnh sau: Readln(Ho_ten, Phai, Khoi_thi);

c. Các chú ý

* Dữ liệu nhập phải phù hợp với kiểu của biến. Nếu không phù hợp thì chương trình sẽ

dừng ngay và hiện thông báo lỗi.Ví dụ khi gặp lệnh Readln(j) ; mà ta gõ 3.5 thì bị lỗi

vì j là biến nguyên, còn 3.5 là số thực.

* Lệnh: Readln ; là một dạng nhập dữ liệu đặc biệt vì nó không có biến nào để nhận dữ

liệu nhập vào. Người ta dùng lệnh này khi muốn tạm dừng chương trình để xem kết qủa

trên màn hình, xem xong, gõ phím Enter thì chương trình chạy tiếp.

* Biến kiểu lôgic không nhập được từ bàn phím.



Ngôn ngữ lập trình Pascal



20



BỘ MÔN TIN HỌC







TRƯỜNG ĐẠI HỌC HOA LƯ



* Pascal còn có một lệnh nhập dữ liệu nữa là Read, có công dụng như lệnh Readln, nhưng

ít dùng. Sự khác nhau giữa Read và Readln là ở chỗ: sau khi đã nhận đủ các giá trị cho các

biến cần nhập, lệnh Readln sẽ xóa sạch các giá trị nhập thừa, còn lệnh Read thì không. Các

giá trị nhập thừa của lệnh Read sẽ được tự động gán cho các biến trong lệnh nhập tiếp theo.

Ví dụ, xét hai lệnh:

Readln(x, y); Readln(j);

Nếu khi nhập, ta gõ: 12.5 20.6 10 

thì x=12.5, y=20.6, còn số 10 thừa bị xóa luôn. Biến j trong lệnh Readln(j) ở dưới không bị

ảnh hưởng. Muốn nhập số 9 cho j, ta gõ 9 .

Với đoạn chương trình:

Read(x, y);

Readln(j);

Nếu khi nhập, ta cũng gõ: 12.5 20.6 10 

thì x=12.5, y=20.6, còn số 10 thừa không bị xóa mà tự động gán cho biến j trong lệnh

Readln(j) tiếp theo, kết qủa j=10 cho dù ta chưa muốn nhập cho j.

Vậy, lệnh Read có thể làm sai ý đồ nhập của lệnh nhập tiếp theo.

Lời khuyên là không nên dùng lệnh Read, chỉ dùng Readln.

4. Xuất dữ liệu

Các dữ liệu được in lên màn hình nhờ các lệnh sau:

Writeln(bt1, bt2 , ... , btk ); Write(bt1, bt2 , ... , btk );

ở đây, bt1, bt2, ..., btk là các biểu thức cần phải in giá trị lên 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, hay một hàm.

Việc in được thực hiện như sau: tại vị trí hiện thời của con trỏ trên màn hình, in ra giá trị

của biểu thức bt1, in tiếp giá trị của biểu thức bt2, ..., in tiếp giá trị của biểu thức btk. Các

giá trị này được in trên một dòng, nếu dài quá khổ màn hình thì sẽ được in tiếp ở dòng

dưới.

Ví dụ, lệnh Writeln(3*2+9); sẽ in lên màn hình số 14.

Nếu i, j là các biến nguyên thì khi thực hiện các lệnh sau:

i:=10 ; j:=15*2 ; Writeln(i, j+1, 678);

trên màn hình sẽ hiện: 1031678.



Ngôn ngữ lập trình Pascal



21



BỘ MÔN TIN HỌC







TRƯỜNG ĐẠI HỌC HOA LƯ



Sự khác nhau giữa lệnh Writeln và Write là ở chỗ: sau khi in xong giá trị của các biểu

thức, lệnh Writeln sẽ đưa con trỏ xuống đầu dòng dưới, còn lệnh Write thì không. Ðiều này

chỉ ảnh hưởng đến lệnh in tiếp theo mà thôi.

Ví dụ, khi thực hiện hai lệnh sau:

Writeln(‘Thao chuong bang ‘); Writeln(‘ngon ngu pascal’);

kết qủa trên màn hình sẽ hiện hai dòng:

Thao chuong bang

ngon ngu pascal

Nếu thay lệnh đầu bằng Write như dưới đây:

Write(‘Thao chuong bang ‘);Writeln(‘ngon ngu pascal’);

thì kết qủa trên màn hình sẽ hiện ra chỉ một dòng: Thao chuong bang ngon ngu pascal

a. In không định dạng

Ðối với các biểu thức kiểu nguyên, kiểu ký tự, kiểu lô gíc hay kiểu chuỗi, thì lệnh:

Writeln(biểuthức ) ;

sẽ in nguyên văn giá trị của biểu thức. Ví dụ:

Lệnh Writen(‘ket qủa x=‘ , 4+15); sẽ in ra: ket qua x=19

Lệnh Writeln(‘A’ , ‘=‘ , 2*3<5); sẽ in ra: A=FALSE vì biểu thức 2*3< 5 có kết qủa là

FALSE.

Nếu gán: Ho_ten:=‘ Tran Van Thanh’; thì lệnh

Writeln(‘Ho va ten: ‘, Ho_ten);

sẽ in lên màn hình dòng chữ:

Ho va ten: Tran Van Thanh

Cần phân biệt hai đại lượng ‘Ho va ten: ‘ và Ho_ten. Chúng khác nhau hoàn toàn: ‘Ho

va ten: ‘ là một giá trị chuỗi, tức là một hằng chuỗi nên sẽ được in nguyên văn lên màn

hình, còn Ho_ten là một biến kiểu chuỗi nên sẽ in giá trị mà biến này đang chứa.

Ðối với các biểu thức kiểu số thực thì lệnh: Writeln(biểuthức );

sẽ in giá trị của biểu thức ra dưới dạng dấu chấm thập phân di động có cả thảy 17 ký số,

trong đó có 10 ký số trong phần định trị, như sau:



Ngôn ngữ lập trình Pascal



22



BỘ MÔN TIN HỌC







TRƯỜNG ĐẠI HỌC HOA LƯ



Ví dụ, cho x, y là hai biến thực và gán x:=100/4; y:=-9/300; thì hai lệnh sau:

Writeln(‘ x= ‘, x); Writeln(‘ y= ‘, y);

sẽ in lên màn hình:

x = 2.5000000000E+01

y = -3.0000000000E-02

b. In có định dạng

* In số thực có định dạng:

In các số thực theo cách trên rất khó đọc. Vì thế các số thực thường được in có định

dạng, giống như cách viết số thông thường, bằng lệnh:

Writeln(biểuthức: n: k );

Ở đây n và k là các số tự nhiên, ấn định dùng n cột để in giá trị của biểu thức, trong đó

có k cột dành cho phần thập phân. Nếu số cần in có ít hơn n chữ số thì nó sẽ được in dồn

về bên phải và thêm các ký tự trắng ở bên trái cho đủ n cột.

Ví dụ, cho x, y là các biến kiểu thực và: x:=100/4; y:=-123.4824;

Hai lệnh sau: Writeln(‘ x=‘, x:6:2); Writeln(‘ y=‘, y:10:3); sẽ in lên màn hình:

x= 24.00 (trước số 2 có 1 ký tự trắng)

y= -123.482 (trước dấu - có 2 ký tự trắng)

Nếu n nhỏ hơn chiều dài của số cần in thì số sẽ được in ra với đầy đủ các chữ số trong

phần nguyên. Ví dụ, khi thực hiện các lệnh sau:

x:=12344.675; Writeln(‘x= ‘, x:0:2);

trên màn hình sẽ hiện: x=12344.68

Ở đây máy đã làm tròn số khi bỏ số lẻ cuối cùng.

* In kiểu nguyên, ký tự, chuỗi và lôgic có định dạng:

Dùng lệnh: Writeln(biểuthức: n);

trong đó n là số nguyên ấn định số cột dùng để in giá trị của biểu thức. Nếu n lớn hơn độ

dài của giá trị cần in thì giá trị sẽ được in dồn về bên phải, và thêm các khoảng trắng ở bên

trái cho đủ n cột. Nếu n nhỏ hơn độ dài của giá trị cần in thì giá trị sẽ được in nguyên văn.

Ví dụ:

Lệnh Write(5+40:4); in ra: 45 (có 2 ký tự trắng trước số 45)

Lệnh Write(5+40:1); in ra:45 (in nguyên văn giá trị 45)



Ngôn ngữ lập trình Pascal



23



BỘ MÔN TIN HỌC







TRƯỜNG ĐẠI HỌC HOA LƯ



Lệnh Write(‘Pascal’:9); in ra: Pascal (có 3 ký tự trắng trước chữ Pascal)

Lệnh Write(‘Pascal’:2); in ra:Pascal (in nguyên văn)

Lệnh Write(‘*’:3); in ra: * (có 2 ký tự trắng trước dấu *)

Các chú ý:

Nhóm ba lệnh: Write(x); Write(y); Write(j); chỉ có tác dụng như một lệnh:



o

Write(x,y,j);

o



Nhóm ba lệnh: Write(x); Write(y); Writeln(j); chỉ có tác dụng như một

lệnh: Writeln(x, y, j);



o



Lệnh: Writeln; không in gì cả, chỉ đơn giản là đưa con trỏ xuống dòng

dưới.



Ngôn ngữ lập trình Pascal



24



BỘ MÔN TIN HỌC



TRƯỜNG ĐẠI HỌC HOA LƯ







CÂU HỎI ÔN TẬP

Câu 1:Cho x, y, z là các biến kiểu thực, lệnh nào là sai:

a) x:=y+z;



b) Readln(x, y, z);



c) x+y:=z;



d) Writeln(x+y, z:0:2);



Câu 2: Cho x là biến kiểu thực, sau khi thực hiện hai lệnh: x:=10 ;Writeln(x);

Kết qủa in lên màn hình là:

a) 10;



b) 10.00;



c) 1.0000000000E+01;



d)+1.0000000000E+01;



Câu 3: Cho biến X kiểu thực và gán X:= 12.41 ;

Ðể in lên màn hình như sau: X= 12.41

chọn lệnh nào: a)Writeln(X); b)writeln(X:5); c)writeln('X= ', X:5:2); d)writeln('X=,

X:5:2');

Câu 4: Kiểu dữ liệu của biểu thức 4 div 6 + 6 / 3 + Ord(‘A’) là:

a) nguyên; b) lô gic; c) ký tư ; d) thực;

Câu 5: Cho khai báo: Var Ho, ten: String[15];

Lệnh nào sai:

a) Write(' Ho ten la: ' ; Ho ; Ten); b) Write(' Ho ten la: ' + Ho + Ten);

c) Write(' Ho ten la: ', Ho , Ten) ;



d) Write(' Ho ten la: ', Ho + Ten) ;



BÀI TẬP

Câu 1. Cho S là biến kiểu Boolean. Lệnh nào sai, lệnh nào đúng, nếu đúng thì cho biết giá

trị của S:

a) S:= 3*2; b) S:= 3< 2;

c) S:= 3< 2 and 6 - 5 =1; d) S:= (3< 2) and (6 - 5 =1);

Câu 2. Viết chương trình in lên màn hình như sau:

********************

* SOAN THAO CHUONG BANG *

* * * NGON NGU PASCAL * * * *

********************

Câu 3*. Nhập vào số xe (có bốn chữ số) trong biển số xe máy của bạn. Cho biết số xe của

bạn được mấy nước. Bạn là người may mắn nếu số nước = 9. Bạn có may mắn không ?.

Ví du: số xe là 4546, tổng các chữ số là 4+ 5 + 4 + 6 = 19.

19 mod 10 =9. Số nước là 9, may mắn.

Câu 3. Nhập họ tên, năm sinh, nơi sinh, phái (nam hay nữ) của một người. In lên màn hình

họ tên, năm sinh, nơi sinh, phái và tuổi của người đó.



Ngôn ngữ lập trình Pascal



25



BỘ MÔN TIN HỌC







TRƯỜNG ĐẠI HỌC HOA LƯ



Câu 4. Nhập họ tên (HT), mức lương tháng (ML) và phụ cấp (PC) của một người, tính

tổng thu nhập (TTN) của người đó:

TTN = ML + PC

Tính qũy bảo hiểm (QBH): QBH=15%*TTN

Tính tiền được lãnh (TIEN): TIEN=TTN - QBH

In họ tên, tổng thu nhập , quỹ bảo hiểm và tiền được lĩnh lên màn hình.

Câu 5. Nhập tên một vật tư, số lượng, đơn giá. Tính tiền và thuế giá trị gia tăng:

Tien =số lượng * đơn giá

Thuế = 10% Tiền

In tên vật tư, số lượng, đơn giá, tiền và thuế giá trị gia tăng lên màn hình, định dạng các

số lấy 2 số lẻ.



Ngôn ngữ lập trình Pascal



26



BỘ MÔN TIN HỌC







TRƯỜNG ĐẠI HỌC HOA LƯ



Bài 3: CÁC KIỂU DỮ LIỆU ĐƠN GIẢN

1. Khái niệm về kiểu dữ liệu

* Khái niệm

Chức năng của máy điện toán là xử lý các thông tin. Các thông tin được nhập và lưu trữ

trong bộ nhớ của máy dưới các dạng khác nhau: có thể là số, là chữ, có thể là hình ảnh, âm

thanh,.v.v. mà thuật ngữ tin học gọi chung là dữ liệu. Tính đa dạng của dữ liệu đòi hỏi phải

tổ chức và phân phối bộ nhớ thích hợp để lưu trữ và xử lý tốt các dữ liệu. Ngôn ngữ lập

trình chia các dữ liệu thành từng nhóm riêng trên đó xây dựng một số phép toán tạo nên

các kiểu dữ liệu khác nhau, mỗi kiểu dữ liệu là một tập hợp các giá trị mà một biến thuộc

kiểu đó có thể nhận. Khi một biến được khai báo thuộc kiểu dữ liệu nào thì máy sẽ dành

cho biến đó một dung lượng thích hợp trong bộ nhớ để có thể lưu trữ các giá trị thuộc kiểu

dữ liệu đó.

* Phân loại kiểu dữ liệu

Các kiểu dữ liệu trong ngôn ngữ Pascal được chia ra thành hai loại chính: loại đơn giản

và loại có cấu trúc.

Mỗi kiểu dữ liệu đơn giản là một tập các giá trị cơ sở có thứ tự. Ví dụ kiểu Integer gồm

các số nguyên nằm trong phạm vi từ -32768 đến 32767 và có thứ tự tự nhiên: -32768< ... <

-1 < 0 < 1 < ... < 32767 , kiểu lô gic chỉ có hai giá trị False, True với quy ước False < True.

Các kiểu dữ liệu có cấu trúc được xây dựng từ các kiểu dữ liệu đơn giản. Mỗi kiểu dữ

liệu có cấu trúc là một tập các phần tử thuộc kiểu dữ liệu đơn giản được tổ chức lại theo

một quy tắc nhất định .

Các kiểu dữ liệu đơn giản gồm có: kiểu nguyên, kiểu thực, kiểu lô gic, kiểu ký tự,

kiểu liệt kê và kiểu đoạn con.

Các kiểu dữ liệu có cấu trúc gồm có:kiểu mảng, kiểu bản ghi, kiểu tập hợp và kiểu

tập tin .

Riêng chuỗi ký tự (STRING) là một kiểu dữ liệu đặc biệt, vừa có tính đơn giản lại vừa

có tính cấu trúc. Mỗi chuỗi có thể xem là một giá trị, nhưng 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 dữ liệu đơn giản còn được phân thành hai loại: đếm được (Ordinal type) và

không đếm được. Kiểu thực thuộc loại không đếm được, các giá trị của nó dày đặc. Tất cả

các kiểu dữ liệu đơn giản còn lại: nguyên, ký tự, lô gic, liệt kê và đoạn con đều thuộc loại

đếm được (còn gọi là rời rạc).



Ngôn ngữ lập trình Pascal



27



BỘ MÔN TIN HỌC







TRƯỜNG ĐẠI HỌC HOA LƯ



Dưới đây sẽ lần lượt trình bày kỹ về 4 kiểu dữ liệu đơn giản chuẩn và thông dụng: kiểu

nguyên, kiểu thực, kiểu logic, kiểu ký tự . Kiểu chuỗi được giới thiệu để có thể sử dụng

ngay ở mức đơn giản.

2. Kiểu số nguyên

* Các kiểu số nguyên

Ngoài kiểu Integer là thông dụng nhất, các số nguyên còn được chia ra thành 4 kiểu nữa

đó là: Byte, Word, ShortInt và LongInt. Bảng 3.1 liệt kê chi tiết về tên gọi, phạm vi giá trị

và độ dài tính theo đơn vị byte của từng kiểu nguyên.

Tên kiểu



Phạm vi giá trị



Số byte



ShortInt



-128 .. 127



1



Byte



0..255



1



Integer



-32768 .. 32767



2



Word



0 .. 65535



2



LongInt



-2147483648 .. 2147483647



4



Các biến nguyên chỉ có thể nhận các giá trị là các số nguyên nằm trong phạm vi giá trị

của biến đó. Khi gán cho một biến một số nguyên nằm ngoài phạm vi của biến thì máy sẽ

báo lỗi: "Const out of range". Ví dụ, cho khai báo:

Var



i: Byte;N: Integer;



thì các lệnh dưới đây là đúng:

i:= 200;

N:= -1500;

còn các lệnh dưới đây là bị lỗi:

i:= -5;

N:= 50000;

Ðặc biệt không thể gán một số thực cho một biến nguyên. Câu lệnh sau là sai:

N:= 12.5 ;

Khi gặp tình huống này, máy sẽ báo lỗi "Type mismatch".

Chú ý:

Các số nguyên hệ thập lục phân (hệ 16) được biểu diễn bằng cách viết thêm dấu $ ở

trước số, ví dụ ba số dưới đây: $A , $FF và $10



Ngôn ngữ lập trình Pascal



28



Xem Thêm
Tải bản đầy đủ (.doc) (141 trang)

×