Bài giảng Tin học đại cương 2 - Chương 1: Tổng quan về ngôn ngữ lập trình C tìm hiểu đặc điểm của ngôn ngữ C; trình biên dịch; bộ kí tự và từ khóa; các kiểu dữ liệu chuẩn; khai báo biến; vị trí khai báo biến; biểu thức và toán tử...
1.1 Giới thiệu chung C ngôn ngữ phát triển C++ phổ biến rộng rãi ngơn ngữ lập trình chủ yếu việc xây dựng phần mềm Lịch sử phát triển : 1972 • C đời phát triển hai nhà khoa học máy tính Brian W.Kernighan Dennis Ritchie 1978 1989 • Cuốn sách “The C Programming Language” xuất lần để giới thiệu ngôn ngữ C • Phiên chuẩn hóa ANSI cơng bố “The C Programming Language” Xuất lần hai Khoa CNTT - Bài giảng THDC - Khối ngành kỹ thuật 1.1 Giới thiệu chung Cuốn “The c programming language” xuất lần Dennis MacAlistair Ritchie ( 09/09/1941 – 12/10/2011) Khoa CNTT - Bài giảng THDC - Khối ngành kỹ thuật Đặc điểm ngôn ngữ C Phân biệt chữ hoa chữ thường Có số phép toán thư viện hàm phong phú Các biểu thức biểu diễn chuỗi ký tự ngắn gọn Tương thích với nhiều hệ điều hành Unix, Windows… Khoa CNTT - Bài giảng THDC - Khối ngành kỹ thuật Trình biên dịch Trình biên dịch hay phần mềm biên dịch (compiler) chương trình máy tính làm cơng việc dịch chuỗi câu lệnh viết ngơn ngữ lập trình thành chương trình tương đương dạng ngơn ngữ máy tính Những trình dịch C ngày thường cung cấp kèm chung với C++ Sau danh sách số trình dịch phổ biến: GCC Borland C/C++ Microsoft Visual Studio Turbo C/C++ C Free Dev C/C++ Code Block Khoa CNTT - Bài giảng THDC - Khối ngành kỹ thuật 1.2 Bộ kí tự từ khóa Bộ chữ viết ngôn ngữ C bao gồm kí tự, ký hiệu sau: 26 chữ Latinh lớn: A, B, C , Z 26 chữ Latinh nhỏ: a, b, c , z 10 chữ số thập phân: 0, 1, Các ký hiệu toán học: +, -, *, /, =, Các ký hiệu đặc biệt: , ; : " ' _ @ % # $ ! ^ [ ] { } ( ) Dấu cách hay khoảng trống (Trình biên dịch bỏ qua kí tự khoảng trắng (space) khơng nằm chuỗi ) Khoa CNTT - Bài giảng THDC - Khối ngành kỹ thuật 1.2 Bộ kí tự từ khóa Từ khóa từ dành riêng (reserved words) ngơn ngữ mà người lập trình Mỗi từ khóa có ý nghĩa xác định khơng thể thay đổi Dưới từ khóa ngơn ngữ C: Khoa CNTT - Bài giảng THDC - Khối ngành kỹ thuật 1.3 Định danh ( đặt tên ) Định danh dãy kí tự dùng để gọi tên đối tượng chương trình biến, hằng, hàm, mảng,… Một số qui tắc cần tuân theo đặt tên C: Không bắt đầu chữ số, không trùng với từ khóa Chỉ sử dụng ký tự gồm chữ (A Z,a z), chữ số (0 9) dấu gạch ‘_’ Ví dụ: dien_tich /*Định danh hợp lệ*/ dien tich /*Định danh không hợp lệ*/ Khoa CNTT - Bài giảng THDC - Khối ngành kỹ thuật 1.4 Các kiểu liệu chuẩn Kiểu Kí tự Số nguyên Số thực Kích thước Miền giá trị char byte -128 +127 unsigned char byte 255 int byte -32768 32767 (- unsigned int byte long byte -2147483648 2147483647 (-2 2 -1) unsigned long byte 4294967295 (0 -1) float byte double byte 1.7*10 1.7*10 long double 10 byte 3.4*10 1.1*10 65535 (02 3.4*10 2 -1) - 1) 3.4*10 Khoa CNTT - Bài giảng THDC - Khối ngành kỹ thuật 1.4 Các kiểu liệu chuẩn Chú ý: Kiểu ký tự xem dạng kiểu số ngun Ngồi kiểu kí tự, kiểu số nguyên số thực ra, C có kiểu liệu void, kiểu mang ý nghĩa kiểu rỗng khơng chứa giá trị 10 Khoa CNTT - Bài giảng THDC - Khối ngành kỹ thuật Toán tử tăng giảm Phép toán tăng ++ cộng thêm Ví dụ: ++n; hay n++; n = n+1; Phép toán giảm trừ Ví dụ: n; hay n ; n = n -1; Lưu ý: Trường hợp sử dụng tốn tử biểu thức việc đặt trước hay sau ảnh hưởng đến kết toán: - Đặt trước: Để thay đổi giá trị cho n trước sử dụng n - Đặt sau: Để thay đổi giá trị cho n sau sử dụng n xong Ví dụ: Với n = Lệnh x = ++n; n = n + 1; x = n; Lệnh x = n++; x = n; n = n + 1; 26 Khoa CNTT - Bài giảng THDC - Khối ngành kỹ thuật Toán tử dấu phẩy (biểu _thức_1, biểu_thức_2,…, biểu_thức_n) Thực từ trái sang phải Kết kiểu liệu biểu thức dấu phẩy biểu thức cuối Ví dụ: m = (t = 2, t*t + 3); m = 27 Khoa CNTT - Bài giảng THDC - Khối ngành kỹ thuật Toán tử điều kiện “?”và “:” Điều_kiện? biểu_thức_1:biểu_thức_2 Giá trị biểu_thức_1 Điều_kiện có giá trị đúng, ngược lại giá trị biểu_thức_2 Ví dụ: Với x = t = (x >= ? x : x*-1); t = 28 Khoa CNTT - Bài giảng THDC - Khối ngành kỹ thuật Chuyển kiểu liệu (Tên_kiểu) Biểu_thức Phép chuyển kiểu cho giá trị thuộc kiểu định Bản thân biểu thức khơng thay đổi kiểu Ví dụ 1: Đổi số thực sang số nguyên int a; float b = 2.3; a = (int)( b + 0.5); //Kết a=2 Ví dụ 2: int a = 5, b = 2; float x1, x2; x1 = (float) a / b; //Kết x1=2.5 x2 = a / b; //Kết x2 = 29 Khoa CNTT - Bài giảng THDC - Khối ngành kỹ thuật 1.8 Độ ưu tiên tốn tử Độ ưu tiên Tốn tử Trình tự kết hợp () [] -> ! ~ ++ - + * (type) & sizeof */% +- > < >= == != & 10 ^ 11 | 12 && 13 || 14 ?: 15 = += -= *= /= %= &= … 30 Khoa CNTT - Bài giảng THDC - Khối ngành kỹ thuật 1.9 Cấu trúc chương trình c Các thị #include (khai báo tiền xử lý): Dùng nạp file chứa hàm thư viện sử dụng chương trình Các thị #define: Dùng định nghĩa hằng, hàm, kiểu liệu (nếu cần) Khai báo đối tượng liệu bên hàm: - Biến - Khai báo nguyên mẫu hàm - Kiểu liệu Hàm main: Chứa lệnh cần thực từ xuống Định nghĩa hàm (đã khai báo tiền xử lý) 31 Khoa CNTT - Bài giảng THDC - Khối ngành kỹ thuật Lệnh tiền xử lý #include Đưa thị cho trình biên dịch thực liên kết đến tệp tin thư viện có chứa số hàm mà chương trình cần sử dụng Cách dùng : #include Ví dụ : #include #include #include 32 Khoa CNTT - Bài giảng THDC - Khối ngành kỹ thuật Câu lệnh khối lệnh Câu lệnh thị nhằm lệnh cho chương trình thực tác vụ cụ thể Mỗi câu lệnh viết nhiều dòng, kết thúc dấu chấm phẩy Câu lệnh phân chia thành loại: - Câu lệnh đơn: câu lệnh không chứa câu lệnh khác: câu lệnh gán, lệnh khai báo, lệnh xuất nhập - Câu lệnh phức: câu lệnh có chứa câu lệnh khác bên khối lệnh, câu lệnh rẽ nhánh, câu lệnh lặp, … Khối lệnh gồm nhiều câu lệnh đơn bao cặp dấu ngoặc {} Một khối lệnh lồng bên nhiều khối lệnh khác 33 Khoa CNTT - Bài giảng THDC - Khối ngành kỹ thuật Chú thích C Khi viết chương trình đơi lúc ta cần phải có vài lời ghi đoạn chương trình để dễ nhớ dễ điều chỉnh sau Trong ngôn ngữ lập trình C, nội dung thích viết hai cách: - Cách 1: /*chú_thích*/ Cách viết thích nhiều dịng - Cách 2: //chú_thích Cách viết thích dịng (tức thích kết thúc ta ấn phím enter) Chú ý: Chú thích viết vị trị chương trình khơng ảnh hưởng đến kết chạy chương trình 34 Khoa CNTT - Bài giảng THDC - Khối ngành kỹ thuật Bài tập luyện tập Bài 1: Các định danh sau hợp lệ ? sao? 35 Khoa CNTT - Bài giảng THDC - Khối ngành kỹ thuật Bài tập luyện tập Bài 2: Những biểu tượng sau ? Nếu thuộc kiểu liệu ? 36 Khoa CNTT - Bài giảng THDC - Khối ngành kỹ thuật Bài tập luyện tập Bài 3: Giả sử a, b, c biến kiểu int với a = 8, b = c = Xác định giá trị trả biểu thức sau: 37 Khoa CNTT - Bài giảng THDC - Khối ngành kỹ thuật Bài tập luyện tập Bài 4: Cho chương trình C với biến sau: int i = 8, j = 5; float x = 0.005, y = –0.01; char c = 'c', d = 'd'; (Trong bảng ASCII giá trị nguyên kí tự c d 99 100) Hãy xác định giá trị trả biểu thức sau: 38 Khoa CNTT - Bài giảng THDC - Khối ngành kỹ thuật Bài tập luyện tập Bài 5: Cho chương trình có khai báo biến khởi tạo sau: int i = 8, j = 5, k; float x = 0.005, y = -0.01, z; char a, b, c = 'c', d = 'd'; Xác định giá trị biểu thức gán sau: 39 Khoa CNTT - Bài giảng THDC - Khối ngành kỹ thuật Bài tập luyện tập Bài 6: Tính giá trị biểu thức sau: 40 Khoa CNTT - Bài giảng THDC - Khối ngành kỹ thuật ... đoạn chương trình để dễ nhớ dễ điều chỉnh sau Trong ngơn ngữ lập trình C, nội dung thích viết hai c? ?ch: - C? ?ch 1: /*chú_thích*/ C? ?ch viết thích nhiều dịng - C? ?ch 2: //chú_thích C? ?ch viết thích... Những trình dịch C ngày thường cung c? ??p kèm chung với C+ + Sau danh sách số trình dịch phổ biến: GCC Borland C/ C++ Microsoft Visual Studio Turbo C/ C++ C Free Dev C/ C++ Code Block Khoa... Khoa CNTT - Bài giảng THDC - Khối ngành kỹ thuật 1.4 C? ?c kiểu liệu chuẩn Kiểu Kí tự Số nguyên Số th? ?c Kích thư? ?c Miền giá trị char byte - 128 + 127 unsigned char byte 25 5 int byte - 327 68 327 67