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
2.1. Lịch sử phát triển và các đặc điểm của ngôn ngữ lập trình C
Lịch sử phát triển
Người sáng tạo: Dennis MacAlistair Ritchie + cộng sự
Bell Labs – AT&T (Mỹ)
Thời gian: 1969–1973 (đỉnh cao năm 1972)
Nguồn gốc: dựa trên ngôn ngữ B và BCPL → đặt tên C
1973: Ritchie & Thompson viết lại UNIX bằng C
Nền tảng cho Linux, Mac OS sau này
1978: Ritchie & Brian Kernighan xuất bản “The C Programming Language”
1989: ANSI chuẩn hóa → ANSI C (C89)
Cuối thập niên 1990: ISO chuẩn hóa → ISO C / C90 (ISO/IEC 9899:1999)
Ảnh hưởng: là gốc của C++, Java và nhiều ngôn ngữ mạnh khác
Đặc điểm của ngôn ngữ C
Là ngôn ngữ có cấu trúc
Tập hợp mã lệnh và cấu trúc
Ẩn thông tin (information hiding)
Chia chương trình thành hàm / khối lệnh
Tính khả chuyển và linh hoạt cao
Thế mạnh xử lý: số, văn bản, cơ sở dữ liệu…
Ngôn ngữ hệ thống: xây dựng OS, driver, xử lý ảnh…
2.2. Môi trường lập trình với ngôn ngữ C
Quy trình xây dựng chương trình
Soạn thảo → Biên dịch → Thực thi → Sửa lỗi
Môi trường phát triển tích hợp (IDE)
Soạn thảo (Edit)
Biên dịch (Compile)
Thực thi (Runtime)
Gỡ rối (Debug)
Các IDE điển hình
Turbo C++ / Borland C++ (Borland)
MSC / VC (Microsoft)
GCC (GNU)
Lưu ý
Không bắt buộc dùng IDE
Có thể dùng Notepad++ + trình biên dịch (BCC 5.5…)
Trên Linux: mcedit + g++
2.3. Các thành phần cơ bản của ngôn ngữ lập trình C
Tập ký tự
26 chữ hoa + 26 chữ thường
10 chữ số
Ký hiệu toán học (+ - * / = < > …)
Dấu gạch dưới _
Dấu cách
Ký hiệu đặc biệt (. , ; : ? ! \ & | % # $ () [] {} …)
Từ khóa (keywords)
Từ dành riêng, không được dùng làm tên biến/hàm
Viết bằng chữ thường
Ví dụ: int, char, float, if, else, for, while, return, const, void…
Tên (định danh)
Dùng đặt tên biến, hằng, hàm, kiểu dữ liệu…
Quy tắc:
Không trùng từ khóa
Có tính gợi nhớ
Gồm chữ, số, dấu _
Ký tự đầu phải là chữ hoặc _
C phân biệt chữ hoa / chữ thường
Hằng
Giá trị không đổi trong chương trình
Cách 1: #define tên_hằng giá_trị
Cách 2: const kiểu tên_hằng = giá_trị;
Ưu điểm #define: dễ đọc, dễ thay đổi, nhanh, khả chuyển
Biến
Chứa dữ liệu, giá trị có thể thay đổi
Cú pháp: kiểu tên_biến; hoặc kiểu tên1, tên2…;
Có thể khởi tạo ngay: int a = 4;
Phạm vi: ngoài hàm / đầu hàm / đầu khối lệnh
Hàm
Đơn vị độc lập: nhận dữ liệu → xử lý → trả kết quả
Hàm main() bắt buộc, chương trình bắt đầu từ đây
Không được định nghĩa hàm trong hàm khác
Biểu thức
Kết hợp toán tử + toán hạng
3 dạng: số học, logic, quan hệ
Dùng trong: gán, tham số hàm, điều kiện if/switch, vòng lặp…
Toán tử
Số học: + - * / % ++ -- (1 ngôi & 2 ngôi)
Thao tác bit: & | ^ << >> ~
Quan hệ: > >= < <= == !=
Logic: ! && ||
Đặc biệt:
Điều kiện: ? :
Gán: = += -= *= /= …
Dấu ,
Lấy địa chỉ: &
Ép kiểu: (kiểu)
Thứ tự ưu tiên (15 mức từ () [] đến dấu ,)
Câu lệnh
Lệnh đơn (kết thúc bằng ;)
Lệnh phức (khối lệnh { })
Phạm vi biến trong khối lệnh
Các kiểu dữ liệu cơ sở
Kiểu ký tự: char, unsigned char (1 byte)
Kiểu số nguyên: int, short, long (+ unsigned)
Kiểu số thực: float (4 byte), double (8 byte)
Logic ngầm định: 0 = FALSE, khác 0 = TRUE
2.4. Cấu trúc chương trình viết bằng ngôn ngữ C
Thứ tự các phần
Khai báo tệp tiêu đề (#include)
Khai báo macro (#define)
Định nghĩa kiểu mới (typedef)
Khai báo nguyên mẫu hàm
Khai báo biến toàn cục
Hàm main()
Định nghĩa các hàm còn lại
Các tệp tiêu đề cơ bản
stdio.h → vào/ra
conio.h → giao tiếp MS-DOS
math.h → toán học
ctype.h → xử lý ký tự
string.h → xử lý xâu
stdlib.h → tiện ích
time.h → thời gian
Quy tắc viết chương trình
Mỗi lệnh kết thúc bằng ;
Mỗi lệnh nên viết 1 dòng
Khối lệnh đặt trong { }
Chú thích: // hoặc /
/
Căn lề rõ ràng
Ví dụ chương trình đơn giản
In câu thông báo
Tính tổng 2 số nguyên