Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 39 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
39
Dung lượng
1,69 MB
Nội dung
Chương Kiểu liệu, biến, biểu thức Các kiểu liệu Hằng Biến Phép toán biểu thức Hàm nhập xuất C Các kiểu liệu Các kiểu liệu sơ cấp chuẩn C chia làm dạng : Kiểu số nguyên (integer, long) Kiểu số thực (float, double) Kiểu số nguyên Được dùng để lưu giá trị nguyên hay gọi kiểu đếm Kiểu số nguyên byte (8 bits) STT Kiểu liệu Miền giá trị (Domain) unsigned char Từ đến 255 (tương đương 256 ký tự bảng mã ASCII) char Từ -128 đến 127 Kiểu số nguyên bytes (16 bits) STT Kiểu liệu Miền giá trị (Domain) enum Từ -32,768 đến 32,767 unsigned int Từ đến 65,535 short int Từ -32,768 đến 32,767 Kiểu số nguyên byte (32 bits) STT Kiểu liệu int unsigned long long Miền giá trị (Domain) Từ -32,768 đến 32,767 Từ đến 4,294,967,295 Từ -2,147,483,648 đến 2,147,483,647 Kiểu số thực Được dùng để lưu số thực hay số có dấu chấm thập phân STT Kiểu liệu Kích thước (Size) float bytes double bytes long double 10 bytes Miền giá trị (Domain) Từ 3.4 * 10-38 đến 3.4 * 1038 Từ 1.7 * 10-308 đến 1.7 * 10308 Từ 3.4 *10-4932 đến 1.1 *104932 Ngồi ta có kiểu liệu void Mang ý nghĩa kiểu rỗng khơng chứa giá trị Ví dụ: void main(){ ….} Kiểu char Kiểu kí tự - Biểu diễn thông qua kiểu liệu char - Biểu diễn ký tự thông qua bảng mã ASCII - Hằng kí tự đặt cặp dấu ‘ ’ - Ví dụ: char s; s = ‘d’; Xâu (chuỗi) kí tự đặt cặp “ ” - Ví dụ: char st[100]; st =“Chao cac ban!”; Kiểu liệu Dùng sizeof(): Kích thước kiểu xác định lúc chạy chương trình (runtime), dùng sizeof Ví dụ: sizeof(double) =>8(byte) sizeof(long double)=>10(byte) Kiểu enum: Nó cho phép ta định nghĩa danh sách bí danh (aliase) để trình bày số ngun Ví dụ: enum week { Mon=1, Tue, Wed, Thu, Fri Sat, Sun} days; Định nghĩa kiểu với typedef Một khai báo có thêm tiền tố typedef định nghĩa tên cho kiểu liệu (đã có) typedef KiểuDữLiệu tenMoi; Một tên định nghĩa theo cách gọi “định nghĩa kiểu” Ví dụ: typedef long SoNg32; typedef short int SoNg16; typedef char KITU; Hằng (Constant) Là đại lượng khơng đổi suốt q trình thực thi chương trình Dùng tốn tử #define - Cú pháp: #define - Ví dụ: #define MAX 100 Biến định nghĩa nhờ từ khoá const với cú pháp sau: const = ; Ví dụ: const int MAX = 100; Tên số nên viết chữ in HOA Các loại số Hằng số: Đó giá trị xác định, số nguyên (có kiểu int, long int…) hay thực (có kiểu float, double…) Hằng ký tự: Được đặt dấu nháy đơn ‘’ Ví dụ: 'A', 'a' tương ứng với giá trị nguyên 65, 97 bảng mã ASCII Hằng chuỗi: Là tập hợp ký tự đặt cặp dấu nháy kép " " Ví dụ: “Lap trinh C” Chú ý: “” : chuỗi rỗng - khơng có nội dung Khi lưu trữ nhớ, chuỗi kết thúc ký tự NULL (‘\0’: mã Ascii 0) Biến (variable) Biến: Là nơi lưu trữ liệu nhớ máy tính thực chương trình, đặt tên Giá trị biến bị thay đổi Mỗi biến lưu loại giá trị định, tùy thuộc kiểu biến (kiểu liệu) Phải khai báo biến trước sử dụng Cú pháp khai báo biến: tênbiến; Ví dụ: int a; //Khai báo biến để lưu số nguyên tên a float dienTich; //Khai báo biến để lưu diện tích hình 10 Tốn tử trỏ & * Ví dụ: int *p; //con tro so nguyen int count=5, x; p = &count; =>Đặt vào biến p địa nhớ biến count Tốn tử * trả nội dung nhớ mà trỏ vào Ví dụ: x = *p; // x=5 25 Toán tử dấu phẩy Ví dụ: x = (y=3,y+1); Trước hết gán cho y gán cho x Được sử dụng để kết hợp biểu thức lại với Bên trái dấu (,) xem kiểu void Biểu thức bên phải trở thành giá trị tổng biểu thức phân cách dấu phẩy 26 Độ ưu tiên phép toán Toán tử () [] -> ! ~ ++ sizeof * / % + > < = > == != & | ^ && || ? : = += -= *= /= %= Độ ưu tiên Trình tự kết hợp Từ trái qua phải Từ phải qua trái Từ trái qua phải Từ trái qua phải Từ trái qua phải Từ trái qua phải Từ trái qua phải Từ trái qua phải Từ trái qua phải 10 Từ trái qua phải 11 Từ trái qua phải 12 Từ trái qua phải 13 Từ phải qua trái 14 Từ phải qua trái 27 Phép gán viết gọn lại Cú pháp: x= x y; viết gọn lại (short form): 28 Các lỗi thường gặp viết chương trình Quên khai báo biến sử dụng chương trình Lưu giá trị vào biến không kiểu liệu với biến Sử dụng biến biểu thức chưa có giá trị Lỗi khơng phát trình biên dịch, giá trị biến giá trị kết biểu thức vô nghĩa 29 Phép gán Lệnh gán (assignment statement) dùng để gán giá trị biểu thức cho biến Cú pháp: = ; Ý nghĩa: Gán giá trị cho biến Ví dụ: int main() { int x,y; x =10; // Gán số 10 cho biến x y = 2*x; //Gán giá trị biểu thức 2*x (=20) cho biến y return 0; } Gán giá trị lúc khai báo: 30 Phép gán Kiểu biểu thức biến phải giống Error: "Cannot convert ‘char *’ to ‘int’" 31 Phép gán Tự động chuyển kiểu: Thường có chuyển đổi kiểu tự động Việc chuyển kiểu thực từ tốn hạng có kiểu “hẹp” sang kiểu “rộng” Ví dụ: int x, y; char ch; y = ‘d’; //y co kieu int, ‘d’ có kiểu char float a = 3.34; int b; b = a; //làm xác (loss of precision) a = b; 32 Phép gán Ép kiểu (casting type) Cú pháp: (Tên kiểu) Chuyển đổi kiểu thành kiểu Ví dụ: int x; double y= 3.125; y = (int) y; // lúc y có giá trị ? x = y; //lúc x=? y = x/2; //lúc y có giá trị ? y = (double)x/2; // lúc y có giá trị ? y = x/2.0; // lúc y có giá trị ? 33 Hàm nhập xuất C Thư viện Xuất: printf(“hằng chuỗi”); Vd: printf(“Xin chao cac ban”); printf(“chuỗi định dạng”, đối số 1, đối số 2); Chuỗi định dạng để qui định kiểu liệu, cách biểu diễn, độ rộng, số chữ số thập phân, … Vd: int a=5; float b=2.7; printf(“Gia tri cua bien a=%d, b=%f“, a, b); Nhập: scanf(“chuỗi định dạng”, &tên biến); Vd: int x; scanf(“%d”, &x); 34 Hàm nhập xuất C #include #include void main () { clrscr(); //lệnh xóa trắng hình int age ; float size; printf ( “nhap tuoi“) ; scanf ( “%d”, &age) ; printf ( “chieu cao cua ban: “) ; scanf ( “%f”, &size) ; printf ( “ban %d tuoi va co chieu cao %0.2f \n”,age, size); getch(); //dừng hình xem kết } %[số ký số][.số sau dấu phẩy]: Nhập số thực có tối đa tính dấu chấm, lấy ký số sau dấu thập phân 35 Chuỗi định dạng STT KIỂU GHI CHÚ ĐỊNH DẠNG KIỂU LIÊN TỤC (SỐ THỰC) 3 float double long double KIỂU RỜI RẠC (SỐ NGUYÊN) Ký tự char Số nguyên unsigned char Số nguyên dương int Số nguyên unsigned int Số nguyên dương long Số nguyên unsigned long Số nguyên dương char * Chuỗi ký tự %f %lf %lf %c %d %d %d %u %ld %lu %s 36 Xuất ký tự đặt biệt Để biểu diễn ký tự đặc biệt bên chuỗi ta phải thêm dấu \ phía trước Ký tự Ý nghĩa Ví dụ Xuất dấu nháy đơn printf(“I\’m a student”); Kết quả: I’m a student \” Xuất dấu nháy đôi printf(“ky tu \“dac biet\””); Kết quả: ky tu “dac biet” \\ printf(“ \\ ”); Xuất dấu chéo ngược “\” Kết quả: \ \’ \0 Ký tự NULL Dùng để gán ký tự kết thúc chuỗi 37 Xuất ký tự đặt biệt Ký tự \t Ý nghĩa Tab vào đoạn ký tự trắng \b Xuất lùi sau \n Xuống dòng \r Về đầu dòng Ví dụ printf(“ xyz\tzyx”); Kết quả: xyz zyx printf(“ xyz\bzyx”); Kết quả: xyzyx printf(“ xyz\nzyx”); Kết quả: xyz zyx printf(“ xyz\rzyx”); Kết quả: zyx 38 Sử dụng thư viện toán học include Phép Toán Diễn Giải abs(a) Trị tuyệt đối số nguyên fabs(a) Trị tuyệt đối số thực sqrt(a) Căn bậc hai số pow(a,n) an M_PI Số Pi= 3.1415 39 ... double 10 bytes Miền giá trị (Domain) Từ 3.4 * 10 -38 đến 3.4 * 10 38 Từ 1. 7 * 10 -308 đến 1. 7 * 10 308 Từ 3.4 *10 -49 32 đến 1. 1 *10 49 32 Ngoài ta có kiểu liệu void Mang ý nghĩa kiểu rỗng khơng chứa... liệu Miền giá trị (Domain) unsigned char Từ đến 25 5 (tương đương 25 6 ký tự bảng mã ASCII) char Từ - 12 8 đến 12 7 Kiểu số nguyên bytes (16 bits) STT Kiểu liệu Miền giá trị (Domain) enum Từ - 32, 768... (ĐK)?: Ví dụ: X = (10 > 9) ? 10 0 : 20 0; =>X =10 0 X = (10 >15 )? 10 0 : 20 0; =>X =20 0 24 Toán tử trỏ & * Ví dụ: int *p; //con tro so nguyen int count=5,