1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bài giảng Tin học đại cương 1: Chương 2 - ThS. Nguyễn Thị Mỹ

20 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 1,29 MB

Nội dung

31/01/2012 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) 31/01/2012 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 enum unsigned int short int int Miền giá trị (Domain) Từ -32,768 đến 32,767 Từ đến 65,535 Từ -32,768 đến 32,767 Từ -32,768 đến 32,767  Kiểu số nguyên byte (32 bits) STT Kiểu liệu unsigned long long Miền giá trị (Domain) 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 Ngoài ta cịn có kiểu liệu void  Mang ý nghĩa kiểu rỗng khơng chứa giá trị  Ví dụ: void main(){ ….} 31/01/2012 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; 31/01/2012 Đị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 31/01/2012 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 31/01/2012 Địa biến  Là địa (&) biến nhớ mà cần nhập giá trị cho  Mỗi biến lưu trữ vị trí xác định nhớ, kích thước biến có nhiều byte máy tính cấp phát dãy byte liên tiếp nhau, địa biến lưu byte dãy byte  Cách lấy địa biến: & int anInt; 0xbffecc0 11 Khai báo khởi tạo giá trị ban đầu cho biến Khai báo nhiều biến kiểu tênbiến1, tênbiến2, tênbiến3;  Ví dụ: int a, x, y; Khai báo khởi tạo giá trị ban đầu cho biến tênbiến = giá trị; Ví dụ: int a = 5; float b = 5.4, c = 9; char ch = „n‟; 12 31/01/2012 Tầm vực biến Biến  Được đặt bên tất hàm  Ảnh hưởng đến tồn chương trình (biến tồn cục) 13 Tầm vực biến Biến  Được đặt bên hàm, chương trình hay khối lệnh  Ảnh hưởng đến hàm, chương trình hay khối lệnh chứa (biến cục bộ) Biến tĩnh     Biến tĩnh có kèm từ khóa static vào trước Tồn suốt chương trình Tầm vực sử dụng: tồn cục cục Ví dụ: static int a; 14 31/01/2012 Tầm vực biến Ví dụ: 15 Phép tốn biểu thức  Ví dụ: (-b + sqrt(Delta))/(2*a)  Biểu thức kết hợp  Các toán tử (operator)  Các toán hạng (operand)  Các loại toán tử C  Toán tử số học  Toán tử quan hệ logic  Toán tử Bitwise (thao tác bit)  Toán tử điều kiện  Toán tử trỏ & *  Toán tử dấu phẩy 16 31/01/2012 Các toán tử số học STT PHÉP TOÁN + * Cộng Trừ Nhân / Chia % ++ Ý NGHĨA GHI CHÚ PHÉP TOÁN SỚ HỌC Đối với số ngun kết chia lấy phần nguyên Chỉ áp dụng cho số nguyên Chia lấy phần dư TOÁN TỬ TĂNG GIẢM Nếu toán tử tăng/giảm đặt Tăng trước thì tăng/giảm trước rời Giảm tính biểu thức ngược lại 17 Các tốn tử số học • Tăng giảm (++ & ) ++x hay x++ giống x = x + x hay x giống x = x – • Tuy nhiên: Đâu khác nhau? • Cịn: x = 10; x = 10; y = ++x; y = x++; Kết quả: y = 11, x=11 Kết quả: y = 10, x=11 18 31/01/2012 Biểu thức Boolean (boolean expression)  Khơng có kiểu Boolean (kiểu luận lý) rõ ràng C Thay vào C dùng giá trị nguyên để tượng trưng cho giá trị Boolean, với qui ước: false Giá trị true Bất kỳ giá trị ngoại trừ  Chú ý: C dùng “=” cho phép gán, dùng “= =“ cho phép so sánh Nó trả không 19 Các toán tử quan hệ toán tử Logic  Các phép so sánh sau tạo biểu thức logic có giá trị kiểu Boolean Tốn tử > >= < 5)&&(10 sai (0) 22 11 31/01/2012 Các toán tử Bitwise (thao tác bit) Toán tử Bitwise giúp kiểm tra, gán hay thay đổi bit thật byte word Chỉ dùng cho kiểu char int 23 Toán tử điều kiện Toán tử ? thực lệnh if-else Cú pháp: (ĐK)?: Ví dụ: X = (10 > 9) ? 100 : 200; =>X=100 X = (10 >15 )? 100 : 200; =>X=200 24 12 31/01/2012 Toá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 Toán tử * trả nội dung ô nhớ mà trỏ vào  Ví dụ: x = *p; // x=5 25 Tố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 13 31/01/2012 Độ ưu tiên phép toán Toán tử () [] -> ! ~ ++ - + * * / % + > < = > == != & | ^ && || ? : = += -= *= /= %= & Độ ưu tiên Trình tự kết hợp Từ trái qua phải sizeof 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 14 31/01/2012 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 15 31/01/2012 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, cịn „d‟ có kiểu char ch = 65.7; //ch co kiểu char, cịn 65.7 có kiểu float float a = 3.34; int b; b = a; //làm xác (loss of precision) a = b; 32 16 31/01/2012 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 17 31/01/2012 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 %f \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 18 31/01/2012 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ự Ví dụ Ý nghĩa \‟ 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” \\ Xuất dấu chéo ngược “\” printf(“ \\ ”); 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 19 31/01/2012 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 20

Ngày đăng: 07/09/2023, 03:29

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN