Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 36 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
36
Dung lượng
737,88 KB
Nội dung
TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG TIN HỌC ĐẠI CƢƠNG Bài Kiểu liệu biểu thức C Nội dung 7.1 Các kiểu liệu chuẩn C 7.2 Khai báo khởi tạo biến, 7.3 Biểu thức C 7.4 Các phép toán C 7.5 Một số toán tử đặc trƣng 7.6 Các lệnh vào liệu với biến Đỗ Bá Lâm lamdb-fit@mail.hut.edu.vn 7.1 Các kiểu liệu chuẩn C Kiểu liệu Ý nghĩa Kích thước 7.1 Các kiểu liệu chuẩn C Miền liệu Kiểu liệu Ý nghĩa Kích thước Miền liệu byte 0 4,294,967,295 unsigned char Kí tự khơng dấu byte 255 unsigned long Số ngun khơng dấu char Kí tự có dấu byte -128 127 long Số nguyên có dấu byte -2,147,483,648 2,147,483,647 unsigned int Số nguyên không dấu byte 065.535 float byte 3.4E-38 3.4E+38 int Số nguyên có dấu byte -32.76832.767 double Số thực dấu phẩy động, độ xác đơn Số thực dấu phẩy động, độ xác kép byte 1.7E-308 1.7E+308 Nội dung 7.2.1 Khai báo khởi tạo biến 7.1 Các kiểu liệu chuẩn C 7.2 Khai báo khởi tạo biến, 7.3 Biểu thức C 7.4 Các phép toán C 7.5 Một số toán tử đặc trƣng 7.6 Các lệnh vào liệu với biến • Một biến trƣớc sử dụng phải đƣợc khai báo • Cú pháp khai báo: kieu_du_lieu ten_bien; Hoặc: kieu_du_lieu ten_bien1, …, ten_bienN; • Ví dụ: Khai báo biến x thuộc kiểu số nguyên byte có dấu (int), biến y, z,t thuộc kiểu thực byte (float) nhƣ sau: int x; float y,z,t; x = 3; y = x + 1; 7.2.1 Khai báo khởi tạo biến (2) 7.2.2 Khai báo Kết hợp khai báo khởi tạo • Cách 1: Dùng từ khóa #define: • Cú pháp: kieu_du_lieu ten_bien = gia_tri_ban_dau; – Cú pháp: Hoặc: # define ten_hang gia_tri kieu_du_lieu bien1=gia_tri1, bienN=gia_triN; – Ví dụ: • Ví dụ: #define MAX_SINH_VIEN 50 #define CNTT “Cong nghe thong tin” #define DIEM_CHUAN 23.5 int a = 3;// sau lenh bien a se co gia tri bang float x = 5.0, y = 7.6; // sau lenh x co gia // tri 5.0, y co gia tri 7.6 7.2.2 Khai báo • Cách 2: Dùng từ khóa 7.2.2 Khai báo • Chú ý: const : – Giá trị phải đƣợc xác định khai báo – Trong chƣơng trình, KHÔNG thể thay đổi đƣợc giá trị – #define thị tiền xử lý (preprocessing directive) – Cú pháp: const kieu_du_lieu ten_hang = gia_tri; – Ví dụ: const int MAX_SINH_VIEN = 50; const char CNTT[20] = “Cong nghe thong tin”; const float DIEM_CHUAN = 23.5; • Dễ đọc, dễ thay đổi • Dễ chuyển đổi tảng phần cứng • Tốc độ nhanh 10 Nội dung 7.6.1 Các loại biểu thức 7.1 Các kiểu liệu chuẩn C 7.2 Khai báo khởi tạo biến, 7.3 Biểu thức C 7.4 Các phép toán C 7.5 Một số toán tử đặc trƣng 7.6 Các lệnh vào liệu với biến • a Biểu thức số học: – Là biểu thức mà giá trị đại lƣợng số học (số nguyên, số thực) – Cá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í dụ: • • • • 11 a, b, c biến thuộc kiểu liệu số * 3.7 + 6/3 a + b – c… 12 7.6.1 Các loại biểu thức 7.6.1 Các loại biểu thức • b Biểu thức logic: • c Biểu thức quan hệ: – Là biểu thức mà giá trị giá trị logic, tức hai giá trị: Đúng (TRUE) Sai (FALSE) – Là biểu thức có sử dụng tốn tử quan hệ so sánh nhƣ lớn hơn, nhỏ hơn, nhau, khác nhau… – Chỉ nhận giá trị giá trị Đúng (TRUE) Sai (FALSE) Biểu thức quan hệ trƣờng hợp riêng biểu thức logic • Giá trị nguyên khác 0: Đúng (TRUE), • Giá trị 0: Sai (FALSE) – Các phép tốn logic gồm có • AND: VÀ logic, kí hiệu && • OR: HOẶC logic, kí hiệu || • NOT: PHỦ ĐỊNH, kí hiệu ! 13 14 7.6.1 Các loại biểu thức 7.6.1 Các loại biểu thức • Ví dụ biểu thức quan hệ: • Ví dụ biểu thức logic: 15 16 7.6.7 Sử dụng biểu thức Nội dung • • • • 7.1 Các kiểu liệu chuẩn C 7.2 Khai báo khởi tạo biến, 7.3 Biểu thức C 7.4 Các phép toán C 7.5 Một số toán tử đặc trƣng 7.6 Các lệnh vào liệu với biến Làm vế phải lệnh gán Làm toán hạng biểu thức khác Làm tham số thực lời gọi hàm Làm số cấu trúc lặp for, while, while • Làm biểu thức kiểm tra cấu trúc rẽ nhánh if, switch 17 18 7.4.1 Phép toán số học 7.4 Các phép tốn C • Bao gồm: – Nhóm phép tốn số học – Nhóm phép tốn thao tác bit – Nhóm phép tốn quan hệ – Nhóm phép tốn logic – Ngồi C cịn cung cấp số phép toán khác nhƣ phép gán, phép lấy địa chỉ… 19 20 10 a Mục đích cú pháp (5) a Mục đích cú pháp (6) • Mỗi nhóm kí tự định dạng dùng cho kiểu liệu Ví dụ: %d dùng cho kiểu nguyên %f dùng cho kiểu thực • Nếu nhóm kí tự định dạng tham số tƣơng ứng không phù hợp với hiển thị kết khơng nhƣ ý • danh_sach_tham_so 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ự 43 44 22 b Một số nhóm định dạng phổ biến Nhóm kí tự định dạng Kiểu liệu b Một số nhóm định dạng phổ biến (2) Kết Nhóm kí tự định dạng Kiểu liệu Kết %c int, char Kí tự đơn lẻ %ld, %li long Số thập phân %i, %d int, char Số thập phân %lo long Số bát phân %o int, char Số bát phân (khơng có đằng trƣớc) %lx, %LX (khơng có đằng trƣớc) %x, %X int, char unsigned int/char Số hexa (chữ thƣờng/chữ hoa) Số hexa %lu (chữ thƣờng/chữ hoa) %u long unsigned long Số thập phân Số thập phân 45 46 23 c Độ rộng hiển thị - số nguyên c Một số nhóm định dạng phổ biến (3) Nhóm kí tự định dạng %s Kiểu liệu char [] %f float/double %e, %E float/double % • Đối với số nguyên ký tự xâu ký tự: Kết – Có dạng %md, với m số ngun khơng âm – Ví dụ: Có số a = 1234 Lệnh: Hiển thị xâu kí tự kết thúc „\0‟ Số thực dấu phẩy tĩnh Số thực dấu phẩy động Hiển thị kí tự % printf("%5d",a);//danh cho de hien thi a printf(“\n%5d",34); Cho kết quả: 1234 34 (kí hiệu cho dấu cách đơn (space) ) 48 47 24 c Độ rộng hiển thị - số nguyên (2) c Độ rộng hiển thị - số thực • Ví dụ: • m, n số nguyên không âm %m.nf printf("\n%3d %15s %3c", 1, "nguyen van a", 'g'); printf("\n%3d %15s %3c", 2, "tran van b", 'k'); Trong đó: • Kết quả: – m vị trí để hiển thị số thực – n vị trí m vị trí để hiển thị phần thập phân 1 nguyen van a g 2 van b tran k 49 50 25 c Độ rộng hiển thị - số thực (2) c Độ rộng hiển thị - Chú ý • Ví dụ: printf("\n%f",17.345); printf("\n%.2f",17.345); printf("\n%7.2f",17.345); • Kết quả: • Khi số chỗ cần thiết để hiển thị nội dung liệu lớn định dạng: – Tự động cung cấp thêm chỗ để hiển thị không cắt bớt nội dung liệu – Ví dụ: a=1000 printf(“So a la: %1d”, a); 17.345000 17.35 17.35 – Kết quả: So a la: 1000 51 52 26 d Căn lề phải, lề trái d Căn lề phải, lề trái (2) • Căn lề phải: • Ví dụ: printf("\n%-3d %-15s %5.2f %-3c", 9, "nguyen van a", 7.5, 'g'); printf("\n%-3d %-15s %5.2f %-3c", 10, “nguyen ha", 6.75, 'k'); – Khi hiển thị liệu, mặc định C lề phải • Căn lề trái: – Nếu muốn lề trái hiển thị liệu ta cần thêm dấu trừ - vào sau dấu % • Kết quả: 9 nguyen van a 7.50g 10 nguyen ha 6.75k 53 54 27 a Mục đích cú pháp (3) 7.6.2 Hàm scanf • Xau_dinh_dang: a Mục đích cú pháp: – Gồm ký tự đƣợc qui định cho loại liệu đƣợc nhập vào – Ví dụ: Với liệu định nhập vào kiểu nguyên xâu định dạng : %d • Mục đích: – Hàm scanf() dùng để nhập liệu từ bàn phím • Cú pháp: • Danh_sach_dia_chi: scanf(xau_dinh_dang,[danh_sach_dia_chi]); • Ví dụ: – Bao gồm địa biến (toán tử &), phân tách dấu phẩy (,) scanf(“%d %f”, &a, &b); 55 56 28 a Mục đích cú pháp (4) b Một số nhóm định dạng phổ biến • danh_sach_dia_chi phải phù hợp với nhóm kí tự định dạng xau_dinh_dang về: Nhóm kí tự định dạng Kiểu liệu Chú thích %c char Kí tự đơn lẻ %d int Số thập phân %o int Số bát phân %x int Số hexa %u – Số lƣợng – Kiểu liệu – Thứ tự unsigned int Số thập phân 57 58 29 Ví dụ c Một số nhóm định dạng phổ biến (3) Nhóm kí tự định dạng %s char[] %f float %ld %lf long double % Kiểu liệu #include #include void main() { // khai bao bien int a; float x; char ch; char[30] str; // Nhap du lieu printf(“Nhap vao mot so nguyen”); scanf(“%d”,&a); printf(“\n Nhap vao mot so thuc”); scanf(“%f”,&x); Chú thích Hiển thị xâu kí tự kết thúc „\0‟ Số thực dấu phẩy tĩnh Số nguyên Số thực dấu phẩy tĩnh Đọc ký tự % 60 59 30 Ví dụ Ví dụ • Kết quả: Nhap vao mot so nguyen: 2007 Nhap vao mot so thuc: 17.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: 17.16 Ki tu: b Xau ki tu: ngon 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); // 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(); } 61 62 31 c Một số quy tắc cần lƣu ý c Một số quy tắc cần lƣu ý (tiếp) • Quy tắc 1: Khi đọc số • Quy tắc 2: Khi đọc kí tự: Hàm scanf() cho 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 – Hàm scanf() quan niệm kí tự số, dấu chấm („.‟) kí tự hợp lệ – Khi gặp dấu phân cách nhƣ 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ố 63 64 32 c Một số quy tắc cần lƣu ý (tiếp) 7.6.3 Các lệnh vào khác • Quy tắc 3: Khi đọc xâu kí tự: + 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 • 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, điều mà hàm scanf() không làm đƣợc • Cú pháp : gets (xâu_kí_tự); • Ví dụ: char[40] str; printf(“Nhap vao mot xau ki tu:”); fflush(stdin); gets(str); 65 66 33 7.6.3 Các lệnh vào khác (2) 7.6.3 Các lệnh vào khác (3) • Hàm puts(): • 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 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:”); • Tƣơng đƣơng với lệnh: printf(“%s\n”,“Nhap vao xau ki tu:“) getch(); • Để sử dụng hàm gets(), puts(), getch() ta cần khai báo tệp tiêu đề conio.h 67 68 34 7.6.3 Các lệnh vào khác (4) Các lệnh nhập xuất khác • Ví dụ: #include #include void main() { char[30] str; puts(“Hay cho biet ho ten ban:”); fflush(stdin); gets(str); printf(“Xin chao ”); puts(str); puts(“An phim bat ki de ket thuc ”); getch(); } • 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 69 70 35 Thảo luận 71 36 ... b, c biến thu? ?c kiểu liệu số * 3.7 + 6/3 a + b – c? ?? 12 7.6.1 C? ?c loại biểu th? ?c 7.6.1 C? ?c loại biểu th? ?c • b Biểu th? ?c logic: • c Biểu th? ?c quan hệ: – Là biểu th? ?c mà giá trị giá trị logic, t? ?c. .. dung 7.6 C? ?c lệnh vào liệu 7.1 C? ?c kiểu liệu chuẩn C 7.2 Khai báo khởi tạo biến, 7.3 Biểu th? ?c C 7.4 C? ?c phép toán C 7.5 Một số toán tử đ? ?c trƣng 7.6 C? ?c lệnh vào liệu • C cung c? ??p hàm vào bản:... 7.6.1 C? ?c loại biểu th? ?c • Ví dụ biểu th? ?c quan hệ: • Ví dụ biểu th? ?c logic: 15 16 7.6.7 Sử dụng biểu th? ?c Nội dung • • • • 7.1 C? ?c kiểu liệu chuẩn C 7.2 Khai báo khởi tạo biến, 7.3 Biểu th? ?c C 7.4