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