Giáo trình Tin học đại cương - Phần 2 - Chương 2: Các kiểu dữ liệu cơ sở và cách khai báo

1.1. Khái niệm dữ liệu

Dữ liệu là tất cả các thông tin có thật ñược máy tính xử lí. Chúng có nhiều dạng khác nhau,

thể hiện qua các ñối tượng cần xử lí nhưvăn bản, số liệu, âm thanh, hình ảnh,.

1.2. Kiểu dữ liệu

Kiểu dữliệu là tập hợp tất cả các giá trị mà một ñại lượng thuộc kiểu ñó có thể nhận ñược,

trên ñó xác ñịnh một số phép toán.

ðiều ñó có nghĩa là một ñại lượng (biến, hằng,.) chỉ có thể nhận một tập hợp các giá trị

nhất ñịnh (chứ không phải mọi giá trị có thể có) và trên tập hợp các giá trị ñó có xác ñịnh một

số phép toán. Chẳng hạn kiểu số nguyên thông thường chỉ nhận các giá trị trong phạm vi -2

15

ñến 2

15

-1, trên ñó có các phép toán số học +, -, *, /, div, mod và các phép so sánh =,<,>.

pdf7 trang | Chuyên mục: Pascal | Chia sẻ: dkS00TYs | Lượt xem: 2390 | Lượt tải: 2download
Tóm tắt nội dung Giáo trình Tin học đại cương - Phần 2 - Chương 2: Các kiểu dữ liệu cơ sở và cách khai báo, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
a số thực thông 
thường: +, -, *, / và các phép so sánh ( không có phép div và mod dành cho số thực ). 
- Cách viết số thực dạng dấu phảy ñộng: 
Trong máy tính số thực ñược viết dùng dấu chấm ñể ngăn giữa phần nguyên và phần lẻ 
thập phân. Trong dạng dấu phảy ñộng số thực ñược viết theo dạng: AE+b, trong ñó A gọi là 
phần ñịnh trị, E+b gọi là phần mũ. 
Ví dụ: Ta xem xét các cách viết khác nhau của cùng 1 số 
824.12345=8.2412345x102 hay 8.2412345E+2 
 =824123.45x10-3 hay 824123.45E-3 
Trong TURBO PASCAL, ngoài kiểu số thực ñược khai báo với từ khoá real nói trên còn có 
các kiểu số thực khác ( xem bảng ) phục vụ cho các mục ñích tính toán với ñộ lớn và ñộ chính 
xác khác nhau 
Kiểu 
 ( từ khoá ) 
Phạm vi biểu diễn Chữ số có nghĩa Kích thước ( byte ) 
Single 1.5E-45..3.4E+38 7-8 4 
Real 2.9E-39..1.7E+38 11-12 6 
Double 5.0E-324..1.7E+308 15-16 8 
Extended 3.4E-4932..1.1E+4932 19-20 10 
Trường ðại học Nông nghiệp 1 - Giáo trình Tin học ñại cương --------------------------------------------- 119 
 119 
* Các hàm số học chuẩn dùng cho kiểu số nguyên và số thực: ðây là những hàm ñược ñịnh 
nghĩa sẵn trong TURBO PASCAL, ta có thể sử dụng như các công cụ ñể tính toán 
Tên hàm ( trong TP ) 
Cho kết quả ( hàm) 
ABS(X) | X (giá trị tuyệt ñối của X) 
SQR(X) X2 ( X bình phương) 
SQRT(X) X
 (căn bậc 2 của X ) 
LN(X) lnX (Logarit Nepe) 
EXP(X) eX 
SIN(X) sinX ; X cho bằng radian 
COS(X) cosX; X cho bằng radian 
ARCTAN(X) arctangX 
SUCC(n) n+1 ( số tiếp theo của n ) , n nguyên 
PRED(n) n-1 ( số kề trước của n ) , n nguyên 
TRUNC(X) cắt, cho phần nguyên của X 
ROUND(X) Làm tròn phần lẻ của X 
2.3. Kiểu kí tự 
 Kiểu kí tự là tập hợp tất cả các kí tự của bảng mã máy tính ( ASCII ) 
Từ khoá Char 
Có thể sử dụng các phép toán so sánh ñối với kiểu kí tự, kí tự nào ñứng trước theo thứ tự của 
bảng mã máy tính sẽ ñược coi là nhỏ hơn, kí tự ñứng sau ñược xem là lớn hơn 
Ví dụ: 'a' < 'b' 
Hằng kí tự ñược viết trong cặp dấu nháy ' ' 
Các hàm dùng cho kiểu kí tự: 
Tên hàm ( trong TP ) 
Cho kết quả ( hàm) 
ORD(C) cho số thứ tự của kí tự C trong bảng mã 
CHR(n) cho kí tự có số thứ tự là n 
SUCC(C) cho kí tự ñứng kề sau 
PRED(C) cho kí tự ñứng kề trước 
2.4. Kiểu logic (Boolean) 
Từ khoá Boolean 
Các phép toán logic: NOT , AND, OR, XOR 
Các phép toán so sánh: =, , ... 
Kiểu logic boolean chỉ có 2 giá trị : True và False 
Người ta ñịnh nghĩa: False < True 
Trường ðại học Nông nghiệp 1 - Giáo trình Tin học ñại cương --------------------------------------------- 120 
 120 
 2.5. Kiểu liệt kê (Enumerated scalar type) 
 Là kiểu cho phépngười lập trình có thể tự ñịnh nghĩa ra các kiểu vô hướng bằng cách liệt kê 
các giá trị của kiểu vô hướng ra thông qua các tên do người lập trình tạo ra. Danh sách các giá 
trị này ñược ñặt trong ngoặc ñơn và ñược mô tả bằng một tên kiểu trong phần mô tả (Phần 
TYPE). 
 Từ khoá: TYPE 
 Ví dụ: 
 TYPE 
 Boolean=(False, True); 
 Color=(Red, Blue, Green, While, Black); 
Một biến vô hướng có thể ñịnh nghĩa thông qua các kiểu ñã ñược mô tả trong phần TYPE 
như sau: 
 VAR 
 Ketqua: Boolean; 
 Mau1, Mau2: Color; 
Hoặc khai bái trực tiếp với mô tả kiểu dữ liệu: 
 VAR 
 Gioitinh: (Nam, nu); 
 Ngay: (Chunhat, Hai, Ba, Tu, Nam, Sau, Bay); 
Ví dụ: 
 Ketqua:= True; 
 Mau1:=Blue; 
 Gioitinh:=Nam; 
 Ngay:=Chunhat; 
2.6. Kiểu khoảng con (Sub- range Type) 
 Là kiểu vô hướng ñược dụng khi một biến chỉ ñược láy giá trị trong một khoảng (xác ñịnh 
bởi cận trên và cận dưới). 
• Quy tắc ñịnh nghĩa: 
Hang_can_duoi..Hang_can_tren; 
Trong ñó: Hang_can_duoi < Hang_can_tren, và cùng kiểu. 
• Tác dụng: - Tiết kiệm ô nhớ. 
- Có thể kiểm tra giá trị của biến khi chạy chương trình không ñược vượt ra khỏi giới hạn 
của khoảng con. 
Ví dụ: 
TYPE 
 Ngay= (Chunhat, Hai, Ba, Tu, Nam, Sau, Bay); 
Chu_cai_hoa='A'..'Z'; 
VAR 
 ch: Chu_cai_hoa; 
 Ngay_lam_viec: Hai..Bay; 
Trường ðại học Nông nghiệp 1 - Giáo trình Tin học ñại cương --------------------------------------------- 121 
 121 
3. Các khai báo 
3.1. Khai báo ñơn vị 
 ðơn vị là một kiểu tổ chức của chương trinh Pascal, trong ñó có các chương trình con, nhằm 
thực hiện một một chức năng nào ñó. Ta khai báo các ñơn vị sử dụng trong chương trình theo 
cú pháp sau: 
 Uses Tên_ñơn_vi; 
 CRT là ñơn vị chuẩn quản lý màn hình, bàn phím; GRAPH là ñơn vị ñồ họa. PRINTER là 
ñơn vị khai báo máy in, máy in ñược cài ñặt tên là LST. 
 Ví dụ 1: Uses crt; 
 Ví dụ 2: Uses crt, graph, printer; 
3.2. Khai báo nhãn 
 Nhãn là một tên trong Pascal. Nhãn dùng ñánh dấu một câu lệnh trong chương trình ñể có 
thể chuyển ñiều khiển tới ñó. Khai báo nhãn trong chương trình theo cú pháp sau: 
 Label Tên_nhãn; 
 Cách ñánh dấu nhãn cho câu lệnh như sau: 
 Tên_nhãn : Câu lệnh; 
Ví dụ: 
 Label Tiep; 
 . . . 
 Tiep : Readln(x); 
3.3. Khai báo hằng 
Hằng là ñại lượng không thay ñổi giá trị trong quá trình xử lí. Ta khai báo hằng theo cú 
pháp: 
const Tên_hằng=Giátrị ; 
ở ñó: Tên_hằng do ta ñặt ra, Giátrị là giá trị mà tên hằng sẽ nhận và giữ không ñổi suốt 
quá trình xử lí. 
Ví dụ: const n=10; { khai báo hằng số nguyên n=10} 
 pi=3.1416; { khai báo hằng số pi } 
 ki_tu='Y'; { khai báo hằng kí tự ki_tu nhận kí tự Y} 
3.4. Khai báo kiểu 
 Khai báo kiểu là ñịnh nghĩa một kiểu dữ liệu do người sử dụng tạo ra. Khai báo kiểu có cú 
pháp sau: 
 Type Tên_kiẻu = Mô_ tả_kiểu; 
 Ví dụ: Type Mau = (do, xanh, vang, tim, nau); 
 Type Phuong_tien_GT = (xe_dap, xe_may, o_to, tau_hoa); 
 Type Tuoi_nguoi = 1..300; 
Trường ðại học Nông nghiệp 1 - Giáo trình Tin học ñại cương --------------------------------------------- 122 
 122 
3.5. Khai báo biến 
Biến là ñại lượng có thể thay ñổi giá trị trong quá trình xử lí. Biến của chương trình là tên 
của ô nhớ cất giữ dữ liệu. Muốn sử dụng biến nào ta phải khai báo trước biến ñó bằng cách 
viết tên biến trong phần khai báo ở ñầu chương trình sau từ khoá Var. 
Cú pháp: 
Var Tên_biến:Kiểu_dữ_liệu; 
ở ñó: Tên_biến do ta ñặt ra, Kiểu_dữ_liệu là tên của một trong các kiểu dữ liệu của 
TURBO PASCAL, dấu hai chấm bắt buộc phải có ñể ngăn giữa 2 phần của khai báo, dấu 
chấm phảy kết thúc dòng khai báo. Các biến có cùng kiểu có thể ñược khai báo cùng nhau 
bằng cách viết các tên biến cách nhau bởi dâú phảy (,), nhóm các biến khác kiểu nhau ñược 
viết cách nhau bởi dấu ; 
Ví dụ: Var i:integer; { khai báo một biến có tên là I, biến này có kiểu nguyên} 
 x,y,z:real; { khai báo 3 biến x,y,z nhận các giá trị có kiểu thực } 
 t: char; { khai báo biến t có kiểu kí tự } 
 kiem_tra:boolean; { khai báo biến logic } 
 Tuoi: 1..300; 
ðối với mỗi bài toán, khi phân tích thuật toán, ta phải xác ñịnh rõ ngay chương trình cần phải 
nhập vào các dữ kiện gì ? các kết quả trung gian nào cần phải ñược chứa, dữ liệu ra là những 
gì?... ñể từ ñó có phần khai báo chính xác, không bị thiếu mà cũng không thừa gây lãng phí ô 
nhớ (!) 
4. Biểu thức và câu lệnh 
4.1. Biểu thức 
 Biểu thức là một công thức tính toán ñể có một giá trị theo một công thức toán học nào ñó. 
Một biểu thức bao gồm các toán tử kết hợp với các toán hạng. 
Các toán tử trong TURBO PASCAL gồm: các phép toán số học ( +, -, *, / ), các phép so sánh 
( =, , ...), các phép toán logic ( NOT, AND, OR); 
Các toán hạng: gồm các hằng, các biến, các hàm ñược dịnh nghĩa trong TURBO PASCAL 
Thứ tự ưu tiên các phép toán như sau: 
1. dấu ngoặc ( ) nội dung viết trong dấu ngoặc ñược ưu tiên thực hiện trước nhất 
2. phép lấy ñối ( - ), phép NOT 
3. các phép tính loại nhân, chia: *, /, DIV, MOD, AND 
4. các phép tính loại cộng, trừ: +, -, OR 
5. các phép so sánh: +, , , ... 
 Chú ý: Biểu thức trong Pascal chỉ ñược viết trên 1 dong do ñó phải chú ý dùng các dấu ( ) ñể 
viết cho chính xác. 
 Ví dụ: Biểu thức toán học viết là: 
ab
acb
21
42
+
−
 Trong Pascal viết là: (b*b- 4*a*c)/(1+sqrt(2*a*b)) 
 Biểu thức toán học viết là: 
1sin2
cossin2
+
++
x
xx
 Trong Pascal viết là: (2+ sqrt (sin(x)+cos(x)))/(2* sin(x)+1) 
Trường ðại học Nông nghiệp 1 - Giáo trình Tin học ñại cương --------------------------------------------- 123 
 123 
4.2. Câu lệnh 
 Câu lệnh xác ñịnh công việc, thao tác mà chương trình phải thực hiện ñể xử lí các dữ liệu ñã 
mô tả, khai báo. Các lệnh viết cách nhau bởi dấu (;), TURBO PASCAL phân loại các lệnh 
như sau: 
- Lệnh ñơn: là các lệnh không chứa các lệnh khác 
- Lệnh có cấu trúc: thường chứa nhiều hơn một lệnh ñơn, bao gồm khối lệnh, các lệnh thử và 
rẽ nhánh, các lệnh lặp. 
- Lệnh hợp thành ( còn gọi là lệnh phức hay lệnh ghép ): gồm một nhóm các lệnh ñược ñặt 
giữa cặp từ khoá begin ... end; ( dấu chấm phảy (;) kết thúc chứ không phải dấu chấm ) như 
sau: 
 begin 
 lệnh1; 
 lệnh2; 
 ... 
 lệnhn; 
 end; 
Dạng lệnh này cho ta thấy tính có cấu trúc của TURBO PASCAL. Một nhóm các lệnh giải 
quyết trọn vẹn một công việc nào ñó sẽ ñược tổ chức trong một khối lệnh dạng này, và từng 
công việc của bài toán lớn sẽ ñược giao cho từng người làm trước khi ghép lại ñể giải bài toán 
tổng thể. Chúng ta sẽ ñề cập kĩ hơn về vấn ñề này ở phần chương trình con ( thủ tục và hàm ). 
Bài tập chương 2 
 Hãy viết các khai báo biến cho các bài toán sau: 
1. Tính n giai thừa: n! =1.2...n với n>1 
2. Tính các tổng: S=1/2 + 1/4 +...+ 1/(2k) 
 Q=1.1!+2.2!+...+n.n! 
3. Tìm và in ra tất cả các số chính phương nhỏ hơn một số cho trước, cho biết có bao nhiêu số chính phương như vậy. 
4. Viết chương trình giải bài toán cổ: " Vừa gà vừa chó, bó lại cho tròn, ba mươi sáu con, một trăm chân chẵn. Hỏi có bao nhiêu gà, bao 
nhiêu chó?" 
5. Viết chương trình tìm ước số chung lớn nhất của 2 số nguyên dương cho trước. 
6. Tính Ex=1
1 2
2
+ + + + +
x x x
n
n
! !
...
!
... với ñộ chính xác ε=10-4 ( ABS(xn/n!) < ε ), giá trị x ñược nhập vào từ bàn 
phím khi chạy chương trình. 
7. Cần có 50000 ñ từ các loại giấy bạc 1000ñ, 2000ñ và 5000ñ. Tìm tất cả các phương án có thể. 
8. Chuyển một số thập phân nguyên dương thành một số nhị phân, in ra màn hình dạng 
X10 = Y2 

File đính kèm:

  • pdfGiáo trình Tin học đại cương - Phần 2 - Chương 2_Các kiểu dữ liệu cơ sở và cách khai báo.pdf