Có những kiểu dữ liệu cơ bản được định nghĩa sẵn giúp lập trình có thể lưu và xử lý thông tin được đồng bộ và dễ dàng hơn. Tài liệu thông tin về các kiểu dữ liệu cơ sở, biến, hằng, câu lệnh và biểu thức các lệnh nhập xuất và ví dụ minh họa để tham khảo.
Tin học đại cương Bài 6: Kiểu liệu biểu thức C NGUYỄN Thị Oanh oanhnt@soict.hut.edu.vn Bộ môn Hệ thống thông tin - Viện CNTT Truyền Thông Đại học Bách Khoa Hà nội 2010 - 2011 Các kiểu liệu chuẩn C Khai báo khởi tạo biến, Biểu thức C Các phép toán (toán tử) C Các lệnh vào liệu Nội dung Các kiểu liệu chuẩn C Khai báo khởi tạo biến, Biểu thức C Các phép toán (toán tử) C Các lệnh vào liệu / 65 Các kiểu liệu chuẩn C Khai báo khởi tạo biến, Biểu thức C Các phép toán (toán tử) C Các lệnh vào liệu Các kiểu liệu chuẩn C Kiểu DL unsigned char char unsigned int short int int Ý nghĩa ký tự khơng dấu Kí tự Số ngun khơng dấu Số ngun có dấu Số ngun có dấu Kích thước1 byte Miền giá trị ÷ 255 byte bytes −128 ÷ 127 ÷ 65, 535 bytes −32, 768 ÷ 32, 767 bytes −32, 768 ÷ 32, 767 compiler 16bit, dùng sizeof(kieu du lieu) để biết kích thước xác / 65 Các kiểu liệu chuẩn C Khai báo khởi tạo biến, Biểu thức C Các phép toán (toán tử) C Các lệnh vào liệu Các kiểu liệu chuẩn C ÷ 4, 294, 967, 295 −2, 147, 483, 648÷ 2, 147, 483, 647 ±3.4E − 38 ÷ ±3.4E + 38 unsigned Số ngun khơng long dấu long Số ngun có dấu bytes Số thực động, độ đơn Số thực động độ kép Số thực động dấu phẩy xác bytes dấu phẩy xác bytes ±1.7E − 308 ÷ ±1.7E + 308 dấu phẩy 10 bytes ±3.4E − 4932 ÷ ±1.1E + 4932 float double long double bytes / 65 Các kiểu liệu chuẩn C Khai báo khởi tạo biến, Biểu thức C Các phép toán (toán tử) C Các lệnh vào liệu Các kiểu liệu chuẩn C Khai báo khởi tạo biến, Khai báo biến Khai báo Biểu thức C Các phép toán (toán tử) C Các lệnh vào liệu Khai báo biến Khai báo / 65 Các kiểu liệu chuẩn C Khai báo khởi tạo biến, Biểu thức C Các phép toán (toán tử) C Các lệnh vào liệu Khai báo biến Khai báo Khai báo biến ✦ Một biến trước sử dụng phải khai báo ✦ Cú pháp khai báo: – hoặc: 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_2, , tên_biến_n; ✦ Ví dụ: – int a; – float x, y, z; / 65 Các kiểu liệu chuẩn C Khai báo khởi tạo biến, Biểu thức C Các phép toán (toán tử) C Các lệnh vào liệu Khai báo biến Khai báo Kết hợp khai báo khởi tạo biến ✦ Cú pháp: – hoặc: kiểu_dữ_liệu tên_biến = giá_trị_khởi_tạo; – hoặc: kiểu_dữ_liệu tên_biến_1= giá_trị_khởi_tạo_1, , tên_biến_n = giá_trị_khởi_tạo_n; ✦ Ví dụ: – int a = ; – float x=5.0, y=7.6 ; / 65 Các kiểu liệu chuẩn C Khai báo khởi tạo biến, Biểu thức C Các phép toán (toán tử) C Các lệnh vào liệu Các kiểu liệu chuẩn C Khai báo khởi tạo biến, Khai báo biến Khai báo Biểu thức C Các phép toán (toán tử) C Các lệnh vào liệu Khai báo biến Khai báo / 65 Các kiểu liệu chuẩn C Khai báo khởi tạo biến, Biểu thức C Các phép toán (toán tử) C Các lệnh vào liệu Khai báo biến Khai báo Khai báo ✦ Cách 1: dùng từ khóa #define – Cú pháp khai báo: #define TÊN_HẰNG giá_trị – KHƠNG có dấu chấm phẩy ( ; ) cuối ✦ Ví dụ: #define MAX_SINHVIEN 50 #define CNTT "Công nghệ thông tin" #define DIEM_CHUAN 23.5 / 65 Các kiểu liệu chuẩn C Khai báo khởi tạo biến, Biểu thức C Các phép toán (toán tử) C Các lệnh vào liệu Khai báo biến Khai báo Khai báo ✦ Cách 2: dùng từ khóa const – Cú pháp khai báo: const kiểu_dữ_liệu TÊN_HẰNG = giá_trị ; – CĨ dấu ; cuối lệnh ✦ Ví dụ: const int MAX_SINHVIEN = 50 ; const char CNTT[20] = "Công nghệ thông tin" ; const float DIEM_CHUAN = 23.5 ; 10 / 65 Các kiểu liệu chuẩn C Khai báo khởi tạo biến, Biểu thức C Các phép toán (toán tử) C Các lệnh vào liệu Hàm printf() Hàm scanf() Một số hàm vào khác Một số nhóm ký tự định dạng phổ biến 51 / 65 Các kiểu liệu chuẩn C Khai báo khởi tạo biến, Biểu thức C Các phép toán (toán tử) C Các lệnh vào liệu Hàm printf() Hàm scanf() Một số hàm vào khác Một số nhóm ký tự định dạng phổ biến 52 / 65 Các kiểu liệu chuẩn C Khai báo khởi tạo biến, Biểu thức C Các phép toán (toán tử) C Các lệnh vào liệu Hàm printf() Hàm scanf() Một số hàm vào khác Độ rộng hiển thị tối thiểu ✦ C tự động xác định chỗ cần thiết để hiển thị đủ nội dung ✦ Số nguyên, ký tự, xâu ký tự: %md, %mc, %ms (m >= 0) Ví dụ: int a = 1234; printf("%5d", a); // dành chỗ để hiển thị a printf("\n%5d", 34); // xuống dòng, dành chỗ để hiển thị giá trị 34 ✦ Số thực: %m.nf (m, n >= 0) m: độ rộng cho số thực (phần nguyên, phần thập phân, dấu chấm) n: độ rộng cho phần thập phân Ví dụ:printf("%5.2d", 31.23); Ví dụ:printf("%.2d", 31.23); Ví dụ:printf("%7.2d", 31.23); 53 / 65 Các kiểu liệu chuẩn C Khai báo khởi tạo biến, Biểu thức C Các phép toán (toán tử) C Các lệnh vào liệu Hàm printf() Hàm scanf() Một số hàm vào khác Độ rộng hiển thị tối thiểu Lưu ý: ✦ Khi độ rộng phần định dạng nhỏ số chỗ thực cần thiết: C tự động cấp thêm chỗ để hiển thị ✦ Nếu không: vị trí cịn dư hiểu thị dấu trắng (space) ✦ Ví dụ: Lệnh printf("%f", 12.345); printf("%6.3f", 12.345); printf("%8.3f", 12.345); printf("%8.5f", 12.345); printf("%8.1f", 12.345); printf("%8.2f", 12.345); Hiển thị 12.345 12.345 12.345 12.34500 12.3 12.35 54 / 65 Các kiểu liệu chuẩn C Khai báo khởi tạo biến, Biểu thức C Các phép toán (toán tử) C Các lệnh vào liệu Hàm printf() Hàm scanf() Một số hàm vào khác Căn lề ✦ Căn lề phải: mặc định ✦ Căn lề trái: thêm dấu dạng - sau dấu Lệnh printf("%8.3f", 12.345); printf("%-8.3f", 12.345); printf("%8.1f", 12.345); printf("%-8.1f", 12.345); % phần định Hiển thị 12.345 12.345 12.3 12.3 printf("%-15s %5.2f", 9, "Nguyen Van A", 7.5,); printf("%15s %5.2f", 9, "Nguyen Van A", 7.5,); Kết hiển thị: Nguyen Van A 7.50 Nguyen Van A 7.50 55 / 65 Các kiểu liệu chuẩn C Khai báo khởi tạo biến, Biểu thức C Các phép toán (toán tử) C Các lệnh vào liệu Các kiểu liệu chuẩn C Khai báo khởi tạo biến, Biểu thức C Các phép toán (toán tử) C Các lệnh vào liệu Hàm printf() Hàm scanf() Một số hàm vào khác Hàm printf() Hàm scanf() Một số hàm vào khác 56 / 65 Các kiểu liệu chuẩn C Khai báo khởi tạo biến, Biểu thức C Các phép toán (toán tử) C Các lệnh vào liệu Hàm printf() Hàm scanf() Một số hàm vào khác Hàm scanf() ✦ Mục đích: hàm scanf() dùng để nhập liệu từ bàn phím ✦ Cú pháp: scanf(xau_dinh_dang,[danh_sach_dia_chi]); ✦ Ví dụ: scanf(“%d %f”, &a, &b); 57 / 65 Các kiểu liệu chuẩn C Khai báo khởi tạo biến, Biểu thức C Các phép toán (toán tử) C Các lệnh vào liệu Hàm printf() Hàm scanf() Một số hàm vào khác Hàm scanf() ✦ xau_dinh_dang: – gồm ký tự qui định cho loại liệu nhập vào (định dạng giống hàm printf()) – Ví dụ: kiểu nguyên: %d ✦ danh_sach_dia_chi: – địa biến (toán tử &) phân tách dấu , ✦ danh_sach_dia_chi phải phù hợp với nhóm kí tự định dạng xau_dinh_dang về: – Số lượng – Kiểu liệu – Thứ tự ✦ Ví dụ: scanf(“%d %f”, &a, &b); 58 / 65 Các kiểu liệu chuẩn C Khai báo khởi tạo biến, Biểu thức C Các phép toán (toán tử) C Các lệnh vào liệu Hàm printf() Hàm scanf() Một số hàm vào khác Hàm scanf() - Quy tắc đọc ✦ Đọc SỐ: – ký tự số, dấu chẩm ( ): ký tự hợp lệ – gặp dấu phân cách: tab, xuống dòng hay dấu cách (space bar ) scanf() hiểu kết thúc nhập liệu cho số ✦ Đọc KÝ TỰ: ký tự có đệm thiết bị vào chuẩn hợp lệ, kể kí tự tab, xuống dòng hay dấu cách ✦ Đọc XÂU: – Hàm scanf() gặp kí tự dấu trắng, dấu tab hay dấu xuống dịng hiểu kết thúc nhập liệu cho xâu kí tự ✦ ⇒ Trước nhập liệu kí tự hay xâu kí tự ta nên dùng lệnh fflush(stdin); để xóa đệm 59 / 65 Các kiểu liệu chuẩn C Khai báo khởi tạo biến, Biểu thức C Các phép toán (toán tử) C Các lệnh vào liệu Hàm printf() Hàm scanf() Một số hàm vào khác Ví dụ #i n c l u d e #i n c l u d e < s t d i o h> v o i d main ( ) { // k h a i bao b i e n i n t a ; f l o a t x ; c h a r ch ; c h a r s t r [ ] ; // Nhap du l i e u p r i n t f ( " Nhap vao mot s o nguyen : " ) ; s c a n f ( "%d" ,& a ) ; p r i n t f ( " \n Nhap vao mot s o t h u c : " ) ; s c a n f ( "%f " ,& x ) ; p r i n t f ( " \n Nhap vao mot k i t u : " ) ; f f l u s h ( s t d i n ) ; s c a n f ( "%c " ,& ch ) ; p r i n t f ( " \n Nhap vao mot xau k i t u : " ) ; f f l u s h ( s t d i n ) ; s c a n f ( "%s " , s t r ) ; // H i e n t h i du l i e u vua nhap vao p r i n t f ( " \n Nhung du l i e u vua nhap vao " ) ; p r i n t f ( " \n So nguyen : %d" , a ) ; p r i n t f ( " \n So t h u c : %.2 f " , x ) ; p r i n t f ( " \n Ki t u : %c " , ch ) ; p r i n t f ( " \n Xau k i t u : %s " , s t r ) ; getch () ; } 60 / 65 Các kiểu liệu chuẩn C Khai báo khởi tạo biến, Biểu thức C Các phép toán (toán tử) C Các lệnh vào liệu Các kiểu liệu chuẩn C Khai báo khởi tạo biến, Biểu thức C Các phép toán (toán tử) C Các lệnh vào liệu Hàm printf() Hàm scanf() Một số hàm vào khác Hàm printf() Hàm scanf() Một số hàm vào khác 61 / 65 Các kiểu liệu chuẩn C Khai báo khởi tạo biến, Biểu thức C Các phép toán (toán tử) C Các lệnh vào liệu Hàm printf() Hàm scanf() Một số hàm vào khác Một số hàm vào khác ✦ Hàm gets(): – dùng để nhập vào từ bàn phím xâu kí tự bao gồm dấu cách (hàm scanf() KHÔNG làm được) – Cú pháp: gets (ten_bien); – Ví dụ: char str[40]; printf("Nhap vao mot xau ki tu:"); fflush(stdin); gets(str); 62 / 65 Các kiểu liệu chuẩn C Khai báo khởi tạo biến, Biểu thức C Các phép toán (toán tử) C Các lệnh vào liệu Hàm printf() Hàm scanf() Một số hàm vào khác Một số hàm vào khác ✦ Hàm puts(xâu_kí_tự): – Hiển thị hình nội dung xâu_kí_tự sau đưa trỏ xuống dịng – Cú pháp: puts(xâu_kí_tự); – Ví dụ: puts(“Nhap vao xau ki tu:”); ⇐⇒ printf("%s\n","Nhap vao xau ki tu:"); 63 / 65 Các kiểu liệu chuẩn C Khai báo khởi tạo biến, Biểu thức C Các phép toán (toán tử) C Các lệnh vào liệu Hàm printf() Hàm scanf() Một số hàm vào khác Một số hàm vào khác ✦ Hàm getch(): – thường dùng để chờ người sử dụng ấn phím kết thúc chương trình – Cú pháp: getch(); ✦ Để sử dụng hàm gets(), puts(), getch() ta cần khai báo tệp tiêu đề conio.h #include #include"conio.h" 64 / 65 Các kiểu liệu chuẩn C Khai báo khởi tạo biến, Biểu thức C Các phép toán (toán tử) C Các lệnh vào liệu Hàm printf() Hàm scanf() Một số hàm vào khác Questions & Answers 65 / 65 ... trị ÷ 255 byte bytes −128 ÷ 127 ÷ 65 , 535 bytes −32, 768 ÷ 32, 767 bytes −32, 768 ÷ 32, 767 compiler 16bit, dùng sizeof(kieu du lieu) để biết kích thước xác / 65 Các kiểu liệu chuẩn C Khai báo... dụng biểu thức Biểu thức số học ✦ biểu thức mà giá trị đại lượng số học (số nguyên, số thực) ✦ toán tử phép toán số học (cộng, trừ, nhân, chia ), toán hạng đại lượng số học (số, biến, hằng) ✦ Ví... thức số học Biểu thức logic Biểu thức quan hệ Sử dụng biểu thức 16 / 65 Các kiểu liệu chuẩn C Khai báo khởi tạo biến, Biểu thức C Các phép toán (toán tử) C Các lệnh vào liệu Biểu thức số học Biểu