Bài giảng Nhập môn lập trình - Chương 3: Các kiểu dữ liệu cơ sở cung cấp cho người đọc các kiến thức: Các kiểu dữ liệu cơ sở, biến, hàng số, biểu thức, toán tử gán, toán tử một ngôi, toán tử hai ngôi,... Mời các bạn cùng tham khảo nội dung chi tiết.
ĐH CNTT NMLT Chương Các kiểu liệu sở ThS Cáp Phạm Đình Thăng Chương - ĐH CNTT NMLT Các kiểu liệu sở Ngơn ngữ C có kiểu liệu sở: Kiểu số nguyên Kiểu số thực Kiểu luận lý: Giá trị sai Kiểu ký tự: 256 ký tự bảng mã ASCII ThS Cáp Phạm Đình Thăng Chương - ĐH CNTT NMLT 1.1 Kiểu số nguyên có dấu Kiểu (Type) char int short long Độ lớn (Byte) 2 Miền giá trị (Range) –128 … +127 –32.768 … +32.767 –32.768 … +32.767 –2.147.483.648 … +2.147.483.647 ThS Cáp Phạm Đình Thăng Chương - ĐH CNTT NMLT 1.2 Kiểu số nguyên không dấu Kiểu (Type) unsigned char unsigned int unsigned short unsigned long Độ lớn (Byte) 2 ThS Cáp Phạm Đình Thăng Miền giá trị (Range) … 255 … 65.535 … 65.535 … 4.294.967.295 Chương - ĐH CNTT NMLT 1.3 Kiểu số thực Các kiểu số thực (floating-point) Ví dụ • 17.06 = 1.706*10 = 1.706*101 Kiểu (Type) float (*) double (**) Độ lớn (Byte) Miền giá trị (Range) 3.4*10–38 … 3.4*1038 1.7*10–308 … 1.7*10308 • (*) Độ xác đơn (Single-precision) xác đến số lẻ • (**) Độ xác kép (Double-precision) xác đến 19 số lẻ ThS Cáp Phạm Đình Thăng Chương - ĐH CNTT NMLT 1.4 Kiểu luận lý Ngôn ngữ C: ngầm định không tường minh: false: sai, giá trị true: đúng, giá trị khác 0, thường C++: bool Ví dụ: : false, 1: true, 2: true, 2.5: true > 2: false, < : true ThS Cáp Phạm Đình Thăng Chương - ĐH CNTT NMLT 1.6 Kiểu ký tự Tên kiểu: char Miền giá trị: 256 ký tự bảng ASCII Cũng kiểu số nguyên vì: Dữ liệu lưu dạng số Ví dụ: lưu 65 cho ký tự ‘A’… ThS Cáp Phạm Đình Thăng Chương - ĐH CNTT NMLT Biến Khai báo biến: ; ,; ThS Cáp Phạm Đình Thăng Chương - ĐH CNTT NMLT Biến Ví dụ: i biến có kiểu liệu số nguyên int i; j, k hai biến có kiểu liệu số thực float j, k; ThS Cáp Phạm Đình Thăng Chương - ĐH CNTT NMLT Hằng số Cú pháp khai báo số: #define const = ; Ví dụ: #define MAX 1000 //khơng có ; #define PI 3.14 //Khơng có ; const int MAX = 1000; const float PI = 3.14; ThS Cáp Phạm Đình Thăng Chương - 10 ĐH CNTT NMLT Câu lệnh Khái niệm Là thị trực tiếp, hồn chỉnh nhằm lệnh cho máy tính thực số tác vụ định Trình biên dịch bỏ qua khoảng trắng (hay tab xuống dịng) chen lệnh Ví dụ a=2912; a = 2912; a = 2912; ThS Cáp Phạm Đình Thăng Chương - 26 ĐH CNTT NMLT Câu lệnh Phân loại Câu lệnh đơn: gồm câu lệnh Câu lệnh phức (khối lệnh): gồm nhiều câu lệnh đơn bao { } Ví dụ a = 2912; { // Câu lệnh đơn // Câu lệnh phức/khối lệnh a = 2912; b = 1706; } ThS Cáp Phạm Đình Thăng Chương - 27 ĐH CNTT NMLT Câu lệnh xuất Thư viện #include (standard input/output) Cú pháp printf([, , , …]); cách trình bày thơng tin xuất đặt cặp nháy kép “ ” • Văn thường (literal text) • Ký tự điều khiển (escape sequence) • Đặc tả (conversion specifier) ThS Cáp Phạm Đình Thăng Chương - 28 ĐH CNTT NMLT Chuỗi định dạng Văn thường (literal text) Được xuất y hệt lúc gõ chuỗi định dạng Ví dụ Xuất chuỗi Hello World printf(“Hello ”); printf(“World”); printf(“Hello World”); Xuất chuỗi a + b printf(“a + b”); ThS Cáp Phạm Đình Thăng Chương - 29 ĐH CNTT NMLT Chuỗi định dạng Ký tự điều khiển (escape sequence) Gồm dấu \ ký tự bảng sau: Ký tự điều khiển Ý nghĩa \a \b \n \t \\ \? \” Tiếng chuông Lùi lại bước Xuống dòng Dấu tab In dấu \ In dấu ? In dấu “ Ví dụ printf(“\t”); printf(“\n”); printf(“\t\n”); ThS Cáp Phạm Đình Thăng Chương - 30 ĐH CNTT NMLT Chuỗi định dạng Đặc tả (conversion specifier) Gồm dấu % ký tự Xác định kiểu biến/giá trị muốn xuất Các đối số biến/giá trị muốn xuất, liệt kê theo thứ tự cách dấu phẩy Đặc tả Ý nghĩa %c %d, %ld %f, %lf %s %u Ký tự Số nguyên có dấu Số thực Chuỗi ký tự Số nguyên không dấu ThS Cáp Phạm Đình Thăng char int, short, long float, double char[], char* unsigned int/short/long Chương - 31 ĐH CNTT NMLT Chuỗi định dạng Ví dụ int a = 10, b = 20; printf(“%d”, a); Xuất 10 printf(“%d”, b); Xuất 20 printf(“%d %d”, a, b); Xuất 10 20 float x = 15.06; printf(“%f”, x); Xuất 15.060000 printf(“%f”, 1.0/3); Xuất 0.333333 ThS Cáp Phạm Đình Thăng Chương - 32 ĐH CNTT NMLT Định dạng xuất Cú pháp Định dạng xuất số nguyên: %nd Định dạng xuất số thực: %n.kd int a = 1706; float x = 176.85; printf(“%10d”, a);printf(“\n”); printf(“%10.2f”, x);printf(“\n”); printf(“%.2f”, x);printf(“\n”); 7 ThS Cáp Phạm Đình Thăng Chương - 33 ĐH CNTT NMLT Chuỗi định dạng Phối hợp thành phần int a = 1, b = 2; Xuất cong bang xuống dịng • printf(“%d”, a);// Xuất giá trị biến a • printf(“ cong ”);// Xuất chuỗi “ cong ” • printf(“%d”, b);// Xuất giá trị biến b • printf(“ bang ”);// Xuất chuỗi “ bang ” • printf(“%d”, a + b);// Xuất giá trị a + b • printf(“\n”);// Xuất điều khiển xuống dịng \n printf(“%d cong %d bang %d\n”, a, b, a+b); ThS Cáp Phạm Đình Thăng Chương - 34 ĐH CNTT NMLT Câu lệnh nhập Thư viện #include (standard input/output) Cú pháp scanf([, , , …]); giống định dạng xuất có đặc tả Các đối số tên biến chứa giá trị nhập đặt trước dấu & ThS Cáp Phạm Đình Thăng Chương - 35 ĐH CNTT NMLT Câu lệnh nhập Ví dụ, cho a b kiểu số nguyên scanf(“%d”, &a);// Nhập giá trị cho biến a scanf(“%d”, &b);// Nhập giá trị cho biến b scanf(“%d%d”, &a, &b); Các câu lệnh sau sai • scanf(“%d”, a);// Thiếu dấu & • scanf(“%d”, &a, &b);// Thiếu %d cho biến b • scanf(“%f”, &a);// a biến kiểu số ngun • scanf(“%9d”, &a);// khơng định dạng • scanf(“a = %d, b = %d”, &a, &b”); ThS Cáp Phạm Đình Thăng Chương - 36 ĐH CNTT NMLT Một số hàm hữu ích khác Các hàm thư việc toán học #include đầu vào: double, Trả kết quả: double • acos, asin, atan, cos, sin, … • exp, log, log10 • sqrt • ceil, floor • abs, fabs đầu vào: double, Trả kết quả: double • double pow(double x, double y) ThS Cáp Phạm Đình Thăng Chương - 37 ĐH CNTT NMLT Một số hàm hữu ích khác Ví dụ int x = 4, y = 3, z = -5; float t = -1.2; float kq1 = sqrt(x1); int kq2 = pow(x, y); float kq3 = pow(x, 1/3); float kq4 = pow(x, 1.0/3); int kq5 = abs(z); float kq6 = fabs(t); ThS Cáp Phạm Đình Thăng Chương - 38 ĐH CNTT NMLT Bài tập lý thuyết Trình bày kiểu liệu sở C cho ví dụ Trình bày khái niệm biến cách sử dụng lệnh gán Phân biệt thường ký hiệu Cho ví dụ minh họa Trình bày khái niệm biểu thức Tại nên sử dụng cặp ngoặc đơn Trình bày cách định dạng xuất ThS Cáp Phạm Đình Thăng Chương - 39 ĐH CNTT NMLT Bài tập thực hành Viết chương trình nhập vào tên bạn, sau chương trình đưa dòng chữ: “Chao ” Viết chương trình chuyển độ F sang độ C biết cơng thức chuyển C=5/9(F-32) Viết chương trình nhập vào số nguyên chữ số ( từ 100-999) Sau in chữ số thuộc hàng trăm, hàng chục, hàng đơn vị Nhập vào ba số nguyên Tìm số lớn số nhỏ Nhập vào số tiền X Đổi số tiền X thành đồng tiền mệnh giá 5k, 2k, 1k Ví dụ: 134k = 26 tờ 5k + tờ 2k ThS Cáp Phạm Đình Thăng Chương - 40 ... (Range) 3. 4*10? ?38 … 3. 4*1 038 1.7*10? ?30 8 … 1.7*1 030 8 • (*) Độ xác đơn (Single-precision) xác đến số lẻ • (**) Độ xác kép (Double-precision) xác đến 19 số lẻ ThS Cáp Phạm Đình Thăng Chương - ĐH CNTT... float x = 15.06; printf(“%f”, x); Xuất 15.060000 printf(“%f”, 1.0 /3) ; Xuất 0 .33 333 3 ThS Cáp Phạm Đình Thăng Chương - 32 ĐH CNTT NMLT Định dạng xuất Cú pháp Định dạng xuất số nguyên: %nd... (x = 11, y = 11) ThS Cáp Phạm Đình Thăng Chương - 16 ĐH CNTT NMLT Tốn tử ngơi Có tốn hạng biểu thức +, - , * , / , % x = x + y x += y; ThS Cáp Phạm Đình Thăng Chương - 17 ĐH CNTT NMLT Các