Please enable JavaScript.
Coggle requires JavaScript to display documents.
Chương 2: GIỚI THIỆU NGÔN NGỮ LẬP TRÌNH C - Coggle Diagram
Chương 2: GIỚI THIỆU NGÔN NGỮ LẬP TRÌNH C
Lịch sử phát triển & Đặc điểm của C
Lịch sử phát triển
Dennis Ritchie phát triển tại Bell Labs (1972) dựa trên ngôn ngữ B và BCPL
Dùng viết lại hệ điều hành UNIX (1973)
Xuất bản cuốn sách huyền thoại "The C Programming Language" (1978) của Kernighan & Ritchie
Tiêu chuẩn hóa: ANSI C (C89), ISO C (C90) và C99
Đặc điểm của C
Ngôn ngữ lập trình cấu trúc: Chia nhỏ thành hàm/khối lệnh độc lập, hỗ trợ che giấu thông tin
Tính khả chuyển cao: Chạy được trên nhiều nền tảng phần cứng và hệ điều hành khác nhau
Hiệu quả & Đa năng: Mạnh về xử lý số, văn bản; là ngôn ngữ lập trình hệ thống (sát phần cứng)
Môi trường lập trình C
Quy trình xây dựng chương trình
Tập tin mã nguồn (.c)
Biên dịch (Compiler) -> Tập tin đối tượng (.obj / .o)
Liên kết (Linker) với thư viện -> Tập tin thực thi (.exe)
IDE (Môi trường phát triển tích hợp)
Tích hợp soạn thảo (edit), biên dịch (compile), thực thi (runtime) và gỡ lỗi (debug)
Các công cụ phổ biến: GCC, Turbo C++, Visual C++, Borland C++
Lập trình trên Linux: Sử dụng trình soạn thảo mcedit và chương trình dịch g++
Các thành phần cơ bản của C
Tập ký tự
Chữ cái (A-Z, a-z), chữ số (0-9), gạch nối '_', khoảng trắng và ký hiệu đặc biệt
Từ khóa (Keywords)
Các từ dành riêng của ngôn ngữ (viết bằng chữ thường): typedef, const, struct, enum, void, static, int, char, float, double, if, else, switch, case, for, while, do, break, continue, return...
Lưu ý: Không dùng từ khóa để đặt tên cho các đối tượng khác như biến, hàm
Tên (Định danh)
Quy tắc: Bắt đầu bằng chữ cái hoặc '
', chỉ gồm chữ, số và '
'
Lưu ý: Không được trùng với từ khóa, nên đặt tên gợi nhớ; C phân biệt chữ hoa và chữ thường
Hằng (Constants)
Định nghĩa: Đại lượng có giá trị không thay đổi trong suốt quá trình chạy chương trình
Cách khai báo 1: Dùng chỉ thị tiền xử lý "#define TEN_HANG gia_tri"
Cách khai báo 2: Dùng từ khóa "const kieu_du_lieu TEN_HANG = gia_tri;"
Biến (Variables)
Định nghĩa: Đại lượng lưu trữ dữ liệu có thể thay đổi trong quá trình thực thi
Cú pháp: "kieu_du_lieu ten_bien;" (luôn khai báo trước khi sử dụng)
Phạm vi hoạt động: Biến toàn cục (khai báo ngoài hàm) và biến cục bộ (khai báo đầu hàm hoặc đầu khối lệnh)
Hàm (Functions)
Định nghĩa: Đơn vị chương trình độc lập nhận đầu vào, xử lý và trả về kết quả
Hàm main(): Là hàm bắt buộc phải có, điểm bắt đầu khi chạy chương trình
Lưu ý: Không cho phép định nghĩa hàm lồng trong hàm khác
Biểu thức & Toán tử
Cấu thành từ các toán tử (phép toán) và toán hạng (biến, hằng, biểu thức khác)
Toán tử số học: +, -, *, /, % (chia lấy dư), ++, --
Toán tử quan hệ & logic: so sánh (>, <, ==, !=, ...), phép logic (&&, ||, !)
Toán tử gán: gán đơn (=), gán thu gọn (+=, -=, *=, /=, %=)
Toán tử khác: phép lấy địa chỉ (&), toán tử dấu phẩy (,)
Thứ tự ưu tiên: Có 15 mức ưu tiên (ngoặc đơn cao nhất; toán tử gán, điều kiện thực hiện từ phải sang trái)
Câu lệnh (Statements)
Định nghĩa: Chỉ thị hoàn chỉnh yêu cầu máy tính thực hiện công việc, kết thúc bằng dấu ";"
Lệnh đơn: lệnh gán, lệnh gọi hàm...
Lệnh phức (Khối lệnh): Tập hợp nhiều câu lệnh được bao quanh bởi cặp dấu ngoặc nhọn "{}"
Kiểu dữ liệu cơ sở
Kiểu ký tự: "char" (chiếm 1 byte bộ nhớ)
Kiểu số nguyên: "int", "short", "long" (kết hợp với từ khóa "signed" hoặc "unsigned")
Kiểu số thực: "float", "double"
Cấu trúc chương trình C & Quy tắc xây dựng
Trật tự cấu trúc tệp mã nguồn C
Khai báo các tệp tiêu đề thư viện (#include <stdio.h>, #include "conio.h", ...)
Khai báo các macro tiền xử lý (#define)
Định nghĩa các kiểu dữ liệu mới (typedef)
Khai báo nguyên mẫu hàm (function prototypes)
Khai báo các biến toàn cục
Định nghĩa hàm main()
Định nghĩa chi tiết các hàm con
Quy tắc xây dựng chương trình
Mỗi câu lệnh phải kết thúc bằng dấu ";" (nên viết mỗi lệnh trên một dòng)
Khối lệnh phải đặt trong cặp dấu "{}"
Chú thích: Chú thích một dòng "// ..." hoặc chú thích nhiều dòng "/
...
/"
Trình bày: Nên căn lề và thụt lề (indentation) một cách thống nhất để tăng độ dễ đọc