Bài giảng Tin học đại cương - Phần 2: Lập trình bằng ngôn ngữ C - Bài 2: Kiểu dữ liệu và biểu thức trong C - Nguyễn Thanh Hùng

2.2.1. Khai báo và sử dụng biến

Một biến trước khi sử dụng phải được khai báo

Cú pháp khai báo:

 kiểu_dữ_liệu tên_biến;

Hoặc:

 kiểu_dữ_liệu tên_biến1, , tên_biếnN;

Ví dụ: Khai báo một biến x thuộc kiểu số nguyên 2 byte có dấu (int), biến y, z,t thuộc kiểu thực 4 byte (float) như sau:

 int x;

 float y,z,t;

ppt 84 trang yennguyen 2680
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Tin học đại cương - Phần 2: Lập trình bằng ngôn ngữ C - Bài 2: Kiểu dữ liệu và biểu thức trong C - Nguyễn Thanh Hùng", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Tin học đại cương - Phần 2: Lập trình bằng ngôn ngữ C - Bài 2: Kiểu dữ liệu và biểu thức trong C - Nguyễn Thanh Hùng

Bài giảng Tin học đại cương - Phần 2: Lập trình bằng ngôn ngữ C - Bài 2: Kiểu dữ liệu và biểu thức trong C - Nguyễn Thanh Hùng
1 
TIN HỌC ĐẠI CƯƠNG  PHẦN 2: LẬP TRÌNH BẰNG NGÔN NGỮ C BÀI 2: KIỂU DỮ LIỆU VÀ BIỂU THỨC TRONG C 
SCHOOL OF INFORMATION COMMUNICATION TECHNOLOGY 
VIỆN CÔNG NGHỆ THÔNG TIN 
Ts. Nguyễn Thanh Hùng 
2 
BÀI 2	KIỂU DỮ LIỆU VÀ BIỂU THỨC TRONG C 
2.1. Các kiểu dữ liệu chuẩn trong C 
2.2. Khai báo và sử dụng biến, hằng 
2.3. Các lệnh vào ra dữ liệu với các biến 
2.4. Các lệnh vào ra khác 
2.5. Các phép toán trong C 
2.6. Biểu thức trong C 
2.7. Một số toán tử đặc trưng 
3 
2.1. Các kiểu dữ liệu chuẩn trong C 
Kiểu dữ liệu 
Ý nghĩa 
Kích thước 
Miền dữ liệu 
unsigned char 
Kí tự không dấu 
1 byte 
0  255 
char 
Kí tự có dấu 
1 byte 
-128  127 
unsigned int 
Số nguyên không dấu 
4 
2.1. Các kiểu dữ liệu chuẩn trong C 
5 
2.1. Các kiểu dữ liệu chuẩn trong C 
6 
BÀI 2	KIỂU DỮ LIỆU VÀ BIỂU THỨC TRONG C 
2.1. Các kiểu dữ liệu chuẩn trong C 
2.2. Khai báo và sử dụng biến, hằng 
2.3. Các lệnh vào ra dữ liệu với các biến 
2.4. Các lệnh vào ra khác 
2.5. Các phép toán trong C 
2.6. Biểu thức trong C 
2.7. Một số toán tử đặc trưng 
7 
2.2.1. Khai báo và sử dụng biến 
Một biến trước khi sử dụng phải được khai báo 
Cú pháp khai báo: 
	 kiểu_dữ_liệu tên_biến; 
Hoặc: 
 kiểu_dữ_liệu tên_biến 1 , , tên_biến N ; 
Ví dụ: Khai báo một biến x thuộc kiểu số nguyên 2 byte có dấu (int), biến y, z,t thuộc kiểu thực 4 byte (float) như sau: 
	 int x; 
	float y,z,t; 
8 
Khai báo và khởi tạo giá trị cho biến 
Cú pháp: 
kiểu_dữ_liệu tên_biến = giá_trị_ban_đầu; 
Hoặc: 
kiểu_dữ_liệu biến 1 =giá_trị 1 , biến N =giá_trị N ; 
Ví dụ: 
int a = 3; // sau lenh nay bien a se co gia tri bang 3 
float x = 5.0, y = 2.6; // sau lenh nay x co gia 	// tri 5.0, y co gia tri 2.6 
9 
2.2.2. Khai báo hằng 
Cách 1: Dùng từ khóa #define: 
	Cú pháp: 
	# define tên_hằng giá_trị 
	Ví dụ: 
#define MAX_SINH_VIEN 50 
#define CNTT “ Cong nghe thong tin ” 
#define DIEM_CHUAN 23.5 
10 
2.2.2. Khai báo hằng 
Cách 2: Dùng từ khóa const : 
Cú pháp: 
	 const kiểu_dữ_liệu tên_hằng = giá_trị; 
Ví dụ: 
const int MAX_SINH_VIEN = 50; 
const char CNTT [20] = “ Cong nghe thong tin ” ; 
const float DIEM_CHUAN = 23.5; 	 
11 
2.2.2. Khai báo hằng 
Chú ý: 
Giá trị của các hằng phải được xác định ngay khi khai báo. 
Trong chương trình, KHÔNG thể thay đổi được giá trị của hằng. 
#define là chỉ thị tiền xử lý (preprocessing directive) 
Dễ đọc, dễ thay đổi 
Dễ chuyển đổi giữa các nền tảng phần cứng hơn 
Tốc độ nhanh hơn 
12 
BÀI 2	KIỂU DỮ LIỆU VÀ BIỂU THỨC TRONG C 
2.1. Các kiểu dữ liệu chuẩn trong C 
2.2. Khai báo và sử dụng biến, hằng 
2.3. Các lệnh vào ra dữ liệu với các biến 
2.4. Các lệnh vào ra khác 
2.5. Các phép toán trong C 
2.6. Biểu thức trong C 
2.7. Một số toán tử đặc trưng 
13 
2.3. Các lệnh vào ra dữ liệu 
C cung cấp 2 hàm vào ra cơ bản: 
printf() 
scanf() 
Muốn sử dụng 2 hàm printf() và scanf() ta cần khai báo tệp tiêu đề stdio.h: 
#include 
Hoặc 
#include “ stdio.h ” 
14 
2.3.1. Hàm printf 
a. Mục đích và cú pháp: 
Mục đích: 
Hiển thị ra màn hình các loại dữ liệu cơ bản như: Số, kí tự và xâu kí tự 
Một số hiệu ứng hiển thị đặc biệt như xuống dòng, sang trang, 
15 
a. Mục đích và cú pháp (tiếp) 
Cú pháp : 
printf ( xâu_định_dạng [, danh_sách_tham_số ]); 
xâu_định_dạng : Là xâu dùng để qui định cách thức hiển thị dữ liệu ra màn hình máy tính . 
danh_sách_tham_số : Danh sách các biểu thức sẽ được hiển thị giá trị lên màn hình theo cách thức được qui định trong xâu_định_dạng . 
16 
a. Mục đích và cú pháp (tiếp) 
Trong xâu_định_dạng chứa: 
Các kí tự thông thường: Được hiển thị ra màn hình. 
Các nhóm kí tự định dạng: Xác định quy cách hiển thị các tham số trong phần danh_sách_tham_số . 
Các kí tự điều khiển: Dùng để tạo các hiệu ứng hiển thị đặc biệt như xuống dòng ( ‘ \n ’ ) hay sang trang ( ‘ \f ’ ) 
17 
a. Mục đích và cú pháp (tiếp) 
Ví dụ: Chương trình sau 
#include 
#include 
void main() 
{ int a = 5; 
 float x = 1.234; 
 printf( “ Hien thi mot so nguyen %d và mot so thuc 	%f ” ,a,x); 
 getch(); 
} 
 Sẽ cho ra kết quả:	 
	 Hien thi mot so nguyen 5 va mot so thuc 1.234000 
18 
a. Mục đích và cú pháp (tiếp) 
Trong ví dụ trên: 
“ Hien thi mot so nguyen %d và mot so thuc %f ” là xâu_định_dạng 
a,x là danh_sách_tham_số 
%d dùng để báo cho máy biết rằng cần phải hiển thị tham số kiểu nguyên (biến a) 
%f dùng để báo cho máy cần hiển thị tham số tương ứng (biến x) theo định dạng số thực 
19 
a. Mục đích và cú pháp (tiếp) 
Nhóm kí tự định dạng thứ k trong xâu_định_dạng dùng để xác định quy cách hiển thị tham số thứ k trong danh_sách_tham_số. 
Số lượng tham số trong Danh_sách_tham_số bằng số lượng nhóm các kí tự định dạng trong xâu_định_dạng . Trong ví dụ trên là 2. 
20 
a. Mục đích và cú pháp (tiếp) 
Mỗi nhóm kí tự định dạng chỉ dùng cho một kiểu dữ liệu 
	Ví dụ: %d dùng cho kiểu nguyên 
	 %f dùng cho kiểu thực 
Nếu giữa nhóm kí tự định dạng và tham số tương ứng không phù hợp với nhau thì sẽ hiển thị ra kết quả không như ý. 
21 
Một số nhóm định dạng phổ biến 
Nhóm kí tự 
định dạng 
Kiểu dữ liệu 
Kết quả 
%c 
int, char 
Kí tự đơn lẻ 
%i, %d 
int, char 
Số thập phân 
%o 
int, char 
Số bát phân 
(không có 0 đằng trước) 
%x, %X 
int, char 
Số hexa 
(chữ thường/chữ hoa) 
%u 
unsigned int/char 
Số thập phân 
22 
Một số nhóm định dạng phổ biến (2) 
Nhóm kí tự 
định dạng 
Kiểu dữ liệu 
Kết quả 
%ld, %li 
long 
Số thập phân 
%lo 
long 
Số bát phân 
(không có 0 đằng trước) 
%lx, %LX 
long 
Số hexa 
(chữ thường/chữ hoa) 
%lu 
unsigned long 
Số thập phân 
23 
Một số nhóm định dạng phổ biến (2) 
Nhóm kí tự 
định dạng 
Kiểu dữ liệu 
Kết quả 
%s 
char * 
Hiển thị xâu kí tự kết thúc bởi ‘ \0 ’ 
%f 
float/double 
Số thực dấu phẩy tĩnh 
%e, %E 
float/double 
Số thực dấu phẩy động 
% 
Hiển thị kí tự % 
24 
b. Nhóm kí tự định dạng 
Một số nhóm kí tự định dạng phổ biến: 
25 
b. Nhóm kí tự định dạng (tiếp) 
26 
b. Nhóm kí tự định dạng (tiếp) 
27 
b. Nhóm kí tự định dạng (tiếp) 
C cho phép đưa thêm một số thuộc tính định dạng dữ liệu khác vào trong xâu định dạng như: 
	Độ rộng để hiển thị (độ rộng tối thiểu) 
	Căn lề trái 
	Căn lề phải. 
28 
b.1. Độ rộng hiển thị 
Đối với số nguyên hoặc ký tự hoặc xâu ký tự : 
Có dạng %md, với m là số nguyên không âm 
Ví dụ: Có số a = 1234 
	Lệnh: 
	 printf("%5d",a);//danh 5 cho de hien thi a 
	printf( “ \n%5d",34); 	 
	 Cho ra kết quả:  1234 
	  34 
	 ( kí hiệu cho dấu cách đơn ( space ) ) 
29 
b.1. Độ rộng hiển thị 
Đối với số nguyên hoặc ký tự hoặc xâu ký tự : Ví dụ: 
	 printf("\n%3d %15s %3c", 1, "nguyen van a", 'g'); 
	printf("\n%3d %15s %3c", 2, "tran van b", 'k'); 
Kết quả: 
1nguyen van ag 
2tran van bk 
30 
b.1. Độ rộng hiển thị 
Đối với số thực : m, n là 2 số nguyên không âm 
	 %m.nf 
	B áo rằng cần dành : 
	 m vị trí để hiển thị số thực 
	 n vị trí trong m vị trí đó để hiển thị phần thập phân . 
31 
b.1. Độ rộng hiển thị 
Định dạng v ới dữ liệu là số thực (tiếp): 
Ví dụ: 
	 printf("\n%f",12.345); 
	printf("\n%.2f",12.345); 
	printf("\n%8.2f",12.345); 
Kết quả: 
12.345000 
12.35 
 12.35 	 
32 
b.1. Độ rộng hiển thị 
Khi số chỗ cần thiết để hiển thị nội dung dữ liệu lớn hơn trong định dạng: 
	T ự động cung cấp thêm chỗ mới để hiển thị chứ không cắt bớt nội dung của dữ liệu . 
Ví dụ: a=1000 
	printf( “ So a la: %1d ” , a); 
Kết quả: 
	 So a la: 1000 
33 
b.2. Căn lề phải, lề trái 
Căn lề phải: 
Khi hiển thị dữ liệu, mặc định C căn lề phải 
Căn lề trái : 
Nếu muốn căn lề trái khi hiển thị dữ liệu ta chỉ cần thêm d ấ u trừ - vào ngay sau dấu %. 
34 
b.2. Căn lề phải, lề trái 
Ví dụ: 
printf("\n%-3d %-15s %4.2f %-3c", 9 , "nguyen van a", 8.5, 'g'); 
printf("\n%-3d %-15s %4.2f %-3c", 10 , “ nguyen ha ", 6.75, 'k'); 
Kết quả: 
9  nguyen van a  8.50g  
10  nguyen ha  6.75k  
35 
2.3.2. Hàm scanf 
a. Mục đích và cú pháp: 
Mục đích: 
Hàm scanf() dùng để nhập dữ liệu từ bàn phím 
Cú pháp: 
scanf(xâu_định_dạng, danh_sách_địa_chỉ ); 
Ví dụ: 
scanf( “ %d %f ” , &a, &b); 
36 
a. Mục đích và cú pháp (tiếp) 
Địa chỉ của một biến được viết bằng cách đặt dấu & trước tên biến. 
Ví dụ: 
Các biến có tên là a, x, ten_bien 
Thì địa chỉ của chúng lần lượt sẽ là: 
 &a, &x, &ten_bien 
37 
a. Mục đích và cú pháp (tiếp) 
Xâu_định_dạng: 
Gồm các ký tự được qui định cho từng loại dữ liệu được nhập vào. 
Ví dụ: Với dữ liệu định nhập vào là kiểu nguyên thì xâu định dạng là : %d 
Danh_sách_địa_chỉ: 
Bao gồm các địa chỉ của các biến, các địa chỉ này được phân tách nhau bởi dấu phẩy (,) 
38 
a. Mục đích và cú pháp (tiếp) 
Danh_sách_địa_chỉ phải phù hợp với các nhóm kí tự định dạng trong xâu_định_dạng về: 
Số lượng 
Kiểu dữ liệu 
Thứ tự 
39 
b. Nhóm kí tự định dạng 
Một số nhóm kí tự định dạng: 
40 
b. Nhóm kí tự định dạng 
Một số nhóm kí tự định dạng: 
41 
Ví dụ 
#include 
#include 
void main() 
{ 
// khai bao bien 
int a; 
float x; 
char ch; 
char* str; 
42 
Ví dụ 
// Nhap du lieu 
printf( “ Nhap vao mot so nguyen ” ); 
scanf( “ %d ” ,&a); 
printf( “ \n Nhap vao mot so thuc ” ); 
scanf( “ %f ” ,&x); 
printf( “ \n Nhap vao mot ki tu ” ); 
fflush(stdin); scanf( “ %c ” ,&ch); 
printf( “ \n Nhap vao mot xau ki tu ” ); 
fflush(stdin); scanf( “ %s ” ,str); 
43 
Ví dụ 
// Hien thi du lieu vua nhap vao 
printf( “ \n Nhung du lieu vua nhap vao ” ); 
printf( “ \n So nguyen: %d ” ,a); 
printf( “ \n So thuc : %.2f ” ,x); 
printf( “ \n Ki tu: %c:  ” ,ch); 
printf( “ \n Xau ki tu: %s ” ,str); 
getch(); 
} 
44 
Ví dụ 
Kết quả: 
Nhap vao mot so nguyen: 2007 
 Nhap vao mot so thuc: 18.1625 
 Nhap vao mot ki tu: b 
 Nhap vao mot xau ki tu: ngon ngu lap trinh C 
 Nhung du lieu vua nhap vao 
 So nguyen: 2007 
 So thuc: 18.16 
 Ki tu: b 
 Xau ki tu: ngon 
45 
c. Một số quy tắc cần lưu ý 
Quy tắc 1: Khi đọc số 
Hàm scanf() quan niệm rằng mọi kí tự số, dấu chấm ( ‘ . ’ ) đều là kí tự hợp lệ. 
Khi gặp các dấu phân cách như tab, xuống dòng hay dấu cách (space bar) thì scanf() sẽ hiểu là kết thúc nhập dữ liệu cho một số 
46 
c. Một số quy tắc cần lưu ý (tiếp) 
Quy tắc 2: Khi đọc kí tự: 
	Hàm scanf() cho rằng mọi kí tự có trong bộ đệm của thiết bị vào chuẩn đều là hợp lệ, kể cả các kí tự tab, xuống dòng hay dấu cách. 
47 
c. Một số quy tắc cần lưu ý (tiếp) 
Quy tắc 3: Khi đọc xâu kí tự: 
 + Hàm scanf() nếu gặp các kí tự dấu trắng, dấu tab hay dấu xuống dòng thì nó sẽ hiểu là kết thúc nhập dữ liệu cho một xâu kí tự. 
 + Trước khi nhập dữ liệu kí tự hay xâu kí tự ta nên dùng lệnh fflush(stdin) để xóa bộ đệm. 
48 
BÀI 2	KIỂU DỮ LIỆU VÀ BIỂU THỨC TRONG C 
2.1. Các kiểu dữ liệu chuẩn trong C 
2.2. Khai báo và sử dụng biến, hằng 
2.3. Các lệnh vào ra dữ liệu với các biến 
2.4. Các lệnh vào ra khác 
2.5. Các phép toán trong C 
2.6. Biểu thức trong C 
2.7. Một số toán tử đặc trưng 
49 
2.4. Các lệnh vào ra khác 
Hàm gets() : 
	Dùng để nhập vào từ bàn phím một xâu kí tự bao gồm cả dấu cách, điều mà hàm scanf() không làm được. 
Cú pháp : 
	 gets (xâu_kí_tự); 
Ví dụ: 
char* str; 
printf( “ Nhap vao mot xau ki tu: ” ); 
fflush(stdin); gets(str); 
50 
2.4. Các lệnh vào ra khác (tiếp) 
Hàm puts(): 
	Hiển thị ra màn hình nội dung xâu_kí_tự và sau đó đưa con trỏ xuống dòng mới . 
Cú pháp: 	 
	puts(xâu_kí_tự); 
Ví dụ: 
	puts( “ Nhap vao xau ki tu: ” ); 
Tương đương với lệnh: printf( “ %s\n ” , “ Nhap vao xau ki tu: “ ). 
51 
2.4. Các lệnh vào ra khác (tiếp) 
Hàm getch(): thường dùng để chờ người sử dụng ấn một phím bất kì rồi sẽ kết thúc chương trình. 
Cú pháp 
	 getch(); 
Để sử dụng các hàm gets(), puts(), getch() ta cần khai báo tệp tiêu đề conio.h . 
52 
2.4. Các lệnh vào ra khác (tiếp) 
Ví dụ : 
#include 
#include 
void main() 
{ 
 // khai bao bien 
 char* str; 
 // Nhap du lieu 
 puts( “ Hay cho biet ho ten ban: ” ); 
 fflush(stdin); gets(str); 
53 
2.4. Các lệnh vào ra khác (tiếp) 
 // Hien thi du lieu vua nhap vao 
 printf( “ Xin chao ” ); 
 puts(str); 
 puts( “ An phim bat ki de ket thuc... ” ); 
 getch(); 
} 
54 
Các lệnh nhập xuất khác 
Kết quả: 
Nhap vao mot xau ki tu: 
 ngon ngu lap trinh C 
 Xau vua nhap vao: 
 ngon ngu lap trinh C 
 An phim bat ki de ket thuc ... 
55 
BÀI 2	KIỂU DỮ LIỆU VÀ BIỂU THỨC TRONG C 
2.1. Các kiểu dữ liệu chuẩn trong C 
2.2. Khai báo và sử dụng biến, hằng 
2.3. Các lệnh vào ra dữ liệu với các biến 
2.4. Các lệnh vào ra khác 
2.5. Các phép toán trong C 
2.6. Biểu thức trong C 
2.7. Một số toán tử đặc trưng 
56 
2.5. Các phép toán trong C 
Bao gồm: 
Nhóm các phép toán số học 
Nhóm các phép toán thao tác trên bit 
Nhóm các phép toán quan hệ 
Nhóm các phép toán logic 
Ngoài ra C còn cung cấp một số phép toán khác nữa như phép gán, phép lấy địa chỉ 
57 
2.5.1. Phép toán số học 
58 
2.5.2. Phép toán trên bit 
1) 
1) 
59 
2.5.2. Phép toán trên bit 
60 
2.5.3. Phép toán quan hệ 
61 
2.5.4. Phép toán logic 
62 
2.5.5. Phép toán gán 
Cú pháp 
	tên_biến = biểu_thức; 
Lấy giá trị của biểu_thức gán cho tên_biến 
Ví dụ: 
int a, b, c; 
a = 3; 
b = a + 5; 
c = a * b; 
63 
2.5.5. Phép toán gán 
Biểu thức gán là biểu thức nên nó cũng có giá trị. 
Giá trị của biểu thức gán bằng giá trị của biểu_thức: 
 C ó thể gán giá trị của biểu thức gán cho một biến khác hoặc sử dụng như một biểu thức bình thường 
Ví dụ: 
int a, b, c;	 
a = b = 2007;	 
c = (a = 20) * (b = 30); 
64 
2.5.5. Phép toán gán 
Phép toán gán thu gọn: 
x = x + y; giống như 
x += y; 
Dạng lệnh gán thu gọn này còn áp dụng được với các phép toán khác : +, -, *, /, %, >>, <<, &, |, ^ 
65 
2.5.6. Thứ tự ưu tiên các phép toán 
66 
Ví dụ 
a < 10 && 2 * b < c 
  ( a < 10 ) && ( ( 2 * b ) < c ) 
67 
Nguyên tắc xác định trật tự thực hiện các phép toán 
Biểu thức con trong ngoặc được tính toán trước các phép toán khác 
Phép toán một ngôi đứng bên trái toán hạng được kết hợp với toán hạng đi liền nó. 
Nếu toán hạng đứng cạnh hai toán tử thì có 2 khả năng là 
Nếu hai toán tử có độ ưu tiên khác nhau thì toán tử nào có độ ưu tiên cao hơn sẽ kết hợp với toán hạng 
Nếu hai toán tử cùng độ ưu tiên thì dựa vào trật tự kết hợp của các toán tử để xác định toán tử được kết hợp với toán hạng. 
68 
BÀI 2	KIỂU DỮ LIỆU VÀ BIỂU THỨC TRONG C 
2.1. Các kiểu dữ liệu chuẩn trong C 
2.2. Khai báo và sử dụng biến, hằng 
2.3. Các lệnh vào ra dữ liệu với các biến 
2.4. Các lệnh vào ra khác 
2.5. Các phép toán trong C 
2.6. Biểu thức trong C 
2.7. Một số toán tử đặc trưng 
69 
2.6.1. Các loại biểu thức 
a. Biểu thức số học: 
Là biểu thức mà giá trị của nó là cái đại lượng số học (số nguyên, số thực). 
Các toán tử là các phép toán số học (cộng, trừ, nhân, chia), các toán hạng là các đại lượng số học (số, biến, hằng). 
Ví dụ: 
a, b, c là các biến thuộc một kiểu dữ liệu số nào đó. 
3 * 3.7 
8 + 6/3 
a + b – c 
70 
2.6.1. Các loại biểu thức 
b. Biểu thức logic: 
Là biểu thức mà giá trị của nó là các giá trị logic, tức là một trong hai giá trị: Đúng ( TRUE ) hoặc Sai ( FALSE ). 
Giá trị nguyên khác 0: Đúng (TRUE), 
Giá trị 0: Sai (FALSE). 
Các phép toán logic gồm có 
AND: VÀ logic, kí hiệu là && 
OR: HOẶC logic, kí hiệu là || 
NOT: PHỦ ĐỊNH, kí hiệu là ! 
71 
2.6.1. Các loại biểu thức 
c. Biểu thức quan hệ: 
Là những biểu thức trong đó có sử dụng các toán tử quan hệ so sánh như lớn hơn, nhỏ hơn, bằng nhau, khác nhau 
Chỉ có thể nhận giá trị là một trong 2 giá trị Đúng (TRUE) hoặc Sai (FALSE) 
 B iểu thức quan hệ là một trường hợp riêng của biểu thức logic. 
72 
2.6.1. Các loại biểu thức 
Ví dụ về biểu thức quan hệ: 
73 
2.6.1. Các loại biểu thức 
Ví dụ về biểu thức logic: 
74 
2.6.2. Sử dụng biểu thức 
Làm vế phải của lệnh gán. 
Làm toán hạng trong các biểu thức khác. 
Làm tham số thực trong lời gọi hàm. 
Làm chỉ số trong các cấu trúc lặp for , while , do while . 
Làm biểu thức kiểm tra trong các cấu trúc rẽ nhánh if , switch . 
75 
BÀI 2	KIỂU DỮ LIỆU VÀ BIỂU THỨC TRONG C 
2.1. Các kiểu dữ liệu chuẩn trong C 
2.2. Khai báo và sử dụng biến, hằng 
2.3. Các lệnh vào ra dữ liệu với các biến 
2.4. Các lệnh vào ra khác 
2.5. Các phép toán trong C 
2.6. Biểu thức trong C 
2.7. Một số toán tử đặc trưng 
76 
2.7.1. Các phép toán tăng giảm một đơn vị 
Tăng hoặc giảm một đơn vị cho biến: 
 = + 1; 
 ++; 
 = - 1; 
 --; 
Ví dụ: 
int a = 5; 
float x = 10; 
a ++; // tương đương với a = a + 1; 
x --; // tương đương với x = x – 1; 
77 
2.7.1. Các phép toán tăng giảm một đơn vị (tiếp) 
Tiền tố: Thay đổi giá trị của biến trước khi sử dụng 
Hậu tố: Tính toán giá trị của biểu thức bằng giá trị ban đầu của biến, sau đó mới thay đổi giá trị của biến 
Ví dụ: 
int a, b, c; 
a = 3;	 // a bang 3 
b = a++;// Dang hau to 
 // b bằng 3; a bằng 4 
c = ++b;// Dang tien to 
 // b bằng 4, c bằng 4; 
78 
2.7.2. Phép toán lấy địa chỉ biến (&) 
& ; 
Ví dụ: a là kiểu dữ liệu int (2 bytes) 
&a; // co gia tri la 3,300,159 hay 0032:5B3F 
79 
2.7.3. Phép toán chuyển đổi kiểu bắt buộc 
() ; 
Chương trình dịch sẽ tự động chuyển đổi kiểu 
Số nguyên int long int 
Số long int float  
Ngược lại 
Số nguyên long int 50,000 không phải là một số nguyên kiểu int vì phạm vi biểu diễn của kiểu int là từ (-32,768 đến 32,767). 
 Phải ép kiểu 
80 
2.7.3. Phép toán chuyển đổi kiểu bắt buộc (tiếp) 
Ví dụ: 
#include 
#include 
void main() 
{ 
	long int li; int i; float f; clrscr(); 
	li = 0x123456; f = 123.456; 
	 i = (int) li; 
 printf( “ \n li = %ld ” ,li); 
	printf( “ \n i = %d ” ,i); i = (int) f; 
	printf( “ \n f = %f ” ,f); 
	printf( “ \n i = %d ” ,i); 
	getch(); 
} 
81 
2.7.3. Phép toán chuyển đổi kiểu bắt buộc (tiếp) 
Kết quả 
 li = 1193046 
 i = 13398 
 f = 123.456001 
 i = 123 
82 
2.7.3. Phép toán chuyển đổi kiểu bắt buộc (tiếp) 
C hỗ trợ chuyển kiểu tự động trong những trường hợp sau 
 char int long int float double long double 
83 
2.7.4. Biểu thức điều kiện 
Cú pháp 
biểu_thức_1 ? biểu_thức_2 : biểu_thức_3 
Giá trị của biểu thức điều kiện 
Giá trị của biểu_thức_2 nếu biểu_thức_1 có giá trị khác 0 (tương ứng với giá trị logic ĐÚNG), 
Ngược lại: Giá trị của biểu_thức_3 nếu biểu_thức_1 có giá trị bằng 0 (tương ứng với giá trị logic SAI). 
Ví dụ: 
float x, y, z; // khai báo biến 
x = 3.8; y = 2.6; // gán giá trị cho các biến x, y 
z = (x<y) ? x : y; // z sẽ có giá trị bằng giá trị 
	 // nhỏ nhất trong 2 số x và y 
84 
Câu hỏi ? 

File đính kèm:

  • pptbai_giang_tin_hoc_dai_cuong_phan_2_lap_trinh_bang_ngon_ngu_c.ppt