Kỹ thuật lập trình C - Tổng quan 5 bangtqh@hotmail.com Chương trình “Hello world” chỉ thị tiền xử lý Hàm chính của chương trình Dấu bắt đầu và kết thúc của định nghĩa hàm Kết quả thu ñư
Trang 1KỸ THUẬT LẬP TRÌNH C
Chương 1: Tổng quan
04/2010
Giới thiệu chung
• Ngôn ngữ C ra ñời năm 1972
• Phát triển thành C++ vào năm 1983
• Là ngôn ngữ ñược sử dụng rất phổ biến
• Có nhiều trình biên dịch C khác nhau
– Turbo C, Borland C
– ANSI C, IBM C, ISO C
– GCC
– …v.v.
Trang 2Kỹ thuật lập trình C - Tổng quan 3 bangtqh@hotmail.com
IDE Borland C++ 5.02
• Chạy file Setup.exe trong thư mục Bc502
• Một số phím soạn thảo
Xóa các kí tự từ vị trí con trỏ ñến cuối dòng
Ctrl + Q + Y
Xóa dòng kí tự chứa con trỏ Ctrl + Y
Xóa kí tự ngay trước vị trí con trỏ Back space
Xóa kí tự ngay sau vị trí con trỏ Delete
Chuyển đổi chế ñộ chèn/đè Insert
Xuống dòng Enter
Chức năng Phím
04/2010
IDE Borland C++ 5.02
Một số phím soạn thảo (tiếp theo)
Lặp lại Ctrl + Q + F hoặc Ctrl + Q + A cuối cùng Ctrl + Q + L
Tìm kiếm cụm từ và sau ñó thay thế bằng cụm từ khác Ctrl + Q + A
Tìm kiếm một cụm từ Ctrl + Q + F
Dịch chuyển con trỏ về cuối khối Ctrl + Q + K
Dịch chuyển con trỏ về ñầu khối Ctrl + Q + B
Đọc một khối từ một tệp trên đĩa Ctrl + K + R
Ghi một khối vào một tệp trên đĩa Ctrl + K + W
Xóa cả khối Ctrl + K + Y
Chuyển khối tới vị trí mới của con trỏ Ctrl + K + V
Chép khối tới vị trí mới của con trỏ Ctrl + K + C
Chức năng Phím
Trang 3Kỹ thuật lập trình C - Tổng quan 5 bangtqh@hotmail.com
Chương trình “Hello world”
chỉ thị tiền xử lý
Hàm chính của chương trình
Dấu bắt đầu và kết thúc của
định nghĩa hàm
Kết quả thu ñược khi biên dịch
và chạy chương trình trên
04/2010
Từ khóa (Key word)
• Là các từ dành riêng của ngôn ngữ C
• Từ khóa phải được sử dụng đúng cú pháp
• Một số từ khóa thông dụng
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 unsigned void volatile while
Trong IDE Borland C++ 5.02
từ khóa in đậm
và có màu blue
Trang 4Kỹ thuật lập trình C - Tổng quan 7 bangtqh@hotmail.com
Tên (định danh)
• Dùng để ñịnh danh các thành phần của chương trình
• Tên biến, tên hàm, tên hằng, file, cấu trúc…
• Gồm chữ , số , dấu gạch nối “_”
• Độ dài tối đa 32
• Lưu ý:
– không đuợc chứa kí tự trống (space),
– không được bắt đầu bằng một chữ số,
– không được trùng với từ khóa
• Nên đặt tên một cách gợi nhớ, có ý nghĩa.
• Tên chuẩn: một số tên có sẵn của trình biên dịch.
Vd: x, hoten, a1, number_of_var, delta, TEN, …
• C là ngôn ngữ phân biệt viết hoa, viết thường chính xác đến từng ký tự
04/2010
Hằng, Biến, Biểu thức
• Hằng:
– Là ñại lượng có giá trị không thay ñổi được
– Ví dụ:
• 124 Là một hằng số
• ‘D’ Là một hằng ký tự
• “Lap trinh” Là một hằng chuỗi ký tự
• Biến
– Là ñại lượng có thể thay ñổi được giá trị (gán giá trị mới)
• Biểu thức
– Là công thức tính toán để có 1 giá trị theo quy tắc toán học
– Gồm các toán hạng và các phép toán (toán tử)
• Toán hạng: hằng, biến, hàm hoặc biểu thức khác.
• Phép toán: Số học, luận lý, gán, ñiều kiện, lấy địa chỉ, tăng giảm
Trang 5Kỹ thuật lập trình C - Tổng quan 9 bangtqh@hotmail.com
Các phép toán C hỗ trợ
• Số học: + , - , * , / , %
• Luận lý: ==, !=, >, <, >=, <=, &&, ||, !
• Gán giá trị: =
• Lấy kích cỡ theo số byte: sizeof(đ ố it ượ ng)
• Điều kiện: ĐK ? E1 : E2
• Lấy địa chỉ: &(bi ế n)
• Tăng giảm: x++, ++x, x , x
tong+=i; tich*=i;
/=, %=, -=, &=, |=, ^=
04/2010
Câu lệnh, Chú thích
• Câu lệnh: Là một chỉ thị yêu cầu máy tính thực thi một tác vụ
nào đó Một câu lệnh phải kết thúc bởi một dấu chấm phẩy “;”
• Chú thích:
– Trên 1 dòng: // Chú thích trên một dòng
– Trên nhiều dòng: /*
Chú thích trên nhiều dòng.
*/
• Các chỉ thị tiền biên dịch:
#error
Trang 6Kỹ thuật lập trình C - Tổng quan 11 bangtqh@hotmail.com
Các kiểu dữ liệu chuẩn
3.4e-4932 1.1e4932
10 byte long double
1.7e-308 1.7e308
8 byte double
3.4e-38 3.4e38
4 byte float
- 231 232- 1
4 byte unsigned long
- 231 231- 1
4 byte long
0 65535
2 byte short
0 65535
2 byte unsigned int
-32768 32767
2 byte int
0 255
1 byte unsigned char
-128 127
1 byte char
Phạm vi
Độ lớn Tên kiểu
Kiểu số
04/2010
Kiểu ký tự
Ví dụ:
– Ký tự ’A’ có mã 65
– Ký tự ’0’ có mã 48
Các ký tự ñặc biệt:
’\0’ ký tự Null (có mã = 0)
’\n’ ký tự xuống dòng (new line)
’\t’ ký tự Tab
Các kiểu dữ liệu chuẩn
Gồm 256 ký tự có mã từ 0 255 ( xem Bảng mã ASCII )
1 byte char
Phạm vi
Độ lớn Tên kiểu
Trang 7Kỹ thuật lập trình C - Tổng quan 13 bangtqh@hotmail.com
Ép kiểu
Cú pháp:
(kiểu_mới) biểu thức hoặc kiểu_mới (biểu thức)
Ví dụ:
04/2010
Khai báo hằng
Cú pháp
#define TÊNH Ằ NG giátr ị
hoặc
const ki ể ud ữ li ệ u TÊNH Ằ NG = giátr ị ;
Ví dụ
#define MAX 100
const int SOPT = 100;
Lưu ý: hằng phải được khai báo trước khi sử dụng
Trang 8Kỹ thuật lập trình C - Tổng quan 15 bangtqh@hotmail.com
Khai báo biến
Cú pháp
ki ể ud ữ li ệ u TÊNBI Ế N; ho ặ c
ki ể ud ữ li ệ u Bi ế n1, Bi ế n2, ; ho ặ c
ki ể ud ữ li ệ u TÊNBI Ế N = giátr ị banđ ầ u;
Ví dụ
int sole;
float tbc, tongam;
char Enter = ’\n’;
Lưu ý: Biến có thể khai báo bất kỳ ñâu trong chương trình miễn làn trước khi sử dụng.
Kết thúc bằng dấu chấm phẩy
04/2010
Cấu trúc chương trình C
Chỉ thị tiền biên dịch
Khai báo các hằng, biến
Khai báo các hàm tự XD
Thân chương trình chính
Cài đặt các hàm đã khai
báo ở trên
Trang 9Kỹ thuật lập trình C - Tổng quan 17 bangtqh@hotmail.com
Phép gán giá trị
Cú pháp
Ví dụ:
int x, y, z;
x = 10;
x = 10 + y;
10 + y = x; //sai
z = x + y;
x + y = z; //sai
TênBi ế n = Bi ể u th ứ c giá tr ị ;
Tại sao sai ?
04/2010
Các hàm toán học thông dụng
Chỉ thị tiền biên dịch:
#include <math.h>
sqrt(x) lấy căn bậc 2
exp(x) lấy ex
log(x) lấy logex
abs(x) lấy |x| (kết quả là số nguyên)
fabs(x) lấy |x| (kết quả là số thực)
pow(x, y) lấy xy
ceil(x) lấy số nguyên gần x nhất
floor(x) lấy số nguyên lớn nhất ≤ x
Các biểu thức phức tạp phải sử dụng biến đổi toán học ñể có ñược
biểu diễn tương ứng trong C
Trang 10Kỹ thuật lập trình C - Tổng quan 19 bangtqh@hotmail.com
Một số quy tắc viết chương trình
• Đặt tên biến, hằng, hàm,… một cách gợi nhớ
• Khi sử dụng biến, hằng cần kiểm tra lại xem biến hằng đó ñã được khai báo trước đó hay chưa ?
• C là ngôn ngữ phân biệt hoa/thường phải kiểm tra kỹ từng
ký tự khi viết
• Loại bỏ các chỉ thị #include <file *.h> không cần thiết (để lại
sẽ làm chậm quá trình biên dịch và tăng kích thước file *.exe sau biên dịch)
• Viết chương trình theo cấu trúc khối ( phân cấp thụt đầu dòng )
• Chương trình viết xong chưa thể biết được đúng hay sai
phải chạy thử với các bộ số liệu khác nhau (nên test thử với các bộ số liệu đặc biệt )
04/2010