TRƯỜNG ĐẠI HỌC PHẠM VĂN ĐỒNG<br />
KHOA CÔNG NGHỆ THÔNG TIN<br />
<br />
TRẦN TẤN TỪ<br />
<br />
BÀI GIẢNG<br />
<br />
(Dùng cho sinh viên các lớp đại học Công nghệ<br />
thông tin, đại học Sư phạm tin học)<br />
<br />
- Tài liệu lưu hành nội bộ -<br />
<br />
LỜI NÓI ĐẦU<br />
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 để<br />
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.<br />
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ữ<br />
lập trình khác trong các học kỳ tiếp theo.<br />
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<br />
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<br />
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<br />
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<br />
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<br />
chỉ.<br />
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<br />
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à<br />
đó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<br />
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.<br />
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<br />
đó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.<br />
Xin chân thành cám ơn quý thầy cô, các bạn đồng nghiệp !<br />
Quảng Ngãi, ngày 25/12/2013<br />
TRẦN TẤN TỪ<br />
<br />
Bài giảng Cơ sở lập trình<br />
<br />
CHƯƠNG 1:<br />
<br />
-1-<br />
<br />
CÁC THÀNH PHẦN CƠ BẢN<br />
<br />
Mục tiêu<br />
Kết thúc chương, sinh viên có thể:<br />
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ừ<br />
khóa, tên và cách đặt tên, cách ghi lời chú thích.<br />
Nắm được cấu trúc chung của một chương trình C.<br />
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<br />
kiểu dữ liệu cơ sở: kiểu số nguyên, kiểu số thực, kiểu ký tự, kiểu boolean.<br />
1.1 Bộ ký hiệu và từ khóa<br />
1.1.1 Bộ ký hiệu<br />
- 26 chữ cái la tinh hoa: A, B, …, Z.<br />
- 26 chữ cái la tinh thường: a, b, …, z.<br />
- 10 chữ số thập phân: 0,1,…,9.<br />
- Các ký hiệu toán học: +, -, *, /, = , (, ).<br />
- Các ký hiệu đặc biệt: . , ; “ ‘ _ @ # $ ! ^ [ ] { } …<br />
- Dấu cách hay khoảng trống.<br />
1.1.2 Từ khóa<br />
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à<br />
tác dụng cụ thể.<br />
* Chú ý:<br />
- Không thể định nghĩa lại từ khóa.<br />
- Các từ khóa trong C được viết dưới dạng chữ thường.<br />
Một số từ khóa thông dụng hay dùng trong ngôn ngữ lập trình C<br />
auto<br />
<br />
break<br />
<br />
case<br />
<br />
char<br />
<br />
continue<br />
<br />
default<br />
<br />
do<br />
<br />
double<br />
<br />
else<br />
<br />
extern<br />
<br />
float<br />
<br />
for<br />
<br />
goto<br />
<br />
if<br />
<br />
int<br />
<br />
long<br />
<br />
register<br />
<br />
return<br />
<br />
short<br />
<br />
sizeof<br />
<br />
static<br />
<br />
struct<br />
<br />
switch<br />
<br />
typedef<br />
<br />
union<br />
<br />
usnigned<br />
<br />
void<br />
<br />
volatile<br />
<br />
while<br />
<br />
asm ….<br />
<br />
1.1.3 Tên và cách đặt tên<br />
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<br />
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.<br />
Qui tắc đặt tên:<br />
- 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ữ<br />
số 0, …, 9 và dấu gạch nối dưới.<br />
<br />
Giảng viên: Th.S Trần Tấn Từ - Khoa CNTT – Đại học Phạm Văn Đồng.<br />
<br />
Bài giảng Cơ sở lập trình<br />
<br />
-2-<br />
<br />
- Tên không được bắt đầu bằng chữ số.<br />
- 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ố<br />
ký tự tối đa trong tên của Turbo C là 32.<br />
- Tên không được trùng với từ khóa.<br />
- C là ngôn ngữ lập trình phân biệt chữ hoa và chữ thường, vì vậy tên<br />
NGHIEM sẽ khác với các tên: Nghiem, nghiem,….<br />
- Không được đặt tên bằng tiếng Việt (C xem cách làm đó là sai cú pháp) .<br />
- Các ví dụ về đặt tên:<br />
+ Một số tên đặt đúng: Gia_tri, _DX, pi, ….<br />
+ Một số tên đặt sai: 3X, PI$, Bien 1,...<br />
1.1.4 Chú thích<br />
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<br />
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<br />
mã chương trình mà nó có tác dụng thuyết minh thêm cho dễ hiểu.<br />
Phần văn bản nằm giữa cặp ký hiệu mở /* và đóng */ chính là phần chú<br />
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à<br />
đóng nêu trên.<br />
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.<br />
1.2 Cấu trúc chung của một chương trình C<br />
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:<br />
…………………………………………………………………………………<br />
#include <br />
<br />
/* để gọi các tập tin tiền xử lý */<br />
<br />
#define <br />
<br />
/* định nghĩa các hằng số */<br />
<br />
typedefs <br />
<br />
/* định nghĩa kiểu dữ liệu */<br />
<br />
…………………………………………………………………………………<br />
Function prototype<br />
<br />
/* khai báo nguyên mẫu hàm gồm tên và tham số */<br />
<br />
…………………………………………………………………………………<br />
Khai báo các biến ngoài<br />
………………………………………………………………………………….<br />
main() /* chương trình C bắt buộc phải có hàm main */<br />
{ Khai báo các biến cục bộ, các hằng của hàm main<br />
Các câu lệnh thực hiện của hàm main<br />
return <br />
}<br />
Giảng viên: Th.S Trần Tấn Từ - Khoa CNTT – Đại học Phạm Văn Đồng.<br />
<br />
Bài giảng Cơ sở lập trình<br />
<br />
-3-<br />
<br />
…………………………………………………………………………………<br />
Function prototype<br />
<br />
/* định nghĩa nội dung tường minh của hàm */<br />
<br />
{<br />
Khai báo các biến, hằng của hàm.<br />
Các câu lệnh thực hiện của hàm.<br />
}<br />
…………………………………………………………………………………<br />
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<br />
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.<br />
Trong đó:<br />
+ #include /* để gọi các tập tin tiền xử lý */<br />
Ví dụ 1.1: #include <br />
+ #define /* định nghĩa các hằng số */<br />
Ví dụ 1.2: #define MAX 100<br />
+ typedef /* định nghĩa kiểu dữ liệu */<br />
Ví dụ 1.3: typedef int Songuyen;<br />
+ Function prototype /* khai báo nguyên mẫu hàm gồm tên và tham số */<br />
Trong phần khai báo nguyên mẫu hàm, bạn chỉ ra kiểu giá trị trả về của<br />
hàm, tên hàm, tham số hình thức của hàm.<br />
Ví dụ 1.4: Khai báo nguyên mẫu hàm tính diện tích hình tròn<br />
float Tinh_dien_tich(float radius);<br />
+ 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<br />
tác dụng trong cả chương trình.<br />
Ví dụ 1.5: int n;<br />
+ Trong chương trình C có thể có nhiều hàm, trong đó hàm main là hàm<br />
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.<br />
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ử<br />
dụng giá trị trả về, bạn có thể viết như sau: void main(). Từ khóa void để chỉ hàm<br />
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<br />
hiện xong hàm)<br />
+ /* định nghĩa nội dung tường minh của hàm */<br />
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à<br />
radius (bán kính của hình tròn).<br />
float Tinh_dien_tich(float radius)<br />
#define PI 3.14<br />
Giảng viên: Th.S Trần Tấn Từ - Khoa CNTT – Đại học Phạm Văn Đồng.<br />
<br />