
TRƯỜNG ĐẠI HỌC PHẠM VĂN ĐỒNG
KHOA CÔNG NGHỆ THÔNG TIN
TRẦN TẤN TỪ
BÀI GIẢNG
(Dùng cho sinh viên các lớp đại học Công nghệ
thông tin, đại học Sư phạm tin học)
- Tài liệu lưu hành nội bộ -

LỜI NÓI ĐẦU
Cơ sở lập trình là học phần giúp cho sinh viên nắm được kiến thức cơ bản để
cài đặt thành công một thuật toán thành chương trình bằng ngôn ngữ lập trình C.
Qua đó, trang bị cho sinh viên kiến thức nền để tiếp cận và học tập tốt các ngôn ngữ
lập trình khác trong các học kỳ tiếp theo.
Bài giảng được biên soạn và giảng dạy cho sinh viên năm thứ nhất, bậc đại
học ngành Công nghệ thông tin và ngành Sư phạm tin học kể từ năm 2008, theo
hình thức đào tạo niên chế. Hiện nay chương trình đào tạo tại Trường Đại học Phạm
Văn Đồng được chuyển đổi sang đào tạo theo học chế tín chỉ. Chính vì vậy, bài
giảng được chỉnh sửa, bổ sung cho phù hợp với hình thức đào tạo theo học chế tín
chỉ.
Cũng nhân đây tôi xin chân thành cám ơn hội đồng chuyên môn khoa Công
nghệ thông tin, Th.S Huỳnh Triệu Vỹ và Th.S Võ Đức Lân đã dành thời gian đọc và
đóng góp nhiều ý kiến quý báu để bài giảng được hoàn chỉnh hơn, đáp ứng nhu cầu
học tập của sinh viên Khoa Công nghệ thông tin - Trường Đại học Phạm Văn Đồng.
Bài giảng không sao tránh khỏi những thiếu sót, mong các bạn đồng nghiệp
đóng góp ý kiến để bài giảng hoàn thiện hơn trong các lần chỉnh sửa sau.
Xin chân thành cám ơn quý thầy cô, các bạn đồng nghiệp !
Quảng Ngãi, ngày 25/12/2013
TRẦN TẤN TỪ

Bài giảng Cơ sở lập trình
-1-
Giảng viên: Th.S Trần Tấn Từ - Khoa CNTT – Đại học Phạm Văn Đồng.
CHƯƠNG 1: CÁC THÀNH PHẦN CƠ BẢN
Mục tiêu
Kết thúc chương, sinh viên có thể:
Nắm được các thành phần cơ bản của ngôn ngữ lập trình C: bộ ký hiệu, từ
khóa, tên và cách đặt tên, cách ghi lời chú thích.
Nắm được cấu trúc chung của một chương trình C.
Hiểu và vận dụng được các phép toán, các hàm đã được xây dựng cho các
kiểu dữ liệu cơ sở: kiểu số nguyên, kiểu số thực, kiểu ký tự, kiểu boolean.
1.1 Bộ ký hiệu và từ khóa
1.1.1 Bộ ký hiệu
- 26 chữ cái la tinh hoa: A, B, …, Z.
- 26 chữ cái la tinh thường: a, b, …, z.
- 10 chữ số thập phân: 0,1,…,9.
- 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.
1.1.2 Từ khóa
Là các từ dùng riêng của ngôn ngữ lập trình C và mỗi từ khóa có một ý nghĩa và
tác dụng cụ thể.
* Chú ý:
- Không thể định nghĩa lại từ khóa.
- Các từ khóa trong C được viết dưới dạng chữ thường.
Một số từ khóa thông dụng hay dùng trong ngôn ngữ lập trình C
auto break case char continue default
do double else extern float for
goto if int long register return
short sizeof static struct switch typedef
union usnigned void volatile while asm ….
1.1.3 Tên và cách đặt tên
Trong chương trình, người lập trình có thể dùng rất nhiều tên: tên chương
trình, tên biến, tên hằng, tên hàm,… Mọi tên đều phải khai báo trước khi sử dụng.
Qui tắc đặt tên:
- Tên bao gồm dãy các ký tự liền nhau như các chữ cái a,…,z, A,… Z, các chữ
số 0, …, 9 và dấu gạch nối dưới.

Bài giảng Cơ sở lập trình
-2-
Giảng viên: Th.S Trần Tấn Từ - Khoa CNTT – Đại học Phạm Văn Đồng.
- Tên không được bắt đầu bằng chữ số.
- Tên không được chứa các ký tự đặc biệt như dấu cách, dấu chấm câu,… Số
ký tự tối đa trong tên của Turbo C là 32.
- Tên không được trùng với từ khóa.
- C là ngôn ngữ lập trình phân biệt chữ hoa và chữ thường, vì vậy tên
NGHIEM sẽ khác với các tên: Nghiem, nghiem,….
- Không được đặt tên bằng tiếng Việt (C xem cách làm đó là sai cú pháp) .
- Các ví dụ về đặt tên:
+ Một số tên đặt đúng: Gia_tri, _DX, pi, ….
+ Một số tên đặt sai: 3X, PI$, Bien 1,...
1.1.4 Chú thích
Khi viết chương trình bạn nên thêm vào các lời chú thích để cho chương
trình sáng sủa và dễ hiểu. Trình biên dịch sẽ không biên dịch các chú thích để tạo ra
mã chương trình mà nó có tác dụng thuyết minh thêm cho dễ hiểu.
Phần văn bản nằm giữa cặp ký hiệu mở /* và đóng */ chính là phần chú
thích. Phần chú thích có thể nằm trên nhiều dòng, miễn là nằm trong cặp dấu mở và
đóng nêu trên.
Lưu ý: Trong C++ lời chú thích nằm sau cặp dấu // và viết trên một dòng.
1.2 Cấu trúc chung của một chương trình C
Cấu trúc tổng thể của một chương trình C thường có các khối thông dụng sau:
…………………………………………………………………………………
#include <…> /* để gọi các tập tin tiền xử lý */
#define <…> /* định nghĩa các hằng số */
typedefs <…> /* định nghĩa kiểu dữ liệu */
…………………………………………………………………………………
Function prototype /* khai báo nguyên mẫu hàm gồm tên và tham số */
…………………………………………………………………………………
Khai báo các biến ngoài
………………………………………………………………………………….
<Kiểu dữ liệu trả về> main() /* chương trình C bắt buộc phải có hàm main */
{ Khai báo các biến cục bộ, các hằng của hàm main
Các câu lệnh thực hiện của hàm main
return <Kết quả trả về>
}

Bài giảng Cơ sở lập trình
-3-
Giảng viên: Th.S Trần Tấn Từ - Khoa CNTT – Đại học Phạm Văn Đồng.
…………………………………………………………………………………
Function prototype /* định nghĩa nội dung tường minh của hàm */
{
Khai báo các biến, hằng của hàm.
Các câu lệnh thực hiện của hàm.
}
…………………………………………………………………………………
Như vậy, một chương trình C thường bao gồm các thành phần: các chỉ tiền
xử lý, các định nghĩa: kiểu, hằng, khai báo biến ngoài, các hàm tự tạo, hàm main.
Trong đó:
+ #include <…> /* để gọi các tập tin tiền xử lý */
Ví dụ 1.1: #include <stdio.h>
+ #define <Tên hằng số> <Giá trị hằng> /* định nghĩa các hằng số */
Ví dụ 1.2: #define MAX 100
+ typedef <tên kiểu cũ> <tên kiểu mới> /* định nghĩa kiểu dữ liệu */
Ví dụ 1.3: typedef int Songuyen;
+ Function prototype /* khai báo nguyên mẫu hàm gồm tên và tham số */
Trong phần khai báo nguyên mẫu hàm, bạn chỉ ra kiểu giá trị trả về của
hàm, tên hàm, tham số hình thức của hàm.
Ví dụ 1.4: Khai báo nguyên mẫu hàm tính diện tích hình tròn
float Tinh_dien_tich(float radius);
+ Khai báo các biến ngoài (biến toàn cục): Là nơi khai báo các biến có tầm
tác dụng trong cả chương trình.
Ví dụ 1.5: int n;
+ Trong chương trình C có thể có nhiều hàm, trong đó hàm main là hàm
chính, bắt buộc phải có và các câu lệnh được thực hiện tuần tự từ trên xuống dưới.
Về nguyên tắc hàm phải trả lại một giá trị cho tên hàm, nhưng nếu không muốn sử
dụng giá trị trả về, bạn có thể viết như sau: void main(). Từ khóa void để chỉ hàm
không có giá trị riêng của nó (tức hàm không mang một giá trị cụ thể nào khi thực
hiện xong hàm)
+ /* định nghĩa nội dung tường minh của hàm */
Ví dụ 1.6: Định nghĩa nội dung hàm tính diện tích hình tròn với tham số là
radius (bán kính của hình tròn).
float Tinh_dien_tich(float radius)
#define PI 3.14

