1. Trang chủ
  2. » Thể loại khác

chuong-2-bieu-thuc

65 11 0

Đ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 65
Dung lượng 1,25 MB

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

Nội dung

BÀI 1 MỞ ĐẦU 1 CHƯƠNG 2 1 CHƯƠNG 1 Chương 2 BIỂU THỨC (Expressions)  Dữ liệu (data) là tất cả những gì được máy tính xử lý Xét về phương diện điện tử thì máy tính chỉ hiểu các thông tin biểu diễn dướ[.]

Trang 1

CHƯƠNG 2

(Expressions)

Trang 2

 Dữ liệu (data) là tất cả những gì được máy tính xử lý

Xét về phương diện điện tử thì máy tính chỉ hiểu các thông tin biểu diễn dưới dạng mã nhị phân.

 Về phương diện ngôn ngữ bậc cao thì dữ liệu đã được

khái quát hóa thành các kiểu dữ liệu và ta không cần quan tâm đến biểu diễn chi tiết trong máy tính của các kiểu dữ liệu.

 Một ngôn ngữ lập trình khác nhau sẽ có kiểu dữ liệu

và cú pháp khác nhau.

2 Kiểu dữ liệu(Data type)

Trang 3

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 thuộc tính của một kiểu dữ liệu bao gồm:

Tên kiểu dữ liệu.

Miền giá trị.

Kích thước lưu trữ.

Tập các phép toán tác động lên kiểu dữ liệu.

2 Kiểu dữ liệu(Data type) -tt

Trang 4

Các kiểu dữ liệu cơ sở:

−Ký tự

−Số nguyên

−Số thực

−Kiểu liệt kê

Kích thước và phạm vi của những kiểu dữ liệu này

có thể thay đổi tùy theo loại CPU và trình biên dịch

2 Kiểu dữ liệu(Data type) -tt

Trang 5

2.1 Kiểu số nguyên

Từ khóa Phạm vi Kích

thước

Ghi chú

char -128  127 1 byte Có thể dùng như số nguyên

1 byte có dấu hoặc kiểu kí tự.

int -32768  32767 2 bytes Số nguyên

short int -32768  32767 2 bytes Số nguyên ngắn Có thể viết

tắt là short.

2147483647

4 bytes Số nguyên dài

unsigned char 0  255 1 byte Số nguyên 1 byte không dấu

hoặc kí tự

unsigned int 0  65535 2 bytes Có thể gọi tắt là unsigned.

unsigned long 0  4294967295 4 bytes

Trang 6

Cách biểu diễn số nguyên dưới dạng số Hexa

Ngoài cách viết dưới dạng thập phân, C++ còn quy ước cho phép viết số nguyên dưới dạng số bát phân (hệ đếm 8) bằng cách thêm 0 đầu, hoặc dưới dạng thập lục phân (hệ đếm 16) bằng cách thêm 0x

Trang 7

Hằng số nguyên có định trước kiểu

Đôi lúc chúng ta muốn ghi các hằng số với kiểu được định trước một cách tường minh để đảm bảo độ chính

xác bằng cách ghi thêm một kí tự vào cuối dãy số: L

cho kiểu long , U cho kiểu unsigned int và UL cho kiểu

unsigned long.

Ví dụ:

•52000U  hằng số nguyên theo kiểu unsigned int.

•123456789L  hằng số nguyên theo kiểu long.

•012345L  hằng số nguyên viết dưới dạng số hệ 8, kiểu long.

Trang 8

Ghi chú

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ác phép toán đó có cho kết quả vượt quá phạm vi biểu diễn của nó không Chẳng

hạn, với a và b là dữ liệu kiểu int, khi đó hai câu

lệnh sau:

a = 80;

b = (a*500)/200;

cho kết quả sai giá trị của b, vì a*500 = 40000 vượt

quá phạm vi của int

Tuy nhiên ta có thể viết:

b = (a*500L)/200;

Trang 9

2.2 Kiểu số thực

• Một giá trị kiểu số thực là một phần tử của tập các

số thực mà ta có thể biểu diễn được trên máy

• Có hai cách ghi hằng số thực:

Cách 1: Dạng viết thập phân bình thường, trong đó

dấu phẩy được thay bằng dấu chấm:

2.12; 4.0; -125.09; 235.55

Cách 1: Dạng viết có phần mũ hay còn gọi dạng

viết khoa học Gồm hai phần: phần định trị và

phần mũ viết sau chữ E để biểu diễn số mũ của cơ

số 10.

Trang 10

• -0.001234 = -1.234*10 -3 được viết là -1.234E-03

Lưu ý: Phần định trị và phần mũ đều có thể có dấu đi

kèm, chúng được viết liền nhau, không có dấu cách

ở giữa.

Trang 11

Trong C++ cho phép sử dụng các kiểu số

Lưu ý:

Cột phạm vi giá trị chỉ miền biến thiên trị tuyệt đối của số Chẳng hạn với số x kiểu float thì x có trị tuyệt đối nằm trong khoảng từ 3.4*10 -38 đến 3.4*10 38 Nếu > 3.4*10 38 thì

không biểu diễn x trong máy được , còn nếu < 3.4*10 -38 thì

x được coi là bằng không.

Trang 12

Cách viết đúng các hằng số thực

trị nếu có phần mũ

• 0.02e-3 chấp nhận dùng chữ e

Trang 13

Bảng tóm tắt các Kiểu dữ liệu

(Data type)

Trang 14

3 Định danh (Identifier Name)

Trong C/C++, tên biến, hằng, hàm,… được gọi là định danh

Những định danh này có thể là 1 hoặc nhiều ký

tự Ký tự đầu tiên phải là một chữ cái hoặc dấu _ (underscore), những ký tự theo sau phải là chữ cái, chữ số, hoặc dấu _

C/C++ phân biệt ký tự HOA và thường.

Định danh không được trùng với từ khóa

(keywords)

Trang 16

Câu l nh ệ

 Nhằm ra lệnh cho máy thực hiện;

 Mỗi câu lệnh sẽ có cú pháp và ý nghĩa riêng;

 Lệnh được kết thúc bằng “ ; “ (không phải hết

Trang 17

Bao gồm một biểu thức đơn giản và theo sau là

dấu chấm phẩy Các biểu thức có thể là mối quan

hệ giữa các phép toán, gọi hàm hoặc chỉ có dấu chấm phẩy Chẳng hạn, ta có các lệnh biểu thức sau:

Trang 18

• Lệnh kép bao gồm một số lệnh riêng lẻ được gói

trong cặp dấu { … } Những lệnh riêng lẻ này có thể là lệnh biểu thức, lệnh kép hay lệnh điều khiển Khác với lệnh biểu thức, lệnh kép không được kết thúc bởi dấu chấm phẩy Chẳng hạn:

Trang 19

Lệnh điều khiển bao gồm các câu lệnh như:

1 Lệnh rẽ nhánh: if

2 Lệnh Lựa chọn: switch

3 Lệnh lặp: for, while, do… while

(Phần này sẽ giải thích rõ trong chương 3)

Câu l nh ệ điều khi n ể

Trang 20

Câu lệnh Gán

Phép gán: dấu=“ dùng để gán giá trị của

một biểu thức cho một biến đã được khai báo.

Trang 22

5 Biến (Variables)

Biến là định danh của một vùng trong bộ nhớ dùng để giữ một giá trị mà có thể bị thay đổi bởi chương trình

Tất cả biến phải được khai báo trước khi sử dụng

Trang 23

Cách khai báo

type variableNames ;

−type: là một trong các kiểu dữ liệu hợp lệ

−variableNames: tên của một hay nhiều

biến phân cách nhau bởi dấu phẩy

Trang 24

Ngoài ra, ta có thể vừa khai báo vừa khởi tạo giá trị ban đầu cho biến:

type varName1=value, ,varName_n = value;

Ví dụ:

float mark1, mark2, mark3, average = 0;

Khởi tạo Biến

Trang 25

Việc khai báo biến nhằm ba công việc chính:

 dành vùng bộ nhớ để sử dụng

 đặt tên vùng đó bởi một tên gọi

 qui định kiểu dữ liệu cho biến.

Ngay trên dòng khai báo ta có thể gán cho biến một giá trị Việc làm này gọi là khởi đầu cho biến

Ý nghĩa của Biến

Trang 26

Phạm vi của biến

Biến cục bộ (local variables)

• Là những biến được định nghĩa ở trong một

hàm hoặc một khối lệnh.

• Được cấp phát bộ nhớ tự động (Auto)

• Tồn tại (life time) từ khi định nghĩa cho đến

khi kết thúc hàm hoặc khối lệnh

Trang 28

int sum(int from, int to)

Trang 29

Phạm vi của biến

 Biến toàn cục (global variables)

• Là những biến được định nghĩa ở ngoài tất cả các hàm.

• Được cấp phát bộ nhớ tự động (Auto)

• Tồn tại (life time) từ khi định nghĩa cho đến khi kết thúc chương

trình

• Biến toàn cục có thể được truy xuất mọi nơi trong chương trình

• Không gian bộ nhớ cho các biến toàn cục được dành riêng trước khi sự thực hiện của chương trình bắt đầu, nhưng ngược lại không gian bộ nhớ cho các biến cục bộ được cấp phát ở thời điểm thực hiện chương trình.

Trang 34

8 Hằng chuỗi ký tự (string constants)

Trang 35

Hằng ký tự đặc biệt

(escape sequences)

Trang 38

11 Chuyển đổi kiểu trong câu lệnh gán

• Vế phải và vế trái của lệnh gán phải cùng kiểu

Trang 39

11 Chuyển đổi kiểu trong câu lệnh gán

-tt

• Khi chuyển đổi từ kiểu dữ liệu có miền giá trị nhỏ sang kiểu dữ liệu có miền giá trị lớn

hơn:charintlongfloatdouble, thì việc chuyển đổi kiểu này là không mất mát thông tin

• Khi chuyển đổi từ kiểu dữ liệu có miền giá trị lớn sang kiểu dữ liệu có miền giá trị nhỏ

hơn:doublefloatlongintchar, thì việc chuyển đổi kiểu này là mất mát thông tin

Trang 41

12 Toán tử số học

(arithmetic operators) –tt

Khi tử số và mẫu số của phép chia là số nguyên thì đó là phép chia nguyên nên phần dư của phép chia nguyên bị cắt bỏ

Ví dụ:

5/2 cho kết quả là 2

Toán tử lấy phần dư % (modulus operator) chỉ

áp dụng với số nguyên.

Trang 44

14 Toán tử ++ và (increment and

decrement operators)

Toán tử tăng (++) và toán tử giảm ( ) có tác dụng làm tăng hoặc giảm 1 giá trị lưu trong biến

Ví dụ:

a++; //tương đương với a+=1; và a=a+1

a ; //tương đương với a-=1; và a=a-1

Trang 45

Toán tử ++/ đặt trước toán hạng, hành động

tăng/giảm trên toán hạng được thực hiện trước, sau đó giá trị mới của toán hạng sẽ tham gia định trị của biểu thức

Trang 46

Toán tử ++/ đặt sau toán hạng, giá trị trong toán

hạng được tăng/giảm sau khi đã tính toán

Ví dụ

b=3;a=b++;

Kết quả: a chứa giá trị 3, b chứa giá trị 4

Hậu tố (postfix)

Trang 48

• Khi các toán tử số học xuất hiện trong một biểu thức, thì độ ưu tiên thực hiện như sau:

Trang 49

15 Toán tử quan hệ & luận lý (relational & logical operators)

• Toán tử quan hệ được định trị là true hoặc false

Trang 51

• Độ ưu tiên của toán tử quan hệ và luận lý:

Trang 52

Ví dụ biểu thức:

(10>9 && 8!=7) || (6<=5 || 5>4)

Được định trị như sau:

Ví dụ

Trang 53

16 Toán tử ? (? operator)

 Toán tử ? là một toán tử ba ngôi do đó phải có ba toán hạng

 Dạng tổng quát của toán tử ? là:

Với Exp1, Exp2, và Exp3 là các biểu thức

Trang 55

17 Toán tử sizeof

• sizeof là toán tử một ngôi mà trả về số byte

của kiểu dữ liệu chiếm trong bộ nhớ Tùy môi trường (hệ điều hành, loại CPU, ) mà mỗi kiểu dữ liệu có số byte khác nhau

• Cú pháp:

sizeof ( operand )

thức

Trang 56

18 Toán tử dấu phẩy

(comma operator)

• Toán tử comma buộc các biểu thức cùng với nhau

• Biểu thức bên trái của toán tử comma luôn

luôn được định trị như void, biểu thức bên

phải được định trị và trở thành giá trị của biểu thức

• Dạng tổng quát của toán tử comma:

( exp_1, exp_2, , exp_n )

Trang 57

• Các biểu thức được định trị từ trái sang phải, biểu thức cuối cùng (exp_n) được định trị và trở thành giá trị của toàn bộ biểu thức

Trang 58

19 Độ ưu tiên của các toán tử

Trang 59

20 Biểu thức (expressions)

• Một biểu thức trong C/C++ là sự kết hợp của các thành phần: toán tử, hằng, biến, và hàm có trả về giá trị

• Thứ tự định trị của biểu thức tùy thuộc vào độ

ưu tiên của các toán tử

• Để biểu thức rõ ràng và thực hiện việc định trị đúng, nên dùng cặp dấu ngoặc tròn () bao quanh các biểu thức con của biểu thức

Trang 60

result = x * y - z % 10 + w/2;

Định trị biểu thức sau:

Trang 61

21 Chuyển kiểu trong biểu thức

• Khi các hằng và biến của những kiểu khác nhau tồn tại trong một biểu thức, giá trị của chúng phải được chuyển thành cùng kiểu trước khi các phép toán giửa chúng được thực hiện

• Trình biên dịch sẽ thực hiện việc chuyển kiểu (convert) tự động đến kiểu của toán hạng có kiểu lớn nhất Việc chuyển kiểu này gọi là thăng cấp kiểu (type promotion)

Trang 64

Ví dụ

Trang 65

result = ( float ) 7/2 ;

result = 7 /( float ) 2 ;

result = ( float ) 7 /( float ) 2 ;

result = float ( 7 )/ float ( 2 );

Các cách viết sau đây cho cùng kết quả:

Ngày đăng: 20/04/2022, 16:42

HÌNH ẢNH LIÊN QUAN

Bảng tóm tắt các Kiểu dữ liệu (Data type)(Data type) - chuong-2-bieu-thuc
Bảng t óm tắt các Kiểu dữ liệu (Data type)(Data type) (Trang 13)
Bảng tóm tắt các Kiểu dữ liệu (Data type)(Data type) - chuong-2-bieu-thuc
Bảng t óm tắt các Kiểu dữ liệu (Data type)(Data type) (Trang 13)
cout&lt;&lt; “Diện tích hình tròn là: “&lt;&lt;dt&lt;&lt; endl;  } - chuong-2-bieu-thuc
cout &lt;&lt; “Diện tích hình tròn là: “&lt;&lt;dt&lt;&lt; endl; } (Trang 18)
15. Toán tử quan hệ &amp; luận lý (relational &amp; logical operators) -tt - chuong-2-bieu-thuc
15. Toán tử quan hệ &amp; luận lý (relational &amp; logical operators) -tt (Trang 50)
• Bảng chân trị: - chuong-2-bieu-thuc
Bảng ch ân trị: (Trang 50)

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

TÀI LIỆU LIÊN QUAN

w