You are on page 1of 70

Trườ ng ĐH Khoa Họ c Tự Nhiên Tp.

Hồ Chí Minh
TRUNG TÂM TIN HỌC

Nhập môn lập trình


Bài 1- Các khái niệm cơ bản

2015
Mục tiêu
- Hiểu đượ c tổ ng quan ngô n ngữ lậ p trình C/C++
- Cô ng cụ lậ p trình
- Cấ u trú c và cá ch thự c thi chương trình
- Tậ p ký tự , từ khó a, quy tắ c đặ t tên
- Câ u lệnh, chú thích
- Kiểu dữ liệu cơ sở
- Biến, hằ ng, biểu thứ c
- Toá n tử , ép kiểu
- Cá c hà m thư viện C/C++ chuẩ n

Nhậ p mô n lậ p trình 2
1. Lịch sử của ngôn ngữ C/C++
 C đượ c tạ o bở i Dennis Ritchie ở Bell Telephone
Laboratories và o nă m 1972.
 Và o nă m 1983, họ c viện chuẩ n quố c gia Mỹ
(American National Standards Institute - ANSI)
thà nh lậ p mộ t tiểu ban để chuẩ n hó a C đượ c
biết đến như ANSI Standard C
 C++ đượ c xây dự ng trên nền tả ng ANSI
Standard C
 C++ là mộ t ngô n ngữ lậ p trình hướ ng đố i tượ ng,
nó bao hà m cả ngô n ngữ C

Nhậ p mô n lậ p trình 3
2. Kỹ thuật để giải quyết một bài toán
 Mộ t chương trình máy tính đượ c thiết kế để giả i
quyết mộ t bà i toá n nà o đó . Vì vậy, nhữ ng bướ c
cầ n để tìm kiếm lờ i giả i cho mộ t bà i toá n cũ ng
giố ng như nhữ ng bướ c cầ n để viết mộ t
chương trình.
 Cá c bướ c gồ m:
- Xá c định yêu cầ u củ a bà i toá n
- Đưa ra thuậ t toá n (dù ng mã giả , hoặ c lưu đồ )
- Cà i đặ t (viết) chương trình
- Thự c hiện chương trình và kiểm chứ ng

Nhậ p mô n lậ p trình 4
3.Các bước trong chu trình phát triển
chương trình

Nhậ p mô n lậ p trình 5
3.Các bước trong chu trình phát triển
chương trình
 Nhậ p mã nguồ n (source code)
- Mã nguồ n là tậ p lệnh dù ng để chỉ dẫ n máy
tính thự c hiện cô ng việc do ngườ i lậ p trình
đưa ra
- Tậ p tin mã nguồ n có phầ n mở rộ ng .cpp (C+
+)
 Biên dịch mã nguồ n (compile)
- Chương trình viết bằ ng ngô n ngữ cấ p cao
C/C++ đượ c biên dịch sang mã máy bằ ng
mộ t chương trình dịch(compiler)

Nhậ p mô n lậ p trình 6
3.Các bước trong chu trình phát triển
chương trình
 Liên kết cá c tậ p tin đố i tượ ng tạ o cá c tậ p tin
thự c thi (executable file).
- C/C++ có mộ t thư viện hà m đượ c tạ o sẵ n
- Tậ p tin đố i tượ ng do trình biên dịch tạ o ra
kết hợ p vớ i mã đố i tượ ng để tạ o tậ p tin thự c
thi, quá trình này đượ c tạ o bở i bộ liên kết
(Linker)
 Thự c hiện chương trình

Nhậ p mô n lậ p trình 7
3.Các bước trong chu trình phát triển
chương trình
 Thự c hiện chương trình
- Chương trình nguồ n đượ c biên dịch và liên
kết sẽ tạ o nên tậ p tin thự c thi và thự c thi tạ i
dấ u nhắ c hệ thố ng
- Nếu chương trình có lổ i phả i đượ c chỉnh sử a
và biên dịch lạ i.
- Quá trình 4 bướ c sẽ đượ c lậ p lạ i cho đến khi
tậ p tin thự c thi thự c hiện đú ng yêu cầ u bà i
toá n

Nhậ p mô n lậ p trình 8
4. Khảo sát một chương trình C/C++ đơn
giản
// my first program in C/C++
#include <conio.h>
#include <iostream.h>
int main()
{
cout << "Hello World!"; //Output “Hello World!”
getch();
return 0;
}

Nhậ p mô n lậ p trình 9
4. Khảo sát một chương trình C/C++ đơn
giản
// my first program in C/C++ :
dò ng chú thích, khô ng ả nh hưở ng đến hoạ t độ ng
củ a chương trình
#include <iostream.h>:
Cá c lệnh bắ t đầ u bằ ng dấ u # gọ i là chỉ thị tiền xử lý
(preprocessor)

Nhậ p mô n lậ p trình 10
4. Khảo sát một chương trình C/C++ đơn
giản
int main():
- Hà m main là điểm mà tấ t cả cá c chương trình
C/C++ bắ t đầ u thự c hiện.
- Hà m main khô ng phụ thuộ c và o vị trí củ a hà m
- Nộ i dung trong hà m main luô n đượ c thự c hiện
đầ u tiên khi chương trình đượ c thự c thi
- Chương trình C/C++ phả i tồ n tạ i hà m main()
- Nộ i dung củ a hà m main() tiếp sau phầ n khai
bá o chính thứ c đặ t trong cặ p dấ u { }

Nhậ p mô n lậ p trình 11
4. Khảo sát một chương trình C/C++ đơn
giản
- cout << "Hello World!“:
Đây là mộ t lệnh nằ m trong phầ n thâ n củ a hà m
main
- Cout: là mộ t dò ng (stream) xuấ t chuẩ n C/C++
đượ c định nghĩa trong thư viện iostream.h Khi
dò ng lệnh thưc thi thì dò ng lệnh Hello Word!
đượ c xuấ t ra mà n hình
- getch(): dù ng để chờ nhậ p mộ t ký tự từ bà n
phím.
- return 0: lệnh kết thú c hà m main trả về mã đi
sau nó .

Nhậ p mô n lậ p trình 12
5. Các chú thích
 Cá c chú thích đượ c cá c lậ p trình viên sử dụ ng
để ghi chú hay mô tả trong cá c phầ n củ a chuong
trình.
 Trong C/C++ có hai cá ch để chú thích:
 Chú thích dò ng: dù ng cậ p dấ u //.
 Chú thích khố i (chú thích trên nhiều dò ng)
dù ng cặ p /* ... */.

Nhậ p mô n lậ p trình 13
5. Các chú thích
/* My second program in C/C++ with more comments

Author: Novice programmer


Date: 01/01/2008
*/
#include <conio.h>
#include <iostream.h>
int main()
{
cout << "Hello World! "; // output Hello World!
cout << "I hate C/C++."; // output I hate C/C++.
getch();
return 0; Nhậ p mô n lậ p trình 14
6. Cấu trúc của một chương trình C/C++
 Cấ u trú c mộ t chương trình C/C++ gồ m: cá c tiền
xử lý, khai bá o biến toà n cụ c, hà m main…

Nhậ p mô n lậ p trình 15
6. Cấu trúc của một chương trình C/C++

Nhậ p mô n lậ p trình 16
7. Các tập tin thư viện thông dụng
 Đây là cá c tậ p tin chứ a định nghĩa cá c hà m
thô ng dụ ng khi lậ p trình C/C++.
 Muố n sử dụ ng cá c hà m trong cá c tậ p tin
header này thì phả i khai bá o #include
<FileName.h> ở phầ n đầ u củ a chương trình, vớ i
FileName.h là tên tậ p tin thư viện.

Nhậ p mô n lậ p trình 17
7. Các tập tin thư viện thông dụng
 Cá c tậ p tin thư viện thô ng dụ ng gồ m:
1. Stdio.h(C), iostream.h(C++): định nghĩa cá c
hà m và o ra chuẩ n như cá c hà m xuấ t dữ liệu
(printf())/cout), nhậ p giá trị cho biến
(scanf())/cin), nhậ n ký tự từ bà n phím
(getc()), in ký tự ra mà n hình (putc()), nhậ p
mộ t chuỗ i ký tự từ bà m phím (gets()), xuấ t
chuỗ i ký tự ra mà n hình (puts())
2. Conio.h: định nghĩa cá c hà m và o ra trong chế
độ DOS, như clrscr(), getch(), …

Nhậ p mô n lậ p trình 18
7. Các tập tin thư viện thông dụng
1. math.h: Định nghĩa cá c hà m toá n họ c như:
abs(), sqrt(), log(), log10(), sin(), cos(), tan(),
acos(), asin(), atan(), pow(), exp(), …
2. alloc.h: định nghĩa cá c hà m và o ra cấ p thấ p
gồ m cá c hà m open(), _open(), read(),
_read(), close(), _close(), creat(), _creat(),
creatnew(), eof(), filelength(), lock(), …

Nhậ p mô n lậ p trình 19
BIỂU THỨC
(Expressions)

Nhậ p mô n lậ p trình 20
1. Khái niệm về biểu thức
 Biểu thứ c là mộ t sự kết hợ p giữ a cá c toá n tử
(operator) và cá c toá n hạ ng (operand) theo
đú ng mộ t trậ t tự nhấ t định.
 Mỗ i toá n hạ ng có thể là mộ t hằ ng, mộ t biến hoặ c
mộ t biểu thứ c khá c.
 Trong trườ ng hợ p, biểu thứ c có nhiều toá n tử , ta
dù ng cặ p dấ u ngoặ c đơn ( ) để chỉ định toá n tử
nà o đượ c thự c hiện trướ c.

Nhậ p mô n lậ p trình 21
2. Kiểu dữ liệu(Data type)
 C/C++ có cá c kiểu dữ liệu cơ sở :
− Ký tự (char)
− Số nguyên (int)
− Số thự c (float)
− Số thự c có độ chính xá c gấ p đô i (double)
− Kiểu bool
− Kiểu vô định (void).
 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.
Nhậ p mô n lậ p trình 22
2. Kiểu dữ liệu(Data type)
 Kiểu char chứ a giá trị củ a bộ mã ASCII
(Amercican Standard Code for Information
Interchange). Kích thướ c là 1 byte.
 Kích thướ c củ a kiểu int là 16 bits (2 bytes) trên
mô i trườ ng 16-bit như DOS và 32 bits (4 bytes)
trên mô i trườ ng 32-bit như Windows 95
 Kiểu void dù ng để khai bá o hà m khô ng trả về giá
trị hoặ c tạ o nên cá c con trỏ tổ ng quá t (generic
pointers).

Nhậ p mô n lậ p trình 23
2. Kiểu dữ liệu(Data type)

Nhậ p mô n lậ p trình 24
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).

Nhậ p mô n lậ p trình 25
4. Từ khóa (keywords)
 Là nhữ ng từ đượ c dà nh riêng bở i ngô n ngữ lậ p
trình cho nhữ ng mụ c đích riêng củ a nó
 Tấ t cả cá c từ khó a trong C/C++ đều là chữ
thườ ng (lowercase).
 Danh sá ch cá c từ khó a trong C/C++

Nhậ p mô n lậ p trình 26
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.
 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.

Nhậ p mô n lậ p trình 27
5. Biến (variables)
 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;

Nhậ p mô n lậ p trình 28
6. Phạm vi của biến
 Biến cục bộ (local variables)
− Nhữ ng biến đượ c khai bá o bên trong mộ t hà m
gọ i là biến cụ c bộ .
− Cá c biến cụ c bộ chỉ đượ c tham chiếu đến bở i
nhữ ng lệnh trong khố i (block) có khai bá o biến.
− Mộ t khố i đượ c đặ t trong cặ p dấ u { }.
− Biến cụ c bộ chỉ tồ n tạ i trong khi khố i chứ a nó
đang thự c thi và bị hủ y khi khố i chứ a nó thự c
thi xong.

Nhậ p mô n lậ p trình 29
6. Phạm vi của biến
Ví dụ :
void func1(void)
{
int x;
x = 10;
}

void func2(void)
{
int x;
x = -199;
}
Nhậ p mô n lậ p trình 30
6. Phạm vi của biến
 Tham số hình thức(formal parameters)
− Nếu mộ t hà m có nhậ n cá c đố i số truyền và o
hà m thì nó phả i khai bá o cá c biến để nhậ n
giá trị củ a cá c đố i số khi hà m đượ c gọ i.
− Nhữ ng biến này gọ i là cá c tham số hình
thứ c. Nhữ ng biến này đượ c sử dụ ng giố ng
như cá c biến cụ c bộ .

Nhậ p mô n lậ p trình 31
6. Phạm vi của biến
Ví dụ :
int sum(int from, int to)
{
int total=0;
for(int i=from ; i<=to ; i++)
total +=i;
return total;
}

Nhậ p mô n lậ p trình 32
6. Phạm vi của biến
 Biến toàn cục (global variables)
− Biến toà n cụ c có phạ m vi là toà n bộ chương
trình.
− Tấ t cả cá c lệnh có trong chương trình đều có
thể tham chiếu đến biến toà n cụ c.
− Biến toà n cụ c đượ c khai bá o bên ngoà i tấ t cả
hà m.

Nhậ p mô n lậ p trình 33
6. Phạm vi của biến
#include <iostream.h>
int gVar = 100;
void increase()
{ gVar = gVar + 1;}
void decrease()
{ gVar = gVar -1;}
void main()
{
cout << “Value of gVar= “ << gVar; increase();
cout << “After increased, gVar= “ << gVar; decrease();
cout << “After decreased, gVar= “ << gVar;
}
Nhậ p mô n lậ p trình 34
7. Từ khóa const
 Giá trị củ a biến thay đổ i trong suố t quá trình
thự c thi chương trình.
 Để giá trị củ a biến khô ng bị thay đổ i, ta đặ t trướ c
khai bá o biến từ khó a const.
 Thô ng thườ ng ta dù ng chữ HOA để đặ t tên cho
nhữ ng biến này.
Ví dụ :
const int MAX = 200;

Nhậ p mô n lậ p trình 35
8. Hằng (constants)
 Hằ ng là nhữ ng giá trị cố định (fixed values)
mà chương trình khô ng thể thay đổ i. Mỗ i kiểu
dữ liệu đều có hằ ng tương ứ ng. Hằ ng cò n đượ c
gọ i là literals.
 Hằ ng ký tự đượ c đặ t trong cặ p nháy đơn.
Ví dụ : 'a’
 Hằ ng nguyên là nhữ ng số mà khô ng có phầ n
thậ p phâ n.
Ví dụ 100 , -100

Nhậ p mô n lậ p trình 36
8. Hằng (constants)
1. Hằ ng số thự c yêu cầ u mộ t dấ u chấ m phâ n
cá ch phầ n nguyên và phầ n thậ p phâ n.
Ví dụ : 123.45
2. Cá ch viết mộ t số loạ i hằ ng số

Nhậ p mô n lậ p trình 37
8. Hằng chuỗi ký tự (string constants)
 Hằ ng chuỗ i ký tự là mộ t tậ p cá c ký tự đặ t trong
cặ p nháy kép “”.
Ví dụ :
• "This is a string" //là mộ t chuỗ i.
• ‘a’ //là mộ t hằ ng ký tự .
• “a” //là mộ t hằ ng chuỗ i.

Nhậ p mô n lậ p trình 38
9. Hằng ký tự đặc biệt(escape sequences)

Nhậ p mô n lậ p trình 39
9. Hằng ký tự đặc biệt(escape sequences)
#include <iostream.h>
void main(void)
{
cout <<"Items:\n";
cout <<”\tItem1\n”;
cout <<”\tItem2\n”;
cout <<”\tItem3\n”;
}

Nhậ p mô n lậ p trình 40
10. Toán tử (operators)
 Toán tử gán (assignment operator)
Cú phá p tổ ng quá t
variableName = expression;
− variableName: Tên biến
− expression: Biểu thứ c
Lưu ý: phía bên trá i dấ u = phả i là mộ t biến hay con
trỏ và khô ng thể là hà m hay hằ ng.
Ví dụ :
total = a + b + c + d;

Nhậ p mô n lậ p trình 41
11. Chuyển đổi kiểu trong câu lệnh gán
1. Đố i vớ i câ u lệnh gá n, giá trị củ a biểu thứ c bên
phả i dấ u = đượ c tự độ ng chuyển thà nh kiểu dữ
liệu củ a biến bên trá i dấ u =
Ví dụ :
int i=100;
double d = 123.456;
2. Nếu thự c thi lệnh i = d; thì i = 123 (chuyển đổ i
kiểu mấ t má t thô ng tin).
3. Nếu thự c thi lệnh d = i; thì d =100.0 (chuyển
đổ i kiểu khô ng mấ t má t thô ng tin).

Nhậ p mô n lậ p trình 42
11. Chuyển đổi kiểu trong câu lệnh gán
1. 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
2. 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

Nhậ p mô n lậ p trình 43
12. Toán tử số học (arithmetic operators)

Toán tử Tên Ví dụ

+ Cộng 12 + 4.9 // kết quả


16.9
- Trừ 3.98 - 4 // kết quả -
0.02
* Nhân 2 * 3.4 // kết quả 6.8

/ Chia 9 / 2.0 // kết quả 4.5

% Lấy phần dư 13 % 3 // kết quả 1

Nhậ p mô n lậ p trình 44
12. Toán tử số học (arithmetic operators)
1. 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.
2. Toá n tử lấy phầ n dư % (modulus operator) chỉ
á p dụ ng vớ i số nguyên.

Nhậ p mô n lậ p trình 45
13. Toán tử gán phức hợp
Toán Tử Ví dụ Tương đương với

+= n += 25 n = n + 25

-= n -= 25 n = n – 25

*= n *= 25 n = n * 25

/= n /= 25 n = n / 25

%= n %= 25 n = n % 25

Nhậ p mô n lậ p trình 46
13. Toán tử gán phức hợp
#include <iostream.h>
int main ()
{
int a, b=3;
a = b;
a+=2; // tương đương vớ i a=a+2
cout << a;
return 0;
}

Nhậ p mô n lậ p trình 47
14. Toán tử ++ và -- (increment and decrement
operators)

1. 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.
2. 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

Nhậ p mô n lậ p trình 48
14. Toán tử ++ và -- (increment and decrement
operators)

Toá n tử tă ng/giả m có 2 dạ ng:


1. Tiền tố (prefix): 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.
2. Ví dụ :
B=3;
A=++B;
Kết quả : A chứa giá trị 4, B chứa giá trị 4

Nhậ p mô n lậ p trình 49
14. Toán tử ++ và -- (increment and decrement
operators)

1. Hậu tố (postfix): 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.
2. Ví dụ :
B=3;
A=B++;
Kết quả : A chứ a giá trị 3, B chứ a giá trị 4

Nhậ p mô n lậ p trình 50
14. Toán tử ++ và -- (increment and decrement
operators)

Ví dụ :
int x = 100;
int n,m;
n = ++x + 1; // n sẽ có giá trị là 102 (1)
n = x++ + 1; // n sẽ có giá trị là 101 (2)
1. Sau lệnh (1), (2) thì x có giá trị là 101
m = --x + 1; // m sẽ có giá trị là 100 (3)
m = x-- + 1; // m sẽ có giá trị 101 (4)
2. Sau lệnh (3), (4) thì x có giá trị là 99

Nhậ p mô n lậ p trình 51
14. Toán tử ++ và -- (increment and decrement
operators)

1. 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:

Toán tử Độ ưu tiên
++ – – 1
– (dấu âm) 2
* / % 3
+ – 4

Nhậ p mô n lậ p trình 52
15. Toán tử quan hệ & luận lý (relational & logical
operators)

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


false.
Toán tử Tên Ví dụ
== So sánh bằng 5 == 5 // kết quả 1
!= So sánh không bằng 5 != 5 // kết quả 0
< So sánh nhỏ hơn 5 < 5.5 // kết quả 1
<= So sánh nhỏ hơn hoặc bằng 5 <= 5 // kết quả 1
> So sánh lớn hơn 5 > 5.5 // kết quả 0
>= So sánh lớn hơn hoặc bằng 6.3 >= 5 //kết quả1

Nhậ p mô n lậ p trình 53
15. Toán tử quan hệ & luận lý (relational & logical
operators)

1. Toá n tử luậ n lý:


Operator Action Ví dụ
! Not !(5 == 5) // kết quả là 0
&& and 5 < 6 && 6 < 6// kết quả là 0
|| or 5 < 6 || 6 < 5 // kết quả là 1
2. Bả ng châ n trị:
P Q P&&Q P||Q !P
0 0 0 0 1
0 1 0 1 1
1 0 0 1 0
1 1 1 1 0
Nhậ p mô n lậ p trình 54
15. Toán tử quan hệ & luận lý (relational & logical
operators)

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


Toán tử Độ ưu tiên
! 1
> >= < <= 2
== != 3
&& 4
|| 5

Nhậ p mô n lậ p trình 55
15. Toán tử quan hệ & luận lý (relational & logical
operators)

Ví dụ biểu thứ c:
(10>9 && 8!=7) && (6<=5 || 5>4)
Đượ c định trị như sau:

Nhậ p mô n lậ p trình 56
16. Toán tử ? (? operator)
1. Toá n tử ? là mộ t toá n tử ba ngô i do đó phả i có
ba toá n hạ ng.
2. Dạ ng tổ ng quá t củ a toá n tử ? là :
Exp1 ? Exp2 : Exp3;
3. Exp1, Exp2, và Exp3 là cá c biểu thứ c.
4. Ý nghĩa:
− Nếu Exp1 đú ng thì Exp2 đượ c định trị và nó
trở thà nh giá trị củ a biểu thứ c.
− Ngượ c lạ i, nếu Exp1 sai, Exp3 đượ c định trị
và trở thà nh giá trị củ a biểu thứ c.

Nhậ p mô n lậ p trình 57
16. Toán tử ? (? operator)
Ví dụ :
X = 10
Y = X > 9 ? 100*X : 200*X
Vì X>9 là true nên giá trị củ a biểu thứ c sẽ là
1000. Vậy y sẽ có giá trị là 1000.
Ví dụ :
int m = 1, n = 2, p =3;
int min =(m < n ? (m < p ? m : p) : (n < p ? n : p));

Nhậ p mô n lậ p trình 58
17. Toán tử sizeof
1. 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.
2. Cú phá p:
sizeof(operand)
3. operand: có thể là tên kiểu dữ liệu, biến, biểu
thứ c.

Nhậ p mô n lậ p trình 59
18. Toán tử dấu phẩy (comma operator)
1. Toá n tử comma buộ c cá c biểu thứ c cù ng vớ i
nhau.
2. 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.
3. Dạ ng tổ ng quá t củ a toá n tử comma:
(exp_1, exp_2, ..., exp_n)

Nhậ p mô n lậ p trình 60
18. Toán tử dấu phẩy (comma operator)
1. 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.
2. Ví dụ :
x = (y=3, y+1);
Y đượ c gá n giá trị 3, sau đó x đượ c gá n giá trị y+1
là 4.

Nhậ p mô n lậ p trình 61
19. Độ ưu tiên của các toán tử

Nhậ p mô n lậ p trình 62
20. Biểu thức (expressions)
1. 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ị.
2. 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ử .
3. Để 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.

Nhậ p mô n lậ p trình 63
20. Biểu thức (expressions)
1. Ví dụ : định trị biểu thứ c sau:
result = x * y - z % 10 + w/2;

Thứ tự định trị biểu thức

Nhậ p mô n lậ p trình 64
21. Chuyển kiểu trong biểu thức
1. 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.
2. 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).

Nhậ p mô n lậ p trình 65
21. Chuyển kiểu trong biểu thức
1. Ví dụ :
char ch;
int i;
float f;
double d;

Nhậ p mô n lậ p trình 66
22. Ép kiểu (casting)
1. Casting dù ng để ép kiểu củ a mộ t biểu thứ c
thà nh mộ t kiểu theo ý muố n củ a lậ p trình viên.
2. Dạ ng tổ ng quá t củ a casting là
(type)expression
Hoặ c type(expression)
type: là tên mộ t kiểu dữ liệu hợ p lệ.

Nhậ p mô n lậ p trình 67
22. Ép kiểu (casting)
Ví dụ :
float result;
result = 7/2;
1. Do 7/2 là phép chia nguyên nên kết quả khô ng
có phầ n thậ p phâ n.
2. Sau lệnh trên result có giá trị là 3. Để phép chia
trên là phép chia số thự c ta thự c hiện ép kiểu
tử số hoặ c mẫ u số hoặ c cả hai.

Nhậ p mô n lậ p trình 68
22. Ép kiểu (casting)
1. Ví dụ : Cá c cá ch viết sau đây cho cù ng kết quả :
result = (float)7/2;
result = 7/(float)2;
result = (float)7/(float)2;
result = float(7)/float(2);

Nhậ p mô n lậ p trình 69
Thảo luận

Nhậ p mô n lậ p trình 70

You might also like