Tải bản đầy đủ (.pdf) (25 trang)

Bài giảng Phương pháp lập trình - Chương 1: Nhập môn về máy tính và lập trình

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (7.87 MB, 25 trang )

27/12/201111

Giới thiệu
• Mục tiêu mơn học

MƠN HỌC

Cung cấp cho sinh viên kiến thức căn bản về kỹ thuật lập
trình và lập trình theo tiếp cận hướng đối tượng, một
phương pháp lập trình rất thơng dụng hiện nay.

PHƯƠNG PHÁPLẬP TRÌNH

• Nội dung




1

Một số thuật ngữ liên quan đến máy tính và lập trình.
Sơ lược về ngơn ngữ lập trình
Ngơn ngữ minh họa Pseudo code và C/C++
Các giải thuật cơ bản

• Kỹ năng tư duy và thực hành trên ngôn ngữ cụ thể.
2

Phương thức
• Phương thức học


CHƯƠNG 1: NHẬP MƠN VỀ
MÁY TÍNH VÀ LẬP TRÌNH

• Giờ lý thuyết: giảng và báo cáo
• Giờ thực hành tại phịng máy

• Kiểm tra và thi
• Kiểm tra thực hành: kỹ năng lập trình
• Thi lý thuyết : trắc nghiệm khách quan

• Tài liệu tham khảo
• Slide bài giảng Lập Trình Căn Bản
• Giáo trình Phương Pháp Lập trình – Khoa CNTT

• Tài liệu khác
• CDROM bài tập và thực hành

3

4

1


27/12/201111

NỘI DUNG
1.
2.
3.

4.
5.
6.
7.
8.

Hệ thống số, các quy tắc chuyển đổi
Các khái niệm cơ bản
Các thành phần cơ bản trong ngôn ngữ C++
Các kiểu dữ liệu trong C++
Biến, hằng, cách khai báo
Lệnh xuất nhập
Định dạng kết quả xuất
Các toán tử

HỆ THỐNG SỐ- CÁC QUY TẮC
CHUYỂN ĐỔI

55

Biểu diễn số trong các hệ đếm
• Hệ đếm là tập hợp các ký hiệu và qui tắc sử
dụng tập ký hiệu đó để biểu diễn và xác định
các giá trị các số. Mỗi hệ đếm có một số ký số
(digits) hữu hạn. Tổng số ký số của mỗi hệ đếm
gọi là cơ số (base hay radix), ký hiệu là b.
• b ≥ 2, b là số ngun dương

7


6

Hệ đếm thập phân (Decimal system,
b=10)
Ví dụ:
• Số 123 được biểu diễn như sau:
• 123 = 1 * 102 + 2 * 101 + 3*100
• Số 5246 có thể được biểu diễn như sau:
• 5246 = 5 * 103 + 2 *102 + 4 * 101 + 6 * 100
= 5 * 1000 + 2 * 100 + 4 * 10 + 6 * 1
254.68 =?
= 2 * 102 + 5 * 101 + 4 * 100 + 6 * 10-1 + 8 *
10-2
8

2


27/12/201111

Hệ đếm nhị phân (Binary system, b=2)
• Ví dụ:
• 10101(2) = 1x24 + 0x23 + 1x22 + 0x21 + 1x20 =
16 + 0 + 4 + 0 + 1 = 21 (10)
• 11101.11(2) = 1x24 + 1x23 + 1x22 + 0x21 + 1x20
+ 1x2-1 + 1x2-2 = 29.75 (10)

Hệ đếm bát phân (Octal system, b=8)
• Ví dụ:
• 235 . 64 (8) = 2x82 + 3x81 + 5x80 + 6x8-1 +

4x8-2 = 157. 8125(10)

9

Hệ đếm thập lục phân
(Hexa-decimal system, b=16)

10

Bảng qui đổi tương đương 16 chữ số đầu tiên của
4 hệ đếm

• Khi thể hiện ở dạng hexa-decimal, ta có 16 ký
tự gồm 10 chữ số từ 0 đến 9, và 6 chữ in A, B,
C, D, E, F để biểu diễn các giá trị số
• Ví dụ:
34F5C (16) = 3x164 + 4x163 + 15x162 + 5x161 +
12x160 = 216294 (10)

11

Hệ 10

Hệ 2

Hệ 8

Hệ 16

0

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101

1110
1111

00
01
02
03
04
05
06
07
10
11
12
13
14
15
16
17

0
1
2
3
4
5
6
7
8
9

A
B
C
D
E
F

12

3


27/12/201111

Đổi một số nguyên từ hệ thập phân
sang hệ b
• Lấy số nguyên thập phân N(10) lần lượt chia
cho b cho đến khi thương số bằng 0.
• Kết quả số chuyển đổi N(b) là các dư số
trong phép chia viết ra theo thứ tự ngược lại

Chuyển thập phân(10) -> nhị
phân(2)
• Ví dụ 1:
• Số 12 (10) = ?(2). Dùng
phép chia cho 2 liên
tiếp, ta có một loạt các
số dư như sau:

13


Ví dụ 2:
0.6875 (10) = ? (2)

14

Chuyển nhị phân -> thập phân
10101(2) = 1x24 + 0x23 + 1x22 + 0x21 + 1x20
= 16 + 0 + 4 + 0 + 1 = 21 (10)

15

16

4


27/12/201111

Chuyển cơ số 8 ->10

Chuyển cơ số 10 -> 8
• Ví dụ: Chuyển số (3287,5100098)10 -> ?8
Phần nguyên

thương là

:

8


410

:

8

51

2

51

:

8

6

3

6

:

8

0

Vậy (3287)10

Phần lẻ:



3287

410

7

• Ví dụ:
235 . 64 (8) = 2x82 + 3x81 + 5x80 + 6x8-1 +
4x8-2 = 157. 8125 (10)

6

=

(6328)8
phần nguyên là

0,5100098

x

8

= 4,0800784

0,0800784


x

8

= 0,6406272

0

4

0,6406270

x

8

= 5,1250176

5

0,1250176

x

8

= 1,0001408

1


Vậy (0,5100098)10

=

Kết quả chung là: (3287,5100098)10

=

(90,4051)8
(6327,4051)8

17

Chuyển cơ số 16 -> 10

18

Chuyển cơ số 10 -> 16
Thực hiện:

• Cho M = (3A,2F)16
M = 3.161 + 10.160 , 2.16-1 +15.16-2
M = 48 + 10 + 2/16 + 15/256 =( 58,1836)10

Phần nguyên

625

:


16

42

:

16

Thương là:

42
2

10 (A)

2

:

16

0

2

0,625

x


16

Phần nguyên là:
Phần lẻ:

3

(2A3)16
=10,000

Kết quả chuyển đổi là: M = (675,625)10

19



Phần lẻ là

10 = (A)
= 2A3,A)16

20

5


27/12/201111

Chuyển số nhị phân sang hệ 16
SỐ THẬP PHÂN


CƠ SỐ 16

NHỊ PHÂN 4 BIT

0

0

0000

1

1

0001

2

2

0010

3

3

0011

4


4

0100

5

5

0101

6

6

0110

7

7

0111

8

8

1000

9


9

1001

10

A

1010

11

B

1011

12

C

1100

13

D

1101

14


E

1110

15

F

1111

CÁC KHÁI NIỆM CƠ BẢN

22 22

21

Lập trình

Thuật tốn (giải thuật)

• Lập trình máy tính (programming) gọi tắt là lập
trình là kỹ thuật cài đặt một hoặc nhiều thuật tốn
trừu tượng có liên quan với nhau bằng một hoặc
nhiều ngơn ngữ lập trình để tạo ra một chương
trình máy tính.

23
23


• Thuật tốn là một bộ các quy tắc hay quy
trình cụ thể nhằm giải quyết một vấn đề
trong một số bước hữu hạn

24
24

6


27/12/201111

Sử dụng lưu đồ (Flowchart):

Ví dụ:
Thuật tốn để giải phương trình bậc nhất:
P(x): ax + b = c, (a, b, c là các số thực), có thể
là một bộ các bước sau đây:
• Nếu a = 0
• b = c thì P(x) có nghiệm bất kỳ
• b ≠ c thì P(x) vơ nghiệm

• Nếu a ≠ 0
• P(x) có duy nhất một nghiệm x = (c - b)/a
25
25

26
26


27
27

28
28

Các Ví Dụ

7


27/12/201111

Ngơn ngữ lập trình

Ngơn ngữ lập trình

(programming language):

(programming language):

• Là một tập con của ngơn ngữ máy tính, là
một hệ thống được ký hiệu hóa để miêu tả
những tính tốn (qua máy tính) trong một
dạng mà cả con người và máy đều có thể đọc
và hiểu được.
• Một tập hợp các chỉ thị được biểu thị nhờ
ngơn ngữ lập trình để thực hiện các thao tác
máy tính nào đó thơng qua một chương
trình

29
29

• Ngơn ngữ lập trình có thể phân theo 2 cách:
• Ngơn ngữ cấp cao – ngơn ngữ cấp thấp
• Ngơn ngữ hướng thủ tục – ngơn ngữ hướng đối tượng

• Ngơn ngữ c++ là ngơn ngữ bậc cao có chứa các
đặc trưng của cả 2 loại ngơn ngữ: hướng thủ tục
và hướng đối tượng

30
30

Lớp và đối tượng

Cấu trúc của một chương trình C++

• Lớp được phân loại dựa vào hai đặc điểm:
Dữ liệu
Phương pháp có thể áp dụng cho dữ liệu
này
• Một đối tượng là một trường hợp cụ thể của
lớp.

• Một chương trình gồm nhiều đoạn được sắp xếp
theo một trình tự logic, mỗi đọan thực hiện một
chức năng trong chương trình gọi là modules
• Trong C++ modules có thể là lớp hoặc hàm
• Mỗi hàm có một tên riêng

• Các lệnh của 1 hàm phải đặt trong { }
• Mỗi lệnh được kết thúc bằng dấu ;

31
31

32
32

8


27/12/201111

Cấu trúc của một chương trình C++

Hàm main()
• Mỗi chương trình trong C++ phải có duy nhất một
hàm main(), dùng để điều khiển chương trình
• Cấu trúc của hàm main
<data type> main()
{
program statement;
return value;
}

• Những khai báo, những chỉ thị tiền xử lý.
#include < Thuvien.h>
#define ....
• Khai báo các biến tồn cục

• Hàm main ()
{
Các lệnh trong hàm main;

}
33
33

Ví dụ: chương trình C++ đơn giản
#include <iostream.h>
#include <conio.h>
int main ()
{
cout << "Hello World!";
getch();
return 0;
}

34
34

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.

35

35

36

9


27/12/201111

Các tập tin thư viện thông dụng

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:
• 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())
• Conio.h: định nghĩa các hàm vào ra trong
chế độ DOS, như clrscr(), getch(), …

• math.h: Định nghĩa các hàm tốn học như:
abs(), sqrt(), log(), log10(), sin(), cos(),
tan(), acos(), asin(), atan(), pow(), exp(), …
• 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(), …

37

38

Bộ ký tự dùng trong ngôn ngữ C++
CÁC THÀNH PHẦN CƠ BẢN TRONG
CHƯƠNG TRÌNH C/C++

39 39

Các chữ cái : A, B, C ..., Z, a,b,c,...z
Các chữ số : 0,1,..., 9.
Ký tự gạch nối _ (underscore, chú ý phân
biệt dấu - ).
• Dấu cách ( space) : dùng để phân biệt các
từ
Ví dụ :
Lop Hoc( 7 kí tự) cịn LopHoc( 6 kí tự).




40
40

10



27/12/201111

Tên(định danh identifier)

Tên(định danh identifier)

• Tên ( định danh ) : là 1 dãy kí tự bắt đầu bằng
chữ hoặc ký tự gạch dưới, theo sau là chữ cái,
chữ số hoặc ký tự gạch nối underscore (_).
• Tên : dùng làm tên hằng, tên biến, nhãn, tên
hàm....

• Chú ý :
• + Tên : chữ hoa và chữ thường được xem là
khác nhau
+ Thông thường :
. Ðặt chữ hoa cho các hằng, chữ thường
cho các đại lượng còn lại (biến, hàm..).
. Nên đặt 1 cách gợi nhớ ( 8 kí tự đầu là
có nghĩa và tuỳ thuộc chương trình ).

Ví dụ :
- Tên đúng : _abc, Delta_1, BETA.
- Tên sai : 1xyz ( vì bắt đầu là 1 chữ số )
A#B ( vì có dâu #)
X-1 (vì sử dụng dấu gạch ngang).
41
41

42

42

Tên(định danh identifier)

Từ khóa (keyword)

Ví dụ:
int x, y;
int HeA. HeB, HeC;
float u,v;


• Một số từ được giữ bởi C++ cho một số
mục đích riêng và khơng thể được dùng cho
các định danh gọi là từ khóa

43
43

44
44

11


27/12/201111

Chú thích trong chương trình

Từ khóa (keyword)

asm

continue

float

new

signed

try

auto

default

for

operator

sizeof

typedef

break

delete

friend


private

static

union

case

do

goto

protected

struct

unsigned

catch

double

if

public

switch

virtual


char

else

inline

register

template

void

class

enum

int

return

this

volatile

const

extern

long


short

throw

while

• Chú thích được dùng để giải thích một vài
khía cạnh của chương trình. Trình biên dịch
bỏ qua hồn tồn các chú thích trong
chương trình.
• C++ cung cấp hai loại chú thích:
• Chú thích trên 1 dịng: //
• Chú thích trên nhiều dịng: /* và */

45
45

46
46

Các ký tự đặc biệt
\’ : dấu nháy đơn
\” : dấu nháy kép
\\ : dấu chéo ngược
\n : ký tự xuống dòng
\0 : ký tự rỗng ( null)
\t : phím tab
\f : trang kế tiếp

KIỂU DỮ LIỆU TRONG C++


47
47

48 48

12


27/12/201111

Kiểu số nguyên
Name
char

Description

Size

Range*

Character or small
1byte
integer.

signed: -128 to 127
unsigned: 0 to 255

Kiểu số thực


short int
Short Integer.
(short)

2bytes

signed: -32768 to 32767
unsigned: 0 to 65535

int

4bytes

signed: -2147483648 to
2147483647
unsigned: 0 to 4294967295

Integer.

long int
(long)

Long integer.

4bytes

signed: -2147483648 to
2147483647
unsigned: 0 to 4294967295
49

49

Name

Description

Size

Range*

float

Floating point number. 4bytes

3.4e +/- 38
(7 digits)

double

Double precision
8bytes
floating point number.

1.7e +/- 308
(15 digits)

long
double

Long double precision

1.2e +/- 4932
10bytes
floating point number.
(19 digits)
50
50

Kiểu bool

bool

Boolean value. It can take one of
1byte
two values: true or false.

true or
false

51
51

BIẾN-HẰNG – CÁCH KHAI BÁO

52 52

13


27/12/201111


BIẾN-CÁCH KHAI BÁO BIẾN

BIẾN-CÁCH KHAI BÁO BIẾN

Biến đại lượng thay đổi, mỗi biến có 1 tên và
địa chỉ vùng nhờ danh riêng cho nó.
• CÁCH KHAI BÁO BIẾN:
< Kiểu dữ liệu > < Danh sách các biến >;
Ví dụ:
int a;
float mynumber;

• Nếu các biến có cùng kiểu dữ liệu thì có thể
khai báo:
<kiểu dữ liệu>bởi dấu phẩy>;
Ví dụ:
int a, b, c;

53
53

BIẾN-CÁCH KHAI BÁO BIẾN

54
54

BIẾN-CÁCH KHAI BÁO BIẾN

• PHẠM VI CỦA BIẾN


• KHỞI TẠO GIÁ TRỊ CHO BIẾN
type identifier = initial_value ;
Ví dụ:
int a = 0;
type

55
55

identifier

initial_value

56
56

14


27/12/201111

VÍ DỤ














HẰNG – CÁCH KHAI BÁO HẰNG

#include <iostream>
using namespace std;
int main ()
{
int a=5;
// initial value = 5
int b(2);
// initial value = 2
int result;
// initial value undetermined(chua XD)
a = a + 3;
result = a - b;
cout << result;
return 0;
}

HẰNG (Constants): Là một đại lượng mà
giá trị của nó khơng đổi

57
57


Hằng ngun ( Int )

58
58

Hằng long Int

Có giá trị từ -32768 đến 32767
Khi viết theo hệ 16 bằng cách thêm tiền tố Ox
Hoặc theo cơ số 8 bằng cách thêm tiền tố O
Ví dụ :

• Giống như hằng ngun, chỉ khác thêm L
hoặc l ở cuối.
• Ví dụ:
75u
// unsigned int
75l
// long
75ul
// unsigned long

O3068 =6*80 +0*81 + 3* 82 = 198 trong hệ 10
O3458 = 5*80 +4*81+ 3*82 = 229 trong hệ 10
Ox147 =7*160+4*161+1*162=327 trong hệ 10
59
59

60
60


15


27/12/201111

Hằng thực ( float và double )

Hằng ký tự

Có 2 cách viết
- Cách 1 : dạng thập phân: phần nguyên, dấu
chấm thập phân và phần phân.
* Ví dụ : 214.35 , - 234.34.
- Cách 2 : Viết theo dạng khoa học
* Ví dụ :
1.543e7 = 15430000
123.456E-4 = 0.0123456 ( 123.456/105)

• Viết trong 2 dấu nháy kép. Giá trị của
hằng chính là mã ASCII của chữ.
• Ví dụ :
'A' = 65;
'd' = 100,
'9 ' - '0 ' = 57 - 48 = 9

61
61

62

62

Định nghĩa hằng

Ví dụ

Cú pháp:

// defined constants: calculate circumference
#include <iostream>
using namespace std;
#define PI 3.14159
#define NEWLINE '\n'
int main ()
{
double r=5.0;
// radius

#define identifier value
Ví dụ:
#define PI 3.14159265
#define NEWLINE '\n'

63
63

64
64

16



27/12/201111

Ví dụ

Khai báo hằng (const)

double circle;
circle = 2 * PI * r;
cout << circle;
cout << NEWLINE;
getch();
return 0;

Cú pháp:
const <kiểu dữ liệu> tên hằng = giá trị
Ví dụ:
const int pathwidth = 100;
const char tabulator = '\t';

}
65
65

66
66

Lệnh xuất chuẩn (cout)
• Cú pháp:


cout<
CÁC LỆNH XUẤT NHẬP CHUẨN

Trong đó :
Biểu thức có thể là:
–Biến
–Hằng
–Chuổi
67 67

68
68

17


27/12/201111

Lệnh xuất chuẩn (cout)

Lệnh nhập chuẩn (cin)

• Ví dụ:
cout << "This is a sentence.";
cout << "This is another sentence.";
cout << "Second sentence.\nThird sentence.";

• Cú pháp:


cin>>tên biến;
ví dụ:
int a;
cout<<“nhap gia tri cho a: ”;
cin>>a;
cout<<“gia tri cua a la :”<
69
69

Định dạng kết quả xuất

70
70

Định dạng kết quả xuất

• setw(n): ấn định độ rộng để in một số là n
• setprecision(n): ấn định số chữ số thập phân sẽ
hiển thị.
• dec: hiển thị giá trị số ở hệ thập phân
• hec: hiển thị giá trị số ở hệ thập lục phân
• oct : hiển thị giá trị số ở hệ bát phân

71
71

• Lưu ý: muốn sử dụng các định dạng thì
trong chương trình ta phải khai báo :


#include <iomanip.h>

72
72

18


27/12/201111

Ví dụ







#include <iostream.h>
#include <iomanip.h>
void main()
{
cout <cout <
CÁC TỐN TỬ
1.
2.
3.

4.
5.
6.
7.
8.
9.

//kết quả “...12”

cout <

cout <
cout <• return;
• }

Tốn tử gán
Tốn tử số học
Các tốn tử gán phức hợp
Tốn tử tăng giảm
Tóan tử quan hệ
Tốn tử logic
Tốn tử điều kiện
Tốn tử lấy kích thước
Chuyển đổi kiểu dữ liệu

73
73


TỐN TỬ GÁN(=)

74

TỐN TỬ GÁN(=)

Tốn tử gán dùng để gán một giá trị nào đó
cho một biến
• Ví dụ:
a=5// gán giá trị nguyên 5 cho biến a
Vế trái của phép gán bắt buộc phải là một
biến, vế phải có thể là hằng, biến hay kết
quả của một biểu thức.

Toán tử gán ln được thực hiện từ trái sang phải
Ví dụ: a = b;

//gán giá trị của biến a bằng giá trị
đang chứa trong biến b
Cho phép vế phải có thể chứa các phép gán khác.
Ví dụ: a = 2 + (b = 5);

75

tương đương
với
b = 5;
a = 2 + b;
76


19


27/12/201111

TỐN TỬ SỐ HỌC
Tên

Tốn tử

TỐN TỬ SỐ HỌC
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

Trừ tốn tử lấy phần dư (% ) thì tất cả các
tốn tử số học có thể chấp nhận pha trộn các
tốn hạng số ngun và tốn hạng số thực.
• Nếu cả hai tốn hạng là số ngun thì kết
quả sẽ là một số ngun.
• Một hoặc cả hai tốn hạng là số thực thì
kết quả sẽ là một số thực (real hay
double)

77

TỐN TỬ GÁN PHỨC HỢP

78

Ví dụ:


Tố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
79

#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;
}

80

20


27/12/201111

TỐN TỬ TĂNG - GIẢM

TỐN TỬ TĂNG - GIẢM


• Tốn tử tăng (++) và tố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. Chúng tương đương với +=1 hoặc -=1.
Vì vậy, các dịng sau là tương đương:
a++;
a+=1;
a=a+1;

• Tốn tử tăng/giảm có 2 dạng:
• Tiền tố :++a
• Hậu tố: a++

81

TỐN TỬ TĂNG - GIẢM

82

TỐN TỬ TĂNG - GIẢM

• Trường hợp tốn tử được sử dụng như là
một tiền tố ++a: giá trị của a tăng trước khi
biểu thức được tính và giá trị đã tăng được
sử dụng trong biểu thức
• Trong trường hợp tốn tử được sử dụng như
là một hậu tố a++ : giá trị trong biến a được
tăng sau khi đã tính tốn.

83


Ví dụ 1:

B=3;
A=++B;
Kết quả: A chứa giá trị 4, B chứa giá trị 4
Ví dụ 2:
B=3;
A=B++;
Kết quả: A chứa giá trị 3, B chứa giá trị 4
84

21


27/12/201111

TỐN TỬ QUAN HỆ

TỐN TỬ QUAN HỆ

Tên

Tốn tử

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

>=

So sánh lớn hơn hoặc bằng 6.3 >= 5 //kết quả1

Các toán hạng của một toán tử quan hệ phải
ước lượng về một số. Các ký tự là các toán
hạng hợp lệ vì chúng được đại diện bởi các
giá trị số. Ví dụ (giả sử mã ASCII):


'A' < 'F' // kết quả là 1
(tương đương với 65 < 70)

5 > 5.5 // kết quả 0

85

TỐN TỬ ĐIỀU KIỆN

TỐN TỬ LOGIC
Tốn tử

!
&&
||

Ý nghĩa

Ví dụ

• Cú pháp

Phủ định

!(5 == 5) // kết quả là 0



5 < 6 && 6 < 6 // kết quả là 0


Hoặc

5 < 6 || 6 < 5 // kết quả là 1

0: SAI (false)

86

Khác 0: ĐÚNG (true)
87

E1 ? E2 : E3

Trong đó E1, E2, E3 là các biểu thức.

• Ý nghĩa:
Nếu E1 đúng thì E2 được ước lượng và nó trở
thành giá trị của biểu thức.
Ngược lại, nếu E1 sai, E3 được ước lượng và trở
thành giá trị của biểu thức.
88

22


27/12/201111

TỐN TỬ ĐIỀU KIỆN


TỐN TỬ ĐIỀU KIỆN

• Ví dụ:
X = 10
Y = X > 9 ? 100 : 200
E1

E2

E3

Nếu X>9 thì Y được gán giá trị 100, ngược lại,nếu
X nhỏ hơn 9 thì Y sẽ nhận giá trị là 200.

• Phép tốn điều kiện cũng là một biểu thức nên
nó có thể được sử dụng như một tốn hạng của
phép tốn điều kiện khác.
• Ví dụ:
int m = 1, n = 2, p =3;
int min =(m < n ? (m < p ? m : p) : (n < p ? n : p));
E1

E2

E3

89

TỐN TỬ ĐIỀU KIỆN(ví dụ)
#include <iostream>

int main ()
{
int a,b,c;
a=2;
b=7;
c = (a>b) ? a : b;
cout << c;
return 0;
}

90

TỐN TỬ LẤY KÍCH THƯỚC
• sizeof(data_Type) : để tính kích thước của bất kỳ
hạng mục dữ liệu hay kiểu dữ liệu nào.
• Kết quả trả về là kích thước của kiểu dữ liệu đã
chỉ định theo byte.
• Ví dụ:
cout << "char size = " << sizeof(char) << " bytes\n";

91

92

23


27/12/201111

TỐN TỬ BITWISE

Tốn
tử

TỐN TỬ BITWISE

Tên

Ví dụ

~

Phủ Định Bit

~'\011'

// được '\366'

&

Và bit

'\011' & '\027‘ // được '\001'

|

Hoặc bit

'\011' | '\027‘ // được '\037'

^


Hoặc exclusive bit '\011' ^ '\027‘ // được '\036'

<<

Dịch trái bit

'\011' << 2

// được '\044'

>>

Dịch phải bit

'\011' >> 2

// được '\002'
93

ĐỘ ƯU TIÊN CỦA CÁC TOÁN TỬ
TOÁN TỬ

TOÁN TỬ

ĐỘ Ư/TIÊN

Ví dụ :
105 & 7 = 1// 01101001 & 0000 0111= 00000001
105 | 7 = 127//01101001 | 0000 0111= 01101111

0x60 = 0x96 /* 0110 1001 = 1001 0110 */

ĐỘ ƯU TIÊN

()

1

&

8

!, ++, --, sizeof()

2

*, /, %
+, -

3
4

<<, >>

5

<, <=, >, >=
= =, !=

6

7

^
|
&&
||
?:

9
10
11
12
13

=, +=, -=, *=, /=

14
95

94

CHUYỂN ĐỔI KIỂU DỮ LIỆU
• Phép chuyển đổi kiểu cho phép chuyển đổi dữ
liệu từ kiểu này sang kiểu khác.
• Cách cơ bản nhất được thừa kế từ ngôn ngữ C là :
(Kiểu dữ liệu)<biểu thức>
Ví dụ:

96


24


27/12/201111

CHUYỂN ĐỔI KIỂU DỮ LIỆU
• (int) 3.14 // chuyển 3.14 sang int để được 3
• (long) 3.14 // chuyển 3.14 sang long để được 3L
• (double) 2 // chuyển 2 sang double để được 2.0
• (char) 122 // chuyển 122 sang char có mã là 122
• (unsigned short) 3.14 // được 3 như là một
unsigned short
97

25


×