Please enable JavaScript.
Coggle requires JavaScript to display documents.
KĨ THẬT LẬP TRÌNH - Coggle Diagram
KĨ THẬT LẬP TRÌNH
CHƯƠNG 2: GIỚI THIỆU NGÔN NGỮ LẬP TRÌNH C
2.1 Lịch sử phát triển & Đặc điểm của ngôn ngữ C
Lịch sử phát triển
Tác giả: Dennis M. Ritchie & cộng sự — Bell Labs, AT&T (Mỹ)
Thời gian: 1969–1973, giai đoạn chính năm 1972
Nền tảng: Phát triển từ ngôn ngữ B và BCPL
1973: Viết lại hệ điều hành UNIX bằng C
1978: Xuất bản sách "The C Programming Language" (Kernighan & Ritchie)
1989: Chuẩn ANSI C (C89)
1999: Chuẩn ISO C (C99) — nền tảng của C++, Java
Đặc điểm ngôn ngữ C
✅ Ngôn ngữ có cấu trúc
Chia thành hàm, khối lệnh độc lập
Dễ kiểm soát thông tin, dễ bảo trì
✅ Tính khả chuyển, linh hoạt cao
✅ Xử lý số, văn bản, dữ liệu tốt
✅ Ngôn ngữ lập trình hệ thống: viết HĐH, driver, ứng dụng nhúng...
2.2 Môi trường lập trình với ngôn ngữ C
Các bước xây dựng chương trình
Soạn thảo (Edit) — viết mã nguồn
Biên dịch (Compile) — chuyển sang mã máy
Liên kết (Link) — tạo tệp thực thi
Thực thi & Gỡ lỗi (Run & Debug)
Môi trường phát triển tích hợp (IDE)
Turbo C++, Borland C++
MSC, Visual C++ (Microsoft)
GCC (GNU Compiler Collection)
Lưu ý
Không bắt buộc dùng IDE
Có thể dùng trình soạn thảo riêng (Notepad++) + trình biên dịch riêng
2.3 Các thành phần cơ bản của ngôn ngữ C
Tập ký tự
Chữ hoa A–Z, chữ thường a–z
Chữ số 0–9
Ký hiệu toán học + - * / = < > ...
Dấu gạch nối _
Dấu cách
Ký hiệu đặc biệt . , ; : ? ! & % # $ () [] {} ...
Từ khóa
Từ dành sẵn của ngôn ngữ, viết bằng chữ thường
Kiểu dữ liệu: char, int, short, long, float, double, void
Điều khiển luồng: if, else, switch, case, for, while, do, break, continue, return, goto
Khác: const, static, struct, enum, typedef, sizeof, signed, unsigned...
Không được dùng làm tên biến, hàm...
Tên (Định danh)
Quy tắc: chữ, số, dấu
; bắt đầu bằng chữ hoặc
Không trùng từ khóa
Phân biệt chữ hoa và chữ thường
Đặt tên có ý nghĩa, dễ nhớ
Hằng
Giá trị không đổi trong suốt chương trình
Cách 1: #define Tên Giá_trị
Ví dụ: #define PI 3.14
Cách 2: const kiểu Tên = Giá_trị;
Ví dụ: const int MAX = 100;
Giá trị xác định khi khai báo, không thay đổi được
Biến
Dùng lưu giá trị, có thể thay đổi
Cú pháp: kiểu Tên_biến;
Ví dụ: int a, b; float x = 1.5;
Khai báo trước khi sử dụng
Phạm vi: Biến cục bộ (trong hàm/khối) & Biến toàn cục
Hàm
Đơn vị độc lập: nhận tham số - xử lý - trả về kết quả
Hàm main() là BẮT BUỘC -chương trình bắt đầu từ đây
Không định nghĩa hàm bên trong hàm khác
Biểu thức
Toán tử + Toán hạng → giá trị
Số học: 4 + 5 x 2
So sánh: a > b x != 0
Logic: a && b, !c
Dùng trong gán, điều kiện, vòng lặp, tham số hàm...
Toán tử
Toán tử số học
1 ngôi: - (đảo dấu), ++ (tăng), -- (giảm)
++x: tăng trước - dùng giá trị mới
x++: dùng giá trị cũ - tăng sau
2 ngôi: + - * / % (chia lấy dư)
Toán tử bit:
Toán tử quan hệ:
Toán tử logic
Toán tử điều kiện
Toán tử gán:
Dấu phẩy -tính từ trái sang phải, lấy giá trị cuối
Lấy địa chỉ: , tên_biến
Ép kiểu: (kiểu) biểu thức
Thứ tự ưu tiên
Câu lệnh
Lệnh đơn: kết thúc bằng dấu ;
Ví dụ: a = 5;
Khối lệnh: { ... }
Chú thích: // dòng đơn hoặc /
nhiều dòng
/
Biến khai báo trong khối chỉ có hiệu lực trong khối đó
Kiểu dữ liệu cơ sở
Kiểu ký tự — char (1 byte)
signed char: -128 - 127
unsigned char: 0 , 255
Ký tự điều khiển:
Kiểu số nguyên
short — 2 byte
int — 2 hoặc 4 byte
long — 4 byte
Phiên bản không dấu: unsigned short, unsigned int, unsigned long
Kiểu số thực
float — 4 byte, độ chính xác ~6 chữ số
double — 8 byte, độ chính xác ~15 chữ số
Dạng thập phân: 3.14, 125.5
Dạng khoa học: 1.25e3, 3.14E-2
2.4 Cấu trúc chương trình viết bằng C
Thứ tự các phần
① Khai báo tệp tiêu đề: #include <tên.h>
stdio.h — vào/ra chuẩn (printf, scanf)
math.h — hàm toán học
string.h — xử lý chuỗi
conio.h — giao tiếp màn hình/bàn phím
stdlib.h — hàm tiện ích
② Khai báo hằng/macro: #define Tên Giá_trị
③ Định nghĩa kiểu mới: typedef kiểu Tên_mới;
④ Khai báo nguyên mẫu hàm: kiểu Tên(tham số);
⑤ Khai báo biến toàn cục
Hàm main— BẮT BUỘC
int main(void) { ... return 0; }
⑦ Định nghĩa các hàm đã khai báo
Ví dụ chương trình đơn giản
In thông báo ra màn hình
Tính tổng 2 số nhập từ bàn phím
Quy tắc viết chương trình
Mỗi lệnh kết thúc bằng dấu ;
Khối lệnh đặt trong { }
Chú thích rõ ràng
Viết gọn gàng, căn lề dễ đọc