Bài giảng Nhập môn về lập trình - Chương 3: Tổ chức dữ liệu trong chương trình

Chương 3  
Tổ chức dữ liệu trong  
chương trình  
Presenter:  
Slide 1  
Nhập môn về lập trình (C3)  
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 toá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.  
Slide 2  
Nhập môn về lập trình (C3)  
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).  
Slide 3  
Nhập môn về lập trình (C3)  
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  
• 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  
-0203  
• 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'  
• Chuỗi: đặt trong 2 dấu nháy kép ("...")  
Ví dụ: "Nhap so: " "%-10.3f\n"  
'7'  
'\t'  
...  
Slide 4  
Nhập môn về lập trình (C3)  
Giá trị tức thời  
Hằng escape  
Slide 5  
Nhập môn về lập trình (C3)  
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.  
Slide 6  
Nhập môn về lập trình (C3)  
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).  
Slide 7  
Nhập môn về lập trình (C3)  
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ố nguyên 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)  
Slide 8  
Nhập môn về lập trình (C3)  
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ộ  
Biến static là biến toàn cục  
Biến dynamic cấp phát lúc chạy  
Slide 9  
Nhập môn về lập trình (C3)  
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 toá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 toá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à toá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.  
Slide 10  
Nhập môn về lập trình (C3)  
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, ...).  
• Gọi hàm.  
• (Biểu thức).  
[ chính giá trị ]  
[ trị trả về từ hàm ]  
[ 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 toán  
tử cũng là biểu thức.  
Slide 11  
Nhập môn về lập trình (C3)  
Biểu thức  
Các toán tử  
Phân loại theo số lượng toán hạng :  
• Toán tử 1 ngôi : chỉ cần 1 toán hạng.  
Ví dụ: toán tử '-' (số âm), toán tử ‘!’ (not luận lý).  
• Toán tử 2 ngôi : cần dùng 2 toán hạng.  
[ &, *, +, -, ~, ! ]  
Ví dụ: toán tử '*' (nhân 2 số), ‘%’ (chia lấy phần dư), ...  
• Toán tử 3 ngôi : cần dùng 3 toán hạng.  
Ví dụ: toá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ả toán tử.  
Ví dụ: '+' là cộng, '-' là trừ, '*' là nhân, '/' là chia, ...  
Slide 12  
Nhập môn về lập trình (C3)  
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 toá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 toán tử CurrentOp (trên  
1, 2 hay 3 toán hạng của nó).  
• Nếu toán tử CurrentOp có độ ưu tiên cao hơn hay bằng toá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, ...  
Slide 13  
Nhập môn về lập trình (C3)  
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  
Slide 14  
Nhập môn về lập trình (C3)  
Biểu thức  
Nhóm toá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  
.
->  
Member selection (object)  
Member selection (pointer)  
Left to right  
Left to right  
++  
--  
++  
--  
Postfix increment  
Postfix decrement  
Prefix increment  
Prefix decrement  
None  
None  
None  
None  
Slide 15  
Nhập môn về lập trình (C3)  
Biểu thức  
Nhóm toán tử và độ ưu tiên (2)  
Operator  
Name or Meaning  
Associativity  
*
&
+
–
!
~
Dereference  
Address-of  
None  
None  
None  
None  
None  
None  
Unary plus  
Arithmetic negation (unary)  
Logical NOT  
Bitwise complement  
sizeof  
sizeof()  
typeid()  
Size of object  
Size of type  
type name  
None  
None  
None  
*
/
%
Multiplication  
Division  
Remainder (modulus)  
Left to right  
Left to right  
Left to right  
+
–
Addition  
Subtraction  
Left to right  
Left to right  
Slide 16  
Nhập môn về lập trình (C3)  
Biểu thức  
Nhóm toán tử và độ ưu tiên (3)  
Operator  
Name or Meaning  
Associativity  
<<  
>>  
Left shift  
Right shift  
Left to right  
Left to right  
<
Less than  
Greater than  
Left to right  
Left to right  
Left to right  
Left to right  
Left to right  
Left to right  
>
<=  
>=  
==  
!=  
Less than or equal to  
Greater than or equal to  
Equality  
Inequality  
&
^
|
Bitwise AND  
Bitwise exclusive OR  
Bitwise OR  
Left to right  
Left to right  
Left to right  
&&  
||  
Logical AND  
Logical OR  
Left to right  
Left to right  
e1?e2:e3  
Conditional  
Right to left  
Slide 17  
Nhập môn về lập trình (C3)  
Biểu thức  
Nhóm toán tử và độ ưu tiên (4)  
Operator  
Name or Meaning  
Associativity  
=
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  
*=  
/=  
%=  
+=  
-=  
<<=  
>>=  
&=  
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  
,
Comma  
Left to right  
Slide 18  
Nhập môn về lập trình (C3)  
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.  
Slide 19  
Nhập môn về lập trình (C3)  
Biểu thức  
Toán tử gán - gán ghép  
Toán tử  
Sử dụng  
Giải thích  
-----------------------------------------------------------------------------------  
=
iNum1 = iNum2  
iNum1 += iNum2  
iNum1 -= iNum2  
iNum1 *= iNum2  
iNum1 /= iNum2  
iNum1 %= iNum2  
+=  
-=  
*=  
/=  
iNum1 = iNum1 + iNum2  
iNum1 = iNum1 - iNum2  
iNum1 = iNum1 * iNum2  
iNum1 = 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;  
Slide 20  
Nhập môn về lập trình (C3)  
Tải về để xem bản đầy đủ
pdf 39 trang myanh 23700 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Nhập môn về lập trình - Chương 3: Tổ chức dữ liệu trong chương trình", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_nhap_mon_ve_lap_trinh_chuong_3_to_chuc_du_lieu_tro.pdf