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

S nmc3 dulieu

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 (1.24 MB, 39 trang )

Chương 3
Tổ chức dữ liệu trong
chương trình
Presenter:

Nhập mơn về lập trình (C3)

Slide 1


Learning outcomes
L.O.2.1 – Biết được tên và các thuộc tính của các kiểu dữ
liệu cơ bản về số, ký tự, enum và logic (logic trong
mở rộng của C, C++).
L.O.2.2 – Khai báo được các biến và hằng.
L.O.2.3 – Xác định và giải thích rõ các kiểu lưu trữ biến.
L.O.2.4 – Sử dụng được các tốn tử có thể thực hiện được
với các kiểu dữ liệu để thành lập biểu thức.
L.O.2.5 – Nhập được giá trị của các biến từ bàn phím và
xuất được giá trị của các biến ra màn hình (nhắc
lại có nâng cao).
L.O.2.6 – Định nghĩa được các kiểu có cấu trúc và sử dụng
chúng.
Nhập mơn về lập trình (C3)

Slide 2


Tổ chức dữ liệu trong chương trình C
Phân loại


Dữ liệu dùng trong các chương trình C thường
xuất hiện dưới 3 hình thức:
• Giá trị tức thời (immediately value).
• Hằng (constant): là giá trị (value) được đặt tên (name).
• Biến (variable): là vùng nhớ được đặt tên (name), có
kiểu dữ liệu (data type) gắn liền với độ lớn và nội dung
chứa bên trong (content).

Nhập mơn về lập trình (C3)

Slide 3


Giá trị tức thời
Cách viết
 Dữ liệu số:

• Số nguyên hệ 8 (Octal): bắt đầu bằng số 0
Ví dụ: 0165
-0203
• Số nguyên hệ 16 (Hexadecimal): bắt đầu bằng 0x
Ví dụ: 0x3D
-0x3AF8
• Số nguyên hệ 10 (Decimal): bắt đầu bằng số khác 0
Ví dụ: 169
-2053
• Số thực chấm động (floating point): dạng chấm tĩnh hoặc dạng
chuẩn
Ví dụ: 3.14159
-0.31459e1

-83.1E-9

 Dữ liệu ký tự / chuỗi

• Ký tự: đặt trong 2 dấu nháy đơn ('x') hoặc dạng escape ('\x')
Ví dụ: 'A'
'7'
'\t'
...
• Chuỗi: đặt trong 2 dấu nháy kép ("...")
Ví dụ: "Nhap so: "
"%-10.3f\n"

Nhập mơn về lập trình (C3)

Slide 4


Giá trị tức thời
Hằng escape

Nhập mơn về lập trình (C3)

Slide 5


Hằng
 Hằng là một giá trị của một kiểu dữ liệu nào đó được đặt tên (thường
dùng chữ lớn).
 Cú pháp định nghĩa hằng gợi nhớ cơ bản :

const <type> <name> = <value> ;
hay
#define <ConstName> <value>
Ví dụ:

const int VMAX = 15;
#define VMAX 15

Lưu ý : dấu < > chỉ để miêu tả phần tử do người sử dụng đặt tên chứ
khơng viết ra.

Nhập mơn về lập trình (C3)

Slide 6


Biến
Định nghĩa
 Biến dùng trong chương trình C chính là một vùng bộ nhớ
của máy tính và có các đặc điểm sau:
• Có tên (name): do người sử dụng đặt ra để dùng thay cho địa chỉ
(address).
<địa chỉ biến> = &<tên biến>
• Có kiểu dữ liệu (type): liên quan đến loại và độ lớn của giá trị mà
biến có thể chứa.
• Có nội dung: là giá trị chứa trong biến.

 Kiểu dữ liệu cung cấp bởi C chia ra thành kiểu có sẳn (tên
kiểu do C qui định) và kiểu của người sử dụng (tên kiểu
do người sử dụng đặt thơng qua đặc tả kiểu).


Nhập mơn về lập trình (C3)

Slide 7


Kiểu dữ liệu có sẳn của C
 void : 0 byte (khơng có giá trị nào), được dùng để miêu tả "khơng có
kiểu".
 char : số ngun 1 byte có dấu (-128  +127) hay ký tự ASCII.
 unsigned char : số nguyên 1 byte không dấu (0  255).
 short / short int : số nguyên 2 bytes có dấu (-32,768  +32,767).
 unsigned short : số nguyên 2 bytes không dấu (0  65535).
 int / long (long integer) : số nguyên 4 bytes có dấu
(-2,147,483,648  +2,147,483,647)
 unsigned int / unsigned long : số nguyên 4 bytes khơng dấu
(0  4,294,967,295)
 float (single-precision floating-point) : 4 bytes
[chính xác 7 chữ số]
(1.175494351E-38  3.402823466E+38)
 double (double-precision floating-point) : 8 bytes
[15 chữ số]
(2.2250738585072014E-308  1.7976931348623158E+308)
Nhập mơn về lập trình (C3)

Slide 8


Biến
Định nghĩa và khai báo

 Định nghĩa biến theo cú pháp:
<type> <variable> [=<ConstExpr>];

trong đó <type> có thể là kiểu có sẳn hay kiểu của người sử dụng.
<ConstExpr> là trị ban đầu, có thể khơng có.
Ví dụ:
int so=3;
char kytu; float x1,x2;
hoso sv1;

 Khai báo biến (đã được định nghĩa trong module khác):
extern <type> <variable> ;
Ví dụ:

extern int so;
extern char gioitinh;

 Định nghĩa biến tĩnh:
static <type> <variable> [=<ConstExpr>];
Ví dụ:

static long dem;

Biến automatic là biến cục bộ

Nhập mơn về lập trình (C3)

Biến static là biến toàn cục

Biến dynamic cấp phát lúc chạy


Slide 9


Biểu thức
Các thành phần của biểu thức
 Biểu thức thể hiện cách xử lý dữ liệu trong chương trình.
 Biểu thức là cách tính tốn các cơng thức của chương
trình.
 Các thành phần xác định biểu thức :






Các tốn hạng : các biến, hằng dữ liệu,...
Các toán tử tham gia biểu thức : +,-,*,/,...
Qui tắc kết hợp toán tử và tốn hạng để tạo biểu thức.
Qui trình tính biểu thức của phần mềm.
Kiểu kết quả sau khi tính biểu thức.

Nhập mơn về lập trình (C3)

Slide 10


Biểu thức
Biểu thức cơ bản
 Biểu thức cơ bản là phần tử nhỏ nhất tạo ra biểu thức.

 Các biểu thức cơ bản gồm :






Biến.
[ nội dung biến ]
Hằng gợi nhớ.
[ giá trị đại diện của hằng ]
Giá trị ( kiểu nguyên, thực, chuỗi, ...).
[ chính giá trị ]
Gọi hàm.
[ trị trả về từ hàm ]
(Biểu thức).
[ giá trị Biểu thức ]

 Biểu thức cơ bản là biểu thức.
 Nhiều biểu thức cơ bản kết hợp với nhau bằng các tốn
tử cũng là biểu thức.

Nhập mơn về lập trình (C3)

Slide 11


Biểu thức
Các toán tử
 Phân loại theo số lượng toán hạng :

• Tốn tử 1 ngơi : chỉ cần 1 tốn hạng.
[ &, *, +, -, ~, ! ]
Ví dụ: toán tử '-' (số âm), toán tử ‘!’ (not luận lý).
• Tốn tử 2 ngơi : cần dùng 2 tốn hạng.
Ví dụ: tốn tử '*' (nhân 2 số), ‘%’ (chia lấy phần dư), ...
• Tốn tử 3 ngơi : cần dùng 3 tốn hạng.
Ví dụ: tốn tử 'c?v1:v2' (kiểm tra điều kiện c, nếu c đúng trả về
v1, c sai trả về v2).

 VC++ thường dùng các ký tự đặc biệt để miêu tả tốn tử.
Ví dụ: '+' là cộng, '-' là trừ, '*' là nhân, '/' là chia, ...

Nhập mơn về lập trình (C3)

Slide 12


Biểu thức
Qui trình tính biểu thức
 Qui trình tính : Từ trái sang phải, mỗi lần gặp 1 toán tử
(CurrentOp) thì phải nhìn tiếp tốn tử đi ngay sau nó
(SussesorOp), so sánh độ ưu tiên của 2 toán tử và ra
quyết định như sau :
• Nếu khơng có SussesorOp thì tính ngay tốn tử CurrentOp (trên
1, 2 hay 3 tốn hạng của nó).
• Nếu tốn tử CurrentOp có độ ưu tiên cao hơn hay bằng tốn tử
SussesorOp thì tính ngay toán tử CurrentOp (trên 1, 2 hay 3
toán hạng của nó).
• Các trường hợp cịn lại thì cố gắng thực hiện toán tử
SussesorOp trước. Đổi SussesorOp thành CurrentOp và trở lại

bước đầu, ...

Nhập mơn về lập trình (C3)

Slide 13


Biểu thức
Ví dụ
 Tính biểu thức:

Hàm – biểu thức cơ bản

x = 0.3 + 7 * pow(10,-2) ;
Tính trước

x = 0.3 + 7 * 0.01
x = 0.3 + 0.07
x = 0.37

Nhập mơn về lập trình (C3)

Slide 14


Biểu thức
Nhóm tốn tử và độ ưu tiên (1)
 Bảng liệt kê độ ưu tiên các toán tử từ cao xuống thấp :
Operator


Name or Meaning

Associativity

Array subscript
Function call
Conversion

Left to right
Left to right
None

phần
Thành

Member selection (object)
Member selection (pointer)

Left to right
Left to right

iảm
Tăng/G

Postfix increment
Postfix decrement
Prefix increment
Prefix decrement

None

None
None
None

[]
()
()
.
->
++
-++
--

Nhập mơn về lập trình (C3)

Slide 15


Biểu thức
Nhóm tốn tử và độ ưu tiên (2)
Operator
*
&
+

!
~

ơi
Một ng


sizeof
sizeof()
typeid()

Name or Meaning

Associativity

Dereference
Address-of
Unary plus
Arithmetic negation (unary)
Logical NOT
Bitwise complement

None
None
None
None
None
None

Size of object
Size of type
type name

None
None
None

Left to right
Left to right
Left to right
Left to right
Left to right

/ Kiểu
Kích cỡ

*
/
%

Chia
Nhân /

Multiplication
Division
Remainder (modulus)

+


Trừ
Cộng /

Addition
Subtraction

Nhập mơn về lập trình (C3)


Slide 16


Biểu thức
Nhóm tốn tử và độ ưu tiên (3)
Operator
<<
>>
<
>
<=
>=
==
!=

Name or Meaning

Associativity

Dịch

Left shift
Right shift

Left to right
Left to right

h
So sán


Less than
Greater than
Less than or equal to
Greater than or equal to
Equality
Inequality

Left to right
Left to right
Left to right
Left to right
Left to right
Left to right

Bit

Bitwise AND
Bitwise exclusive OR
Bitwise OR

Left to right
Left to right
Left to right

Luận lý

Logical AND
Logical OR


Left to right
Left to right

Conditional

Right to left

&
^
|
&&
||

e1?e2:e3

i
Ba ngô

Nhập mơn về lập trình (C3)

Slide 17


Biểu thức
Nhóm tốn tử và độ ưu tiên (4)
Operator
=
*=
/=
%=

+=
-=
<<=
>>=
&=
|=
^=
,

Gán

Name or Meaning

Associativity

Assignment
Multiplication assignment
Division assignment
Modulus assignment
Addition assignment
Subtraction assignment
Left-shift assignment
Right-shift assignment
Bitwise AND assignment
Bitwise inclusive OR assignment
Bitwise exclusive OR assignment

Right to left
Right to left
Right to left

Right to left
Right to left
Right to left
Right to left
Right to left
Right to left
Right to left
Right to left

Comma

Left to right

ách
Ngăn c

Nhập mơn về lập trình (C3)

Slide 18


Biểu thức
Kiểu của biểu thức
 Kiểu của biểu thức lấy theo kiểu của toán hạng lớn nhất.
 So sánh các kiểu số dựa trên độ lớn (10x) và độ chính xác
(số chữ số có nghĩa).
Kiểu

Số byte Độ chính xác


Độ lớn

-----------------------------------------------------------------------------------------

char
short
int / long
float
double

1
2
4
4
8

2
4
9
7
15

102
104
109
1038
10308

 char < short < int/long < double
 char < short < float < double

 Ngoại lệ: float gặp int/long đổi ra double.

Nhập mơn về lập trình (C3)

Slide 19


Biểu thức
Tốn tử gán –- gán ghép
Tốn tử
Sử dụng
Giải thích
----------------------------------------------------------------------------------=

iNum1 = iNum2

+=

iNum1 += iNum2

iNum1 = iNum1 + iNum2

-=

iNum1 -= iNum2

iNum1 = iNum1 - iNum2

*=


iNum1 *= iNum2

iNum1 = iNum1 * iNum2

/=

iNum1 /= iNum2

iNum1 = iNum1 / iNum2

%=

iNum1 %= iNum2

iNum1 = iNum1 % iNum2

Ví dụ : tính tổng S=1+2+3+...+7
tong=0;
for (dem=1; dem<=7; dem++) tong += dem;
Nhập mơn về lập trình (C3)

Slide 20


Biểu thức
Toán tử tăng / giảm
Toán tử
Chức năng
---------------------------------------------------------------------------------++
Cộng 1 vào toán hạng

-Trừ 1 vào toán hạng
 ++ hay -- là các tốn tử một tốn hạng có thể dùng ở trước (prefix)
hoặc sau (postfix) tên biến.
 Toán tử prefix sẽ được thực hiện trước khi sử dụng tốn hạng.
Ví dụ :
dem = ++tridau; tương đương với
tridau++;
( hoặc ++tridau;)
dem=tridau;
 Toán tử postfix sẽ được thực hiện sau khi sử dụng toán hạng.
Ví dụ :
dem = tridau--; tương đương với
dem=tridau; tridau--;
( hoặc --tridau;)
Nhập mơn về lập trình (C3)

Slide 21


Biểu thức
Biểu thức số học
 Toán tử số học gồm các nhóm:





Một ngơi :
Nhân/Chia :
Cộng/Trừ :

Bit :

+ (dương), - (âm)
*, /, %
+, ~ (not), & (and), | (or), ^ (xor)

 Biểu thức số học là biểu thức gồm các biểu thức cơ bản
kết hợp với nhau chỉ bằng toán tử số học.
 Toán hạng đầu vào kiểu số, kết quả đầu ra kiểu số.
 Thường dùng để tính tốn dữ liệu số.

Nhập mơn về lập trình (C3)

Slide 22


Biểu thức
Biểu thức so sánh
 Toán tử so sánh trả về trị true (khác 0) hay false (bằng 0).
Toán tử
phép so sánh
-----------------------------------------------------------==
bằng
!=
khác
>
lớn hơn
<
nhỏ hơn
<=

nhỏ hơn hoặc bằng
>=

lớn hơn hoặc bằng

 Biểu thức so sánh có dạng
<biểu thức số học> <tốn tử so sánh> <biểu thức số học>

 Toán hạng đầu vào kiểu số, kết quả đầu ra kiểu đúng/sai.
 Thường dùng làm điều kiện trong lệnh.
Nhập mơn về lập trình (C3)

Slide 23


Biểu thức
Biểu thức luận lý
 Toán tử luận lý thực hiện phép toán luận lý dựa trên trị luận lý đúng
(khác 0) và sai (bằng 0).
Toán tử

hàm luận lý

---------------------------------------------------------------

!
&&
||

NOT

AND
OR

 Biểu thức luận lý có dạng
<biểu thức so sánh> <tốn tử luận lý> <biểu thức so sánh>
<biểu thức luận lý> <toán tử luận lý > <biểu thức luận lý>

 Toán hạng đầu vào kiểu đúng/sai, kết quả đầu ra kiểu đúng/sai.
 Dùng để ghép các điều kiện trong lệnh.

Nhập môn về lập trình (C3)

Slide 24


Biểu thức
Nguyên tắc hoạt động của toán tử luận lý
 Các toán tử luận lý hoạt động theo bảng sự thật sau:

Th1

Th2

! Th2

Th1 && Th2

Th1 || Th2

Sai


Sai

Đúng

Sai

Sai

Sai

Đúng

Sai

Sai

Đúng

Đúng

Sai

Đúng

Sai

Đúng

Đúng


Đúng

Sai

Đúng

Đúng

Nhập môn về lập trình (C3)

Slide 25


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×