Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 7: Các thành phần cơ bản và các kiểu dữ liệu của C
7.1 Danh hiệu
7.2 Các kiểu dữ liệu chuẩn của C
7.3 Hằng (constant)
7.4 Biến (variable)
7.5 Biểu thức
7.6 Các phép toán của C
7.7 Cấu trúc tổng quát của một chương trình C
Bài tập cuối chương
, trước khi gán toán hạng bên phải sẽ được
chuyển theo kiểu của toán hạng bên trái, điều này có thể
sẽ gây ra kết quả sai hoặc không chính xác, nếu như kiểu
của toán hạng bên trái thấp hơn kiểu của toán hạng bên
phải.
CHƯƠNG 7
CÁC THÀNH PHẦN CƠ BẢN VÀ CÁC KIỂU DỮ
LIỆU CỦA C
7.6 CÁC PHÉP TOÁN CỦA C
7.6.6 Toán tử gán
Kiểu toán hạng trái
Kiểu toán hạng phải
Trị có thể mất sau khi gán
signed char
unsigned char
Giá trị > 127, thành số âm
char
short int
Mất trị từ bit 8 trở đi
char
int
Mất trị từ bit 8 trở đi
char
long
Mất trị từ bit 8 trở đi
short int
long int
Mất 16 bit cao (một int)
int
float
Mất phần thập phân và phần trị lớn hơn một
int
float
double
Độ chính xác do làm tròn
CHƯƠNG 7
CÁC THÀNH PHẦN CƠ BẢN VÀ CÁC KIỂU DỮ
LIỆU CỦA C
7.6 CÁC PHÉP TOÁN CỦA C
7.6.6 Toán tử gán
Đối với phép gán phức, việc chuyển kiểu được thực hiện
theo việc chuyển kiểu tự động trong khi thực hiện việc
tính toán biểu thức và việc chuyển kiểu của phép gán đơn
giản.
Phép gán phức hợp này tỏ ra rất hiệu quả nhất là khi các
toán hạng bên trái là những biến khá dài.
CHƯƠNG 7
CÁC THÀNH PHẦN CƠ BẢN VÀ CÁC KIỂU DỮ
LIỆU CỦA C
7.6 CÁC PHÉP TOÁN CỦA C
7.6.6 Toán tử gán
Ví dụ:
Thay vì viết:
n = n * (x + 5) + n * (a + 8);
ta chỉ cần viết:
n *= x + 5 + a + 8;
Hoặc phức tạp hơn
a[i][j] –= b[i][j];
thay vì phải viết dài dòng
a[i][j] = a[i][j] – b[i][j];
.
CHƯƠNG 7
CÁC THÀNH PHẦN CƠ BẢN VÀ CÁC KIỂU DỮ
LIỆU CỦA C
7.6 CÁC PHÉP TOÁN CỦA C
7.6.6 Toán tử gán
Đối với C, nếu một biểu thức gán được kết thúc bằng một
dấu ";" thì ta có một lệnh gán; còn nếu biểu thức gán này
được sử dụng trong một biểu thức phức hợp khác thì biểu
thức gán sẽ có trị là trị của biến sau khi gán.
Ví dụ:
int a = 4, b = 1;
b + = (a = 2 * b) + (a *= b);
CHƯƠNG 7
CÁC THÀNH PHẦN CƠ BẢN VÀ CÁC KIỂU DỮ
LIỆU CỦA C
7.6 CÁC PHÉP TOÁN CỦA C
7.6.7 Toán tử phẩy - Biểu thức phẩy
Cú pháp:
biểu_thức_1, biểu_thức_kết_quả
Với biểu_thức_1 và biểu_thức_kết_quả là hai biểu thức bất
kỳ.
Ví dụ:
m = (a = 2, t = a + 3);
sẽ cho a = 2, t = 5 và m = t = 5
hoặc x = (t = 1, t + 4);
sẽ cho t = 1 và x = 5
CHƯƠNG 7
CÁC THÀNH PHẦN CƠ BẢN VÀ CÁC KIỂU DỮ
LIỆU CỦA C
7.6 CÁC PHÉP TOÁN CỦA C
7.6.8 Toán tử điều kiện - biểu thức điều kiện
Trong ngôn ngữ C có một toán tử khá đặc biệt gọi là toán
tử điều kiện, ký hiệu của toán tử điều kiện là hai dấu "?"
và ":" theo cú pháp sau:
dieu-kien ? bieu-thuc1 : bieu-thuc2
với dieu-kien là một biểu thức bất kỳ có kết quả thuộc
kiểu chuẩn (scalar type)
bieu-thuc1, bieu-thuc2 là hai biểu thức bất kỳ và dĩ
nhiên có thể là một biểu thức điều kiện khác.
CHƯƠNG 7
CÁC THÀNH PHẦN CƠ BẢN VÀ CÁC KIỂU DỮ
LIỆU CỦA C
7.6 CÁC PHÉP TOÁN CỦA C
7.6.8 Toán tử điều kiện - biểu thức điều kiện
Ví dụ:
Thay vì phải viết dài dòng
if ( i >0 )
n = 1;
else n = 0;
ta chỉ cần dùng biểu thức điều kiện
n =(i > 0) ? 1 : 0;
CHƯƠNG 7
CÁC THÀNH PHẦN CƠ BẢN VÀ CÁC KIỂU DỮ
LIỆU CỦA C
7.6 CÁC PHÉP TOÁN CỦA C
7.6.8 Toán tử điều kiện - biểu thức điều kiện
Ví dụ: Viết chương trình nhập một ký tự, đổi ký tự đó
sang ký tự hoa nếu đó là ký tự thường.
#include
#include
main()
{
char c;
clrscr();
printf ("Nhap mot ky tu: ");
CHƯƠNG 7
CÁC THÀNH PHẦN CƠ BẢN VÀ CÁC KIỂU DỮ
LIỆU CỦA C
7.6 CÁC PHÉP TOÁN CỦA C
7.6.8 Toán tử điều kiện - biểu thức điều kiện
c = getchar(); (1)
c =( c >= 'a' && c <= 'z' ) ? c - 32 : c; (2)
printf ("Ky tu da duoc doi la: ");
putchar (c);
getch();
}
CHƯƠNG 7
CÁC THÀNH PHẦN CƠ BẢN VÀ CÁC KIỂU DỮ
LIỆU CỦA C
7.6 CÁC PHÉP TOÁN CỦA C
7.6.9 Toán tử sizeof
Đây là một toán tử cho ta kích thước của một biến hoặc
một kiểu dữ liệu nào đó. Do phạm vi sử dụng của sizeof rất
rộng và thường được dùng để lấy kích thước các kiểu dữ
liệu phức hợp như struct, union... Việc sử dụng toán tử này
cho phép ta không phải quan tâm đến chiều dài cụ thể của
các biến.
CHƯƠNG 7
CÁC THÀNH PHẦN CƠ BẢN VÀ CÁC KIỂU DỮ
LIỆU CỦA C
7.6 CÁC PHÉP TOÁN CỦA C
7.6.9 Toán tử sizeof
Toán hạng của sizeof là một biến hoặc một kiểu dữ liệu
bất kỳ nào đó đã định nghĩa.
sizeof (biến)
sizeof biến
sizeof (kiểu)
Kết quả của toán tử này là một giá trị nguyên chỉ kích
thước (tính bằng byte hoặc char) của kiểu dữ liệu hoặc của
biến đó. Biến hoặc kiểu này có thể là một biến hoặc một
kiểu đơn giản hay phức hợp.
CHƯƠNG 7
CÁC THÀNH PHẦN CƠ BẢN VÀ CÁC KIỂU DỮ
LIỆU CỦA C
7.6 CÁC PHÉP TOÁN CỦA C
7.6.9 Toán tử sizeof
Ví dụ:
Nếu có một biến đã khai báo:
double f;
thì:
sizeof (f);
sizeof f;
hoặc:
sizeof (double);
sẽ cho ta kết quảlà 8 (byte).
CHƯƠNG 7
CÁC THÀNH PHẦN CƠ BẢN VÀ CÁC KIỂU DỮ
LIỆU CỦA C
7.6 CÁC PHÉP TOÁN CỦA C
7.6.10 Độ ưu tiên của các toán tư
Trong một biểu thức, các phép toán luôn được thực hiện
theo một mức độ ưu tiên khác nhau, và nếu cùng một độ
ưu tiên thì các phép toán sẽ được kết hợp với nhau theo
một trật tự nhất định.
CHƯƠNG 7
CÁC THÀNH PHẦN CƠ BẢN VÀ CÁC KIỂU DỮ
LIỆU CỦA C
7.6 CÁC PHÉP TOÁN CỦA C
7.6.10 Độ ưu tiên của các toán tư
Độ ưu tiên Phép toán Thứ tự kết hợp
1 () [ ] ->. Trái qua phải
2 ! ~ ++ – + (type) * & sizeof Phải qua trái *
3 * / % Trái qua phải
4 + – Trái qua phải
5 > Trái qua phải
6 >= Trái qua phải
7 == != Trái qua phải
8 & Trái qua phải
9 ^^ Trái qua phải
10 | Trái qua phải
11 && Trái qua phải
12 || Trái qua phải
13 ?: Tráái qua trái *
14 = += –= *= /= %= >= &= |= ^= Phải qua trái *
15 , Trái qua phải
CHƯƠNG 7
CÁC THÀNH PHẦN CƠ BẢN VÀ CÁC KIỂU DỮ
LIỆU CỦA C
7.7 CẤU TRÚC TỔNG QUÁT CỦA MỘT CHƯƠNG
TRÌNH C
Một chương trình C tổng quát bao hàm hai phần: phần
khai báo đầu (header) và phần hàm (function).
Phần khai báo đầu của một chương trình C bao gồm:
- Các lệnh tiền xử lý: include, define ...
- Các khai báo hằng, biến ngoài ...
- Các prototype của các hàm được sử dụng trong chương
trình
CHƯƠNG 7
CÁC THÀNH PHẦN CƠ BẢN VÀ CÁC KIỂU DỮ
LIỆU CỦA C
7.7 CẤU TRÚC TỔNG QUÁT CỦA MỘT CHƯƠNG
TRÌNH C
Phần hàm của một chương trình C là phần định nghĩa các
hàm sử dụng trong chương trình, trong các hàm này phải
có hàm main().
CHƯƠNG 7
CÁC THÀNH PHẦN CƠ BẢN VÀ CÁC KIỂU DỮ
LIỆU CỦA C
7.7 CẤU TRÚC TỔNG QUÁT CỦA MỘT CHƯƠNG
TRÌNH C
Ví dụ: Nhập một số kiểm tra số đó chẵn hay lẻ.
#include
#include
int kiem_tra (int so);
/* ham kiem_tra nhan vao doi so
la mot so nguyen, tra ve tri
- 0 la so chan
- 1 la so le
*/
phần khai báo
CHƯƠNG 7
CÁC THÀNH PHẦN CƠ BẢN VÀ CÁC KIỂU DỮ
LIỆU CỦA C
7.7 CẤU TRÚC TỔNG QUÁT CỦA MỘT CHƯƠNG
TRÌNH C
main()
{
int n;
clrscr();
printf ("Nhap mot so: ");
scanf ("%d", &n);
if (kiem_tra(n))
printf ("So da nhap la so le \n");
CHƯƠNG 7
CÁC THÀNH PHẦN CƠ BẢN VÀ CÁC KIỂU DỮ
LIỆU CỦA C
7.7 CẤU TRÚC TỔNG QUÁT CỦA MỘT CHƯƠNG
TRÌNH C
else
printf ("So da nhap la so chan \n");
getch();
}
int kiem_tra (int so)
{
return (so % 2 == 0)? 0:1;
}
CHƯƠNG 7
CÁC THÀNH PHẦN CƠ BẢN VÀ CÁC KIỂU DỮ
LIỆU CỦA C
BÀI TẬP CUỐI CHƯƠNG
1. Viết chương trình in ra màn hình trị thập phân của các
hằng sau đây
067 01234 0x1al 0x89ad
0xfb 'h' 022 02365
2. Nhập ba số, tìm số lớn nhất và nhỏ nhất trong ba số
đó.
CHƯƠNG 7
CÁC THÀNH PHẦN CƠ BẢN VÀ CÁC KIỂU DỮ
LIỆU CỦA C
BÀI TẬP CUỐI CHƯƠNG
3. Nhập bốn số, sắp xếp theo thứ tự từ lớn tới nhỏ và từ
nhỏ tới lớn theo menu sau:
1. Từ lớn tới nhỏ
2. Từ nhỏ tới lớn
3. Kết thúc
Mời bạn chọn thao tác (1...3):
4. Nhập ba cạnh tam giác, kiểm tra ba cạnh đó có thỏa
điều kiện hình thành tam giác không, in kết quả kiểm tra.
CHƯƠNG 7
CÁC THÀNH PHẦN CƠ BẢN VÀ CÁC KIỂU DỮ
LIỆU CỦA C
BÀI TẬP CUỐI CHƯƠNG
5. Nhập ba cạnh tam giác, kiểm tra ba cạnh đó có thỏa
điều kiện hình thành tam giác không, nếu thỏa in ra kết
quả xem tam giác đó là tam giác gì (vuông thì vuông tại
đâu, cân thì cân tại đâu ...)?
CHƯƠNG 7
CÁC THÀNH PHẦN CƠ BẢN VÀ CÁC KIỂU DỮ
LIỆU CỦA C
BÀI TẬP CUỐI CHƯƠNG
6. Viết chương trình nhập một ký tự và xử lý theo yêu cầu
sau:
- Nếu ký tự là hoa thì đổi sang thường, in kết quả đổi
- Nếu ký tự là thường thì không làm gì cả, in kết quả
- Nếu ký tự là ký số thì in ra màn hình câu: "Day la mot
ky so".
CHƯƠNG 7
CÁC THÀNH PHẦN CƠ BẢN VÀ CÁC KIỂU DỮ
LIỆU CỦA C
BÀI TẬP CUỐI CHƯƠNG
7. Dùng hàm pow () để tính bình phương và lũy thừa ba
của một số nhập từ bàn phím.
8. Viết chương trình đổi từ độ Fahrenheit (F) sang độ
Celcius (C) theo công thức sau:
F
C
32 9
5
CHƯƠNG 7
CÁC THÀNH PHẦN CƠ BẢN VÀ CÁC KIỂU DỮ
LIỆU CỦA C
KẾT THÚC CHƯƠNG 7
CHƯƠNG 7
CÁC THÀNH PHẦN CƠ BẢN VÀ CÁC KIỂU DỮ
LIỆU CỦA C
File đính kèm:
bai_giang_he_thong_may_tinh_va_ngon_ngu_c_chuong_7_cac_thanh.pdf

