Bai 2- Kieu toan tu va bieu thuc.pdf

Embed Size (px)

Citation preview

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    1/43

    TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

    Ngôn ngữ lập trình C và C++

    Bài 2: Kiểu, toán tử và biểu thức

    TS. Đỗ Đăng Khoa

    Bộ môn Cơ học Ứng dụngViện Cơ Khí

    http://chud-dhbkhn.blogspot.com/

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    2/43

    Quy ước về đặt tên trong C/C++

    Áp dụng đặt tên cho hàm, biến, hằng, cấu trúc hay lớp:

    - Là dẫy ký liên tiếp bao gồm chữ cái và số và phải bắt đầubằng chữ cái hoặc gạch dưới ‘_’.

    - Không bao gồm các ký tự đặc biệt như toán tử: +,-,*,/

    - Không trùng với từ khóa

    TRƯỜNG ĐẠI HỌC

    BÁCH KHOA HÀ NỘI

    - Phân biệt chữ hoa, chữ thường

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    3/43

    Từ khóa

    Một số từ nhất định được dành cho mục đích riêng

    Có ý nghĩa đặc biệt trong ngữ cảnh của một ngôn ngữ cụ

    thể

    Sẽ không có xung đột nếu từ khóa và tên biến khác nhau

    TRƯỜNG ĐẠI HỌC

    BÁCH KHOA HÀ NỘI

    Ví dụ: từ integer cho tên bi n thì hoàn toàn hợp lệ ngay cảkhi mà từ khóa là int

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    4/43

    Kiểu dữ liệu

    Tên kiểu: là một từ dành riêng để chỉ định kiểu của dữ liệu.

    Số byte trong bộ nhớ: để lưu trữ một đơn vị dữ liệu thuộc

    kiểu này, phụ thuộc vào các trình biên dịch và hệ thống máy

    khác nhau.

    TRƯỜNG ĐẠI HỌC

    BÁCH KHOA HÀ NỘI

    Miền giá trị của kiểu: Cho biết một đơn vị dữ liệu thuộc kiểu

    này sẽ có thể lấy giá trị trong miền nào (giá trị nhỏ nhất và lớn

    nhất là bao nhiêu), phụ thuộc vào số byte mà hệ thống máy

    qui định cho từng kiểu.

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    5/43

    Kiểu dữ liệu cơ bản

    Kiểu dữ liệu cơ bản

    TRƯỜNG ĐẠI HỌC

    BÁCH KHOA HÀ NỘI

    void chardoublefloatint

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    6/43

    Kiểu dữ liệu cơ bản

    Kiểu số nguyên (int)• Lưu trữ dữ liệu số• int num;• Chiếm 16 bits (2 bytes) bộ nhớ• Biểu diễn các số nguyên trong phạm vi

    -32768 tới 32767Kiểu số thực (float)

    TRƯỜNG ĐẠI HỌC

    BÁCH KHOA HÀ NỘI

    • Lưu trữ dữ liệu s chứa ph n thập phân• float num;

    • Chiếm 32 bits (4 bytes) bộ nhớ

    • Ví dụ : 23.05, 56.5, 32

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    7/43

    Kiểu dữ liệu cơ bản

    Kiểu số thực (double)• Lưu trữ dữ liệu số chứa phần thập phân

    • double num;• Chiếm 64 bits (8 bytes) bộ nhớ

    • Ví dụ : 23.05, 56.5, 32

    TRƯỜNG ĐẠI HỌC

    BÁCH KHOA HÀ NỘI

    • Lưu trữ một ký tự đơn• char c;

    • Chiếm 8 bits (1 byte) bộ nhớ

    • Ví dụ: ‘a’, ‘m’, ‘$’ ‘%’ , ‘1’, ’5’

    Kiểu void: không lưu bất cứ dữ liệu gì, báo cho trình biên

    dịch không có giá trị trả về

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    8/43

    Những kiểu dữ liệu dẫn xuất

    Kiểu dữ liệu dẫn xuấtKiểu dữ liệucơ bản

    Bộ bổ từ (Modifiers)kiểu dữ liệu

    int unsigned intunsigned

    TRƯỜNG ĐẠI HỌCBÁCH KHOA HÀ NỘI

    intshort short int(chiếm ít bộ nhớ hơn int)

     

    int/doubleLong int /longdouble

    (chiếm nhiều bộ nhớ hơnint/double)

    long

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    9/43

    Kiểu dữ liệu

     Bảng kiểu dữ liệu có sẵn

    Loại   Kiểu dữ liệu Kích thước bộ nhớ (bit)Kí tự char    8

    wchar_t   16 (Unicode)Số short   16

    TRƯỜNG ĐẠI HỌCBÁCH KHOA HÀ NỘI

    long int 32 __intn   n = 8, 16, 32, 64 hoặc 128long   32long long   64 (tương đương __int64)

    Số thực float   32double   64long double   64

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    10/43

    Kiểu dữ liệu

    TRƯỜNG ĐẠI HỌCBÁCH KHOA HÀ NỘI

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    11/43

    Kiểu kí tự

     Một kí tự là một kí hiệu trong bảng mã ASCII (American

    Standard Code for Information Interchange – Mã chuẩn traođổi thông tin Hoa Kỳ)

     Biểu diễn một kí tự dùng mã của ký tự

    Cho kí tự ‘A’ tương đương cho kí tự 65 (mã ASCII của ‘A’)

    TRƯỜNG ĐẠI HỌCBÁCH KHOA HÀ NỘI

     

     Biến kiểu kí tự có thể nhận giá trị theo 2 cách:c = ‘A’ hoặc

    c = 65

     Bảng mã ASCII chuẩn có 128 kí tự. Bảng ASCII mở rộng

    (bảng mã ANSI) có 255 kí tự để bổ sung các phép toán,chữ có dấu, và các kí tự trang trí.

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    12/43

    Kiểu kí tự

    Ví dụ:

    char c, d ; // c, d được phép gán giá trị từ -128 đến 127

    unsigned e,f ; // e được phép gán giá trị từ 0 đến 255

    c = 65 ; d = 179 ; // d có giá trị ngoài miền cho phép

    e = 179; f = 330 ; // f có giá trị ngoài miền cho phép

     

    TRƯỜNG ĐẠI HỌCBÁCH KHOA HÀ NỘI

    cout

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    13/43

    Bảng mã ANSI

     Bộ mã ANSI không chứa đủ các kí tự thể hiện ngôn ngữ

    của nhiều quốc gia 

     tạo ra nhiều bộ mã ANSI cho mỗingôn ngữ.

     Các bộ mã mẫu thuẫn do dùng cùng một số để chỉ định hai

    kí tự khác nhau, hoặc con số khác nhau đ th hiện cùng

    TRƯỜNG ĐẠI HỌCBÁCH KHOA HÀ NỘI

    một kí tự. Máy tính cần hỗ trợ nhiều bộ mã.

     Dữ liệu có thể bị sai lạc khi được chuyển qua các bộ mã

    hoặc máy tính khác nhau.

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    14/43

    Bảng mã Unicode

     Bộ mã chuẩn quốc tế được thiết kế dùng làm bộ mã duy

    nhất cho tất cả các ngôn ngữ, kể cả những ngôn ngữ sửdụng ký tự tượng hình phức tạp như Trung Quốc, Thái Lan.

     Cung cấp một con số duy nhất

     Cho mỗi ký tự

    TRƯỜNG ĐẠI HỌCBÁCH KHOA HÀ NỘI

     Cho mọi hệ máy tính Cho mọi chương trình

     Cho mọi ngôn ngữ

     Chiếm 1.114.112 mã chữ, đã gán hơn 96000 mã chữ. 128

    kí tự đầu tiên theo ASCII.

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    15/43

    Bảng mã Unicode

     Không gian mã Unicode được chia thành 17 mặt phẳng,

    mỗi mặt phẳng có 65536 mã. Mặt phẳng đầu tiên [plane 0] (mặt phẳng đa ngôn ngữ căn

    bản - Basic Multilingual Plane) chứa các kí hiệu cho hầu

    hết các ngôn ngữ hiện đại, và một lượng lớn các kí tự đặc

    TRƯỜNG ĐẠI HỌCBÁCH KHOA HÀ NỘI

    biệt. Đa số được dùng để mã hóa các ngôn ngữ Hán-Nhật-Hàn-Việt.

     Mặt phẳng một [plane 1] (mặt phẳng đa ngôn ngữ bổ sung -

    Supplementary Multilingual Plane) dùng cho các chữ viết

    cổ như của Ai Cập

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    16/43

    Bảng mã Unicode

     Mặt phẳng hai [plane 2] dùng cho 40000 chữ Trung Quốc,

    đa số ký hiệu cổ. Mặt phẳng 14 hiện chứa một số các ký tự thẻ ngôn ngữ

    không được khuyến khích và một số ký hiệu lựa chọn biến

    th

    TRƯỜNG ĐẠI HỌCBÁCH KHOA HÀ NỘI

     Mặt phẳng 15 và mặt phẳng 16 được mở cho các sử dụngcá nhân.

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    17/43

    Hằng – Khai báo và sử dụng

    Hằng là một giá trị cố định nào đó.

     Hằng nguyên

    o  Mặc định theo hệ 10, thêm  0  trước là hệ 8, thêm 0xtrước là hệ 16.

    Ví dụ: 31 (hệ 10),   037 (hệ 8),   0x1f   hay 0x1F (hệ 16)

    TRƯỜNG ĐẠI HỌCBÁCH KHOA HÀ NỘI

    o   sung u t

    • l(L): long

    • u(U): unsigned   ul(lu): unsigned long

    Ví dụ:

    75 // int   75u   // unsigned int75l   // long   75ul   // unsigned long

    75lu   // unsigned long

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    18/43

    Hằng – Khai báo và sử dụng

    Vị trí dấuphảy phụ

    thuộc vào n

    TRƯỜNG ĐẠI HỌCBÁCH KHOA HÀ NỘI

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    19/43

    Hằng – Khai báo và sử dụng

     Hằng kí tự

    o  Kí tự có mặt chữ thể hiện   đặt mặt chữ giữa hai dấu

    nháy đơn, ‘ ‘.Ví dụ: ‘A’, ‘3’, ‘ ‘ (dấu cách)

    o   Sử dụng giá trị trong bảng mã (thuận tiện cho các kí tự

    TRƯỜNG ĐẠI HỌCBÁCH KHOA HÀ NỘI

    ng c m t c ữ

    Ví dụ:   65 (A), 51 (3), 32 (dấu cách)

    27 (Esc), 13 (Enter)

    o   Sử dụng giá trị dạng hệ 8 hoặc hệ 16

    0kkk hoặc ‘\kkk’   hệ 8, tối đa 3 chữ số0xkk hoặc ‘\xkk’   hệ 16, tối đa 2 chữ số

    Ví dụ: 65, 0101, 0x41 hoặc 'A' , '\101' , '\x41'

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    20/43

    Hằng – Khai báo và sử dụng

     Một số hằng kí tự thông dụng

    Kí tự Mô tả

    \n Kí tự xuống dòng

    \r Xuống dòng (Enter)

    \t tab

    TRƯỜNG ĐẠI HỌCBÁCH KHOA HÀ NỘI

    \f Kéo trang\a Chuông (loa kêu bíp)

    \' Nháy đơn (')

    \" Nháy kép (")

    \? Dấu chấm hỏi (?)

    \\ Dấu \

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    21/43

    Hằng – Khai báo và sử dụng

     Hằng xâu kí tự

    o   Dẫy kí tự bất kì nằm giữa hai dấu nháy kép, “ ”.

    Ví dụ: “Hello, world”, “A”, “” (xâu rỗng)o   Chiều dài xâu = số kí tự giữa hai dấu nháy kép

    o  Phân biệt kí tự ‘A’ và xâu “A”. Cùng biểu diễn chữ A

    TRƯỜNG ĐẠI HỌCBÁCH KHOA HÀ NỘI

    n ưng ược tr n c n au.

    Kí tự ‘A’ chiếm 1 byte

    Xâu “A” chiếm 2 byte. Một byte được dùng cho kí tự kết

    thúc xâu ‘\0’.

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    22/43

    Hằng – Khai báo và sử dụng

     Khai báo hằng

    o   Sử dụng tiền xử lý #define

    #define TÊN_HẰNG giá_trịVí dụ:

    #define MAX 100

    TRƯỜNG ĐẠI HỌCBÁCH KHOA HÀ NỘI

    e ne   n

    #define PI 3.14156

    o   Sử dụng từ khóa const

    const kiểu_dữ_liệu tên_hằng = giá_trị;

    Ví dụ:const char  NEWLINE = ‘\n’;

    const double PI = 3.14156;

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    23/43

    Biến – Khai báo và sử dụng

    Bộ nhớ

    TRƯỜNG ĐẠI HỌCBÁCH KHOA HÀ NỘI

    Dữ liệu

    Mỗi vị trí trong bộ nhớ là duy nhất

    Biến cho phép cung cấp một tên có ý nghĩa cho mỗi vị trí nhớ

    15

    Dữ liệutrong bộ

    nhớ

    15

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    24/43

    Biến – Khai báo và sử dụng

     Biến là các tên gọi để lưu giá trị.

     Giá trị được lưu có thể giá trị ban đầu, trung gian hoặc kết quả

    cuối cùng.

     Giá trị được lưu vào một ô nhớ trong bộ nhớ, kích thước ô nhớ

    (byte) tùy thuộc vào ki u dữ liệu của biến.

    TRƯỜNG ĐẠI HỌCBÁCH KHOA HÀ NỘI

     Tên biến giúp chúng ta truy cập vào bộ nhớ mà không cần dùngđịa chỉ của chúng

     Được khai báo trước khi sử dụng

     Trong C, các biến phải được khai báo ngay từ đầu chương trình

    hay đầu của hàm. Trong C++, có thể khai báo bất kỳ chỗ nào trước khi sử dụng

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    25/43

    Biến – Khai báo và sử dụng

     Khai báo

    • Kiểu tên_biến;

    • Kiểu tên_biến_1, tên_biến_2, tên_biến_3;int i;

    float f1, f2;

    TRƯỜNG ĐẠI HỌCBÁCH KHOA HÀ NỘI

    c n a o u n y sẽ c g tr n c ưa s

    dụng), giá trị nào đó nếu ô nhớ đã được sử dụng trước đó.

     - Khai báo có khởi tạo giá trị

    • Kiểu tên_biến = gt; // gt: hằng, biến hoặc biểu thức.

    • Kiểu tên_biến(gt); // C++int i = 5, j = 10, k = j, f = 5*i;

    double d(10.5);

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    26/43

    Biến – Khai báo và sử dụng

     Gán giá trị cho biến

    • Sử dụng toán tử gán, =.

    tên_biến = gt; // gt: hằng, biến hoặc biểu thức• Gán nhiều biến cùng một giá trị

    biến_1 = biến_2 = biến_3 = biến_4 = gt;

    TRƯỜNG ĐẠI HỌCBÁCH KHOA HÀ NỘI

    = = = ;

    • Gán trong một biểu thức

    m = j*(k=5);

    Tương đương với hai câu lệnh: k = 5; và m = j*k;

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    27/43

    Biến - Phạm vi biến

    int y = 38;

    void main( ){int z=47;

     while(z

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    28/43

    Phép toán

     Toán hạng

    Các thành phần tên tham gia trong phép toán

     Toán tửCác kí hiệu phép toán

     Phép toán 1 ngôi

    Toán Tử

    2 * y + 5

    TRƯỜNG ĐẠI HỌCBÁCH KHOA HÀ NỘI

    p to n c m t to n ạng

    Ví dụ: -a (lấy giá trị âm của a), &b (lấy địa chỉ 

    của b)

     Phép toán 2 ngôi

    • Phép toán trừ 2 ngôi: a – b• Phép toán lấy hội các bit 2 số nguyên: a & b

    - Phép toán 3 ngôi: a ? b : c

    Toán hạng

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    29/43

    Bốn Kiểu Toán Tử

    Số học(Arithmetic)

    Luận Lý(Logical)

    TRƯỜNG ĐẠI HỌCBÁCH KHOA HÀ NỘI

    Quan hệ(Relational)

    Nhị phân(Bitwise)

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    30/43

    Các phép toán số học: +, -, *, /, %

     Các phép toán + (cộng), - (trừ), * (nhân) có ý nghĩa như

    trong số học thông thông thường

     Phép toán / (chia) dựa theo kiểu của toán hạng   Hai toán hạng số nguyên kết quả lấy phần nguyên

      Một trong hai toán hạng thực kết quả là số thực

    TRƯỜNG ĐẠI HỌCBÁCH KHOA HÀ NỘI

    ụ:

    5/2 = 2

    5.0/2 = 5/2.0 = 5.0/2.0 = 2.5

     Phép toán % (lấy phần dư) trả lại phần dư của phép toán

    chia, /, hai toán hạng số nguyên5%2 = 1

    2%5 = 2

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    31/43

    Phép toán tăng và giảm: ++, --

     Phép toán ++, --, thực hiện tăng hoặc giảm 1 đơn vị

    i++ và ++i tương đương i = i + 1

     Sự khác nhau i++ và ++I khi nằm trong câu lệnh, biểu thức   i++: tăng i sau khi biểu thức tính toán xong

      ++i: tăng i, sau đó i mới tham gia vào biểu thức tính toán

    TRƯỜNG ĐẠI HỌCBÁCH KHOA HÀ NỘI

    ụ: =

    Phép toán Tương đương Kết quả

    i = j++; i = j; j = j + 1; i = 5, j = 6

    i = ++j; j = j + 1; i = j; i = 6, j = 6

    i = j++ + 7; i = j + 7; j = j + 1; i = 12, j = 6i = ++j + 7; j = j + 1; i = j + 7; i = 13, j = 6

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    32/43

    Toán tử quan hệ và luận lý (lôgic)

    Đây là các phép toán trả lại giá trị đúng (#0) và sai (=0)Ðược dùng để so sánh: biểu thức với biểu thức, biến với biến,

    biểu thức với biến, biến với hằng hoặc biểu thức với hằngToán tử quan hệ

    Toán tử Ý n hĩa

    TRƯỜNG ĐẠI HỌCBÁCH KHOA HÀ NỘI

     

    >   Lớn hơn>=   Lớn hơn hoặc bằng<   Nhỏ hơn

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    33/43

    Phép toán quan hệ và logic

     Phép toán quan hệ (ưu tiên sau phép toán số học)

      =

      ==, != (ưu tiên sau 4 phép toán trên) Phép toán logic

      && (và), || (hoặc) để kết hợp các điều kiện

    TRƯỜNG ĐẠI HỌCBÁCH KHOA HÀ NỘI

      p n

    a b a && b a || b !a

    1 1 1 1 0

    1 0 0 1 0

    0 1 0 1 10 0 0 0 1

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    34/43

    Phép toán thao tác nhị phân (bitwise)

     Cho phép thao tác các bit riêng biệt của một biến

     6 toán tử thao tác bit

    Toán tử Kí hiệu Cách viết Mô tảDịch trái x >> y Các bit trong x dịch phải y bit

    TRƯỜNG ĐẠI HỌCBÁCH KHOA HÀ NỘI

     

    NOT (Bù) ~ ~x Lấy phần bù của các bit trong x

    AND (Hội) & x & y Từng bit trong x AND từng bit trong y

    OR (Tuyển k

    loại trừ)  | x | y Từng bit trong x OR từng bit trong y

    XOR (Tuyểncó loại trừ)

      ^ x ̂ y Từng bit trong x XOR từng bit trong y

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    35/43

    Phép toán thao tác nhị phân (bitwise)

    Ví dụ:

    bit a bit b   a & b(a AND b) a | b(a OR b) a ^ b(a XOR b)   ~a

    0 0 0 0 0 1

    0 1 0 1 1

    TRƯỜNG ĐẠI HỌCBÁCH KHOA HÀ NỘI

    1 0 0 1 1 0

    1 1 1 1 0

    11001110& 10011000

    = 10001000

    11001110| 10011000

    = 11011110

    11001110^ 10011000

    = 01010110

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    36/43

    Phép toán thao tác nhị phân (bitwise)

    Ví dụ: dịch bit

    23 > 1 23/2 = 11

    TRƯỜNG ĐẠI HỌCBÁCH KHOA HÀ NỘI

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    37/43

    Toán tử gán và biểu thức

     Phép gán dạng x = x@a; được viết dưới dạng x @= a,

    trong đó @ là các phép toán số học, toán tử bit...

    x = x + 2;   x += 2;

    x = x - 2;   x -= 2;

    x = x * 2;   x *= 2;

    TRƯỜNG ĐẠI HỌCBÁCH KHOA HÀ NỘI

    x = x / 2;   x /= 2;x = x * (10 + c);   x *= 10 + c;

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    38/43

    Biểu thức điều kiện, ?

     Viết dưới dạng biểu thức 3 ngôi: e1 ? e2 : e3;

    e1: biểu thức logic

    e2, e3: biểu thức bất kỳ

    Phép toán thực hiện biểu thức e2 nếu điều kiện e1 đúng và

    thực hiện bi u thức e3 nếu ngược lại.

    TRƯỜNG ĐẠI HỌCBÁCH KHOA HÀ NỘI

    + Số lớn nhất của 2 sốa > b ? a : b;

    max = (a > b ? a : b);

    + Số lớn nhất của 3 số

    max = (a > b ? (a > c ? a : c) : (b > c ? b : c))

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    39/43

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

    Đề cập đến thứ tự thực thi các toán tử trong C/C++Độ ưu tiên của các toán tử này được thay đổi bởi các dấu

    ngoặc đơn trong biểu thức ()

    Loại toán tử Toán tử Tính kết hợp

    TRƯỜNG ĐẠI HỌCBÁCH KHOA HÀ NỘI

    t ng - ++ -- n tr  

    Hai ngôi ^ Trái đến phải

    Hai ngôi * / % Trái đến phải

    Hai ngôi + - Trái đến phải

    Hai ngôi = Phải đến trái

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    40/43

    Biểu thức

     Biểu thức là sự mô tả quan hệ giữa các toán hạng (hằng,

    biến, hàm), phép toán và cặp dấu () theo một quy tắc nhất

    định

     Giá trị của biểu thức được tính toán dựa theo thứ tự ưu tiên

    của các phép toán:

    TRƯỜNG ĐẠI HỌCBÁCH KHOA HÀ NỘI

    i. Các biểu thức trong cặp dấu ngoặc ()ii. Các phép toán 1 ngôi (++, --, &, * )

    iii. Các phép toán số học

    iv. Các phép toán quan hệ, logic

    v. Các phép gán

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    41/43

    Chuyển đổi kiểu

    Khi tính toán một biểu thức, phần

    lớn các phép toán đều yêu cầu các

    toán hạng phải cùng kiểu. Trườnghợp khác kiểu, chương trình sẽ tự

    động chuyển kiểu.

    TRƯỜNG ĐẠI HỌCBÁCH KHOA HÀ NỘI

    Kiểu dữ liệu thấp hơn sẽ đượcnâng thành kiểu cao hơn cho phù

    hợp với phép toán

    char ↔ int → long int → float →

    double

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    42/43

    Chuyển đổi kiểu

     Ép kiểu

     Khi chuyển kiểu tự động có thể không thực hiện được (thực

    nguyên) hoặc có thể mất dữ liệu (cao hơn thấp hơn).

    Ví dụ: int i;

    float f = 3;

    TRƯỜNG ĐẠI HỌCBÁCH KHOA HÀ NỘI

    i = f + 2; // f+2=5.0 nhưng không gán được cho i Ép kiểu để chuyển về kiểu mong muốn

    Cú pháp:   (tên_kiểu)biểu_thức

    tên_kiểu(biểu_thức)

    i = (int)(f + 2); hoặci = int(f + 2);

  • 8/19/2019 Bai 2- Kieu toan tu va bieu thuc.pdf

    43/43

    Thư viện các hàm toán học

    Các hàm số học

    abs(x), labs(x), fabs(x) : trả lại giá trị tuyệt đối của một số

    nguyên, số nguyên dài và số thực.pow(x, y) : hàm mũ, trả lại giá trị x lũy thừa y (xy).

    exp(x) : hàm mũ, trả lại giá trị e mũ x (ex).

     

    TRƯỜNG ĐẠI HỌCBÁCH KHOA HÀ NỘI

    og x , og x : r ạ gar cơ s e v gar p p n c a

    x (lnx, logx) .sqrt(x) : trả lại căn bậc 2 của x.

    atof(s_number) : trả lại số thực ứng với số viết dưới dạng xâu

    kí tự s_number.

    Các hàm lượng giác

    sin(x), cos(x), tan(x) : trả lại các giá trị sinx, cosx, tgx.