
KIỂU SỐ NGUYÊN
lượt xem 7
download

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 6.1 liệt kê chi tiết về tên gọi, phạm vi gía trị và độ dài tính theo đơn vị byte của từng kiểu nguyên. Các biến nguyên chỉ có thể nhận các gía trị là các số nguyên nằm trong phạm vi gía 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"....
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: KIỂU SỐ NGUYÊN
- KIỂU SỐ NGUYÊN 6.2.1. Các kiểu số nguyên : Phạm vi gía trị Số byte Tên kiểu ShortInt -128 .. 127 1 Byte 0..255 1 Integer -32768 .. 32767 2 Word 0 .. 65535 2 LongInt -2147483648 .. 4 2147483647 Bảng 6.1 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 6.1 liệt kê chi tiết về tên gọi, phạm vi gía trị và độ dài tính theo đơn vị byte của từng kiểu nguyên. Các biến nguyên chỉ có thể nhận các gía trị là các số nguyên nằm trong phạm vi gía 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 đướ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 là các số nguyên viết trong hệ 16. Chúng có gía trị tương ứng trong hệ 10 là: 10 , 255 và 16 6.2.2. Các phép toán 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 *, ví dụ 4*2 cho kết qủa là 8. Phép chia : ký hiệu bằng dấu / , ví dụ 6/4 cho kết qủa là 1.5. Phép chia lấy phần nguyên : ký hiệu bằng từ khóa DIV. Phép lấy phần dư nguyên của phép chia: ký hiệu bằng từ khóa MOD. Ví dụ: 15 DIV 6 cho kết qủa là 2. 15 MOD 6 cho kết qủa là 3.
- Các phép toán trên đều cho kết qủa là các số nguyên, trừ ra phép chia ( / ) luôn cho kết qủa là một số thực. Vì thế nếu N là một biến nguyên, mà gán : N:= 20/5; thì máy sẽ báo lỗi, bởi vế phải có gía trị kiểu thực (=4.0) mặc dù phần lẻ bằng không. Nhận xét : số nguyên N là chẵn nếu N mod 2 = 0 (tức N chia hết cho 2), ngược lại, là lẻ nếu N mod 2 0. (dấu trong Pascal có nghĩa là khác nhau ). Thứ tự thực hiện các phép toán cũng giống như thường lệ: Các biểu thức trong (...) được tính trước tiên Kế đến là *, /, div, mod Sau cùng là +, - Ðối với các phép toán cùng thứ tự mà đứng liền nhau thì phép toán nào đứng trước được làm trước.
- Ví dụ: tính biểu thức sau : 15 mod (2 +4) * 20 div (10 div 4) + 40 mod ( 5* 3) =15 mod 6 * 20 div 2 + 40 mod 15 = 3 * 20 div 2 + 10 = 60 div 2 + 10 = 30 + 10 = 40 Ví dụ sau đây là một ứng dụng của các phép toán div, mod : Ví dụ 6.1: Nhập một số tiền N đồng, đổi ra xem được bao nhiêu tờ 5 đồng, bao nhiêu tờ 2 đồng, bao nhiêu tờ 1 đồng sao cho tổng số tờ là ít nhất. Ví dụ N=43 đ = 8 tờ 5 đ + 1 tờ 2 đ + 1 tờ 1 đ. Cách tính như sau : Số tờ 5 đ = 43 div 5 = 8 Số tiền dư = 43 mod 5 = 3 Số tờ 2 đ = Số tiền dư div 2 = 3 div 2 =1 Số tờ 1 đ = Số tiền dư mod 2 = 3 mod 2 = 1
- Dưới đây là chương trình cụ thể : PROGRAM VIDU61; { Ðổi tiền } Var N, st5, st2, st1, sodu : LongInt; Begin Write(‘ Nhap so tien : ’); Readln(N); st5 := N div 5; Sodu := N mod 5; { tính phần dư } st2 := Sodu div 2; st1 := Sodu mod 2; Writeln(‘ KET QUA DOI TIEN LA: ’ ) ; Writeln(‘ So to 5đ= ‘, st5); Writeln(‘ So to 2đ= ‘, st2);
- Writeln(‘ So to 1đ=‘, st1); Readln; End. Chạy Chép tập tin nguồn 6.2.3. Các phép toán so sánh : Ngôn ngữ Pascal có sáu phép toán so sánh được liệt kê trong bảng 6.2 . Ký hiệu Ý nghĩa Ví d ụ bằng nhau = x=y khác nhau xy nhỏ hơn < x= x>=y
- Bảng 6.2 Kết qủa của các biểu thức so sánh là một gía trị lôgic Ðúng (TRUE) hoặc Sai (FALSE). Ví dụ: Biểu thức 5*2=10 cho kết qủa là TRUE. Biểu thức 5+2 7 cho kết qủa là FALSE. Biểu thức 6 div 2 > 10 div 3 cho kết qủa là FALSE. 6.2.4. Các phép toán lôgic trên s ố nguyên : Các phép tính NOT, AND, OR, XOR xử lý các bít nhị phân được xác định như sau ( bảng 6.3 ): NOT 1 = 1 AND 1 OR 1=1 1 XOR 0 1=1 1=0 NOT 0 = 1 AND 1 OR 0=1 1 XOR 1 0=0 0=1 0 AND 0 OR 1=1 0 XOR 1=0 1=1
- 0 AND 0 OR 0=0 0 XOR 0=0 0=0 Bảng 6.3 Mỗi số nguyên được biểu diễn trong máy dưới dạng một dãy các bít nhị phân. Số kiểu Integer được biểu diễn bằng 16 bit. Ví dụ, số 1 và số 2 có biểu diễn trong máy lần lượt là : 0000 0000 0000 0001 0000 0000 0000 0011 Phép lấy NOT một số nguyên sẽ đảo tất cả các bít biểu diễn số nguyên đó, tức là 0 thành 1, còn 1 thành 0. Ví dụ: NOT 1 = 1111 1111 1111 1110 NOT 2 = 1111 1111 1111 1100 Phép lấy AND, OR, XOR hai số nguyên được tiến hành bằng cách AND, OR, XOR từng cặp bít tương ứng của hai số đó, ví dụ: 1 OR 2 = 0000 0000 0000 0011= 2
- 1 AND 2 = 0000 0000 0000 0001= 1 6.2.5. Các phép dịch chuyển số học SHR và SHL : N SHR k : dịch các bít của số nguyên N sang phải đi k bít. N SHL k : dịch các bít của số nguyên N sang trái đi k bít. Có thể chứng minh được : N SHR k = N div 2k N SHL k = N * 2k Ví dụ: 120 shr 4 = 7, vì : 120 shr 4 = 120 div 24 = 120 div 16 = 7. 120 shl 3 = 960, vì : 120 shl 3 = 120 * 23 = 120 * 8 = 960. Hai phép toán SHR và SHL được dùng khi muốn tăng tốc độ tính toán trên các số nguyên.
- 6.2.6. Các hàm có đối số nguyên : Hàm PRED(k) : đối số k nguyên, trả về số nguyên đứng ngay trước k, tức là k-1 . Ví dụ: Pred (5) = 4, Pred (-6) = -7. Hàm SUCC(k) : đối số k nguyên, trả về số nguyên đứng ngay sau k, tức là k+1 . Ví dụ: Succ (5) = 6, Succ (-6) = -5. Nhận xét : Lệnh k:=k+1; tương đương với lệnh k:=Succ(k); Lệnh k:=k-1; tương đương với lệnh k:=Pred(k); Hàm ODD(k) : đối số k nguyên, trả về gía trị logic là TRUE nếu k lẻ, là FALSE nếu k chẵn. Ví dụ: Odd(15) = True
- Odd(4) = False. Ví dụ 6.2 : Nhập số nguyên N, nếu N chẵn thì in ra chữ chẵn, nếu N lẻ thì in ra chữ le? Chương trình như sau : PROGRAM VIDU62; Var N : Integer; Begin Write(‘Nhap so N :’); Readln(N); If Odd(N) = TRUE then write(N, ‘ La so le’) else write(N, ‘ La so chan’); Readln; End. Chạy
- Chép tập tin nguồn 6.2.7. Các thủ tục có đối số nguyên: Có hai thủ tục khá thông dụng là: Thủ tục INC(k) : tăng k lên một đơn vị. Ví dụ, sau khi thực hiện các lệnh : k:=5; Inc(k); thì gía trị sau cùng của k là 6. Vậy, lệnh Inc(k); tương đương với lệnh k:=k+1; hay k:=Succ(k); Thủ tục DEC(k) : giảm k đi một đơn vị. Ví dụ, sau khi thực hiện các lệnh : k:=5; Dec(k); thì gía trị của k sẽ là 4. Vậy, lệnh Dec(k) ; tương đương với lệnh k:=k-1; hay k:=Pred(k);

CÓ THỂ BẠN MUỐN DOWNLOAD
-
Chương 7 (Phần 1): Mảng một chiều
51 p |
162 |
22
-
Bài giảng Cơ sở lập trình - Chương 5: Kiểu dữ liệu mảng
56 p |
172 |
21
-
Tìm hiểu về Các kiểu dữ liệu cơ sở
71 p |
117 |
12
-
Bài giảng Nhập môn lập trình - Chương 3: Các kiểu dữ liệu cơ sở
46 p |
71 |
7
-
Bài giảng Cơ sở lập trình 1: Chương 2 - Lê Quý Tài
59 p |
66 |
5
-
Bài giảng Lập trình C: Chương 2 - Ngô Công Thắng
10 p |
74 |
5
-
Bài giảng Lập trình C căn bản: Chương 3 - Phạm Thế Bảo
68 p |
25 |
5
-
Bài giảng Nhập môn lập trình - Bài 3: Các kiểu dữ liệu cơ sở
47 p |
70 |
4
-
Bài giảng Lập trình hướng đối tượng (Object-Oriented Programming) - Chương 1-2: Các kiểu dữ liệu cơ bản trong C++
12 p |
11 |
3
-
Bài giảng Hệ thống máy tính và ngôn ngữ C: Chương 2 - TS. Nguyễn Phúc Khải
24 p |
7 |
3
-
Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 2: Các kiểu dữ liệu và thao tác (GV. Nguyễn Nhật Nam)
36 p |
27 |
3
-
Bài giảng Hệ thống máy tính và ngôn ngữ lập trình - Chương 2: Các kiểu dữ liệu và thao tác
24 p |
46 |
3
-
Bài giảng môn Lập trình hướng đối tượng: Chương 10 - TS. Nguyễn Văn Hiệp
24 p |
38 |
3
-
Bài giảng Bài 7: Cải tiến chương trình đồ họa liệt kê các số nguyên tố
15 p |
67 |
3
-
Bài giảng Lập trình cơ bản - Chương 2: Biến và kiểu dữ liệu
27 p |
45 |
3
-
Bài giảng Lập trình nâng cao (Advanced Programming) - Chương 2: Các kiểu dữ liệu cơ sở
5 p |
6 |
2
-
Bài giảng Kỹ thuật lập trình: Chương 3 - Trần Quang
52 p |
24 |
2


Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn
