Bài giảng Lập trình C - Nguyễn Thị Thúy Loan
Kiến thức cơ bản Tổng quan về lập trình C. Biểu thức, toán tử, vào ra dữ liệu. Cấu trúc điều kiển và lưu đồ thuật toán. Hàm Mảng – chuỗi kí tự.
Bạn đang xem trước 20 trang tài liệu Bài giảng Lập trình C - Nguyễn Thị Thúy Loan, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1LẬP TRÌNH C
ThS. Nguyễn Thị Thúy Loan
BÀI GIẢNG
5/3/2013 Nguyễn Thị Thúy Loan 2
Tài liệu tham khảo
Trần Minh Thái, tập bài giảng KTLT, 2005
Phạm Văn Ất: “ỹ thuật lập trình C: cơ sở và
nâng cao. NXB KHKT – 1996
Nguyễn Đình Tê – Hoàng Đức Hải: Giáo trình lý
thuyết & Bài tập ngôn ngữ C. Nhà Xuất Bản Mũi
Cà Mau.
Huỳnh Tấn Dũng – Hoàng Đức Hải, Bài tập
ngôn ngữ C từ A đến Z, NXB Lao Động – Xã
Hội.
5/3/2013 Nguyễn Thị Thúy Loan 3
Cách đánh giá
Lý thuyết: 50%
Thực hành: 30%
Bài tập: 20%
5/3/2013 Nguyễn Thị Thúy Loan 4
Nội dung chương trình
Kiến thức cơ bản
Tổng quan về lập trình C.
Biểu thức, toán tử, vào ra dữ liệu.
Cấu trúc điều kiển và lưu đồ thuật toán.
Hàm
Mảng – chuỗi kí tự.
2KIẾN THỨC CƠ BẢN
ThS. Nguyễn Thị Thúy Loan
Chương I:
5/3/2013 Nguyễn Thị Thúy Loan 6
NỘI DUNG
Chuyển đổi cơ số
Kỹ thuật để giải quyết bài toán
Các bước để viết chương trình.
Một chương trình đơn giản.
5/3/2013 Nguyễn Thị Thúy Loan 7
Biểu diễn thông tin
Đơn vị đo thông tin: bit- BInary digiT
Một bit tương ứng với một chỉ thị hoặc một
thông báo nào đó về sự kiện, có 1 trong 2
trạng thái là Tắt (Off) / Mở (On) hay Đúng
(True)/Sai (False).
5/3/2013 Nguyễn Thị Thúy Loan 8
Biểu diễn thông tin
Biểu diễn số trong các hệ đếm:
Hệ đếm là tập hợp các ký hiệu và qui tắc
sử dụng tập ký hiệu đó. Mỗi hệ đếm có
một số ký số (digits) hữu hạn. Tổng số ký
số của mỗi hệ đếm gọi là cơ số (base hay
radix), ký hiệu là b.
35/3/2013 Nguyễn Thị Thúy Loan 9
Biểu diễn thông tin
Hệ đếm cơ số b (b ≥ 2, b là số nguyên
dương) mang tính chất sau:
o Có b ký số để thể hiện giá trị số. Ký số nhỏ
nhất là 0 và lớn nhất là b-1.
o Giá trị vị trí thứ n của một số trong hệ đếm
bằng cơ số b lũy thừa n: bn
5/3/2013 Nguyễn Thị Thúy Loan 10
Biểu diễn thông tin
Số N(b) trong hệ đếm cơ số (b) được biểu
diễn bởi:
o N(b)=anan-1an-2…a1a0a-1a-2…a-m
5/3/2013 Nguyễn Thị Thúy Loan 11
Biểu diễn thông tin
o Trong đó, số N(b) có n+1 ký số biểu diễn
cho phần nguyên và m ký số lẻ biểu diễn
cho phần b_phân, và có giá trị là:
o N(b) = an.bn + an-1.bn-1 + an-2.bn-2 + …+
a1.b1+a0.b0 + a-1.b-1+a-2.b-2+…+a-m.b-m
5/3/2013 Nguyễn Thị Thúy Loan 12
Biểu diễn thông tin
Hoặc dưới dạng công thức tổng quát:
n
mi
i
ib baN .)(
45/3/2013 Nguyễn Thị Thúy Loan 13
Biểu diễn thông tin
Các hệ đếm:
o Nhị phân
o Bát phân
o Thập phân
o Thập lục phân
5/3/2013 Nguyễn Thị Thúy Loan 14
Hệ đếm thập phân (b = 10)
Hệ đếm thập phân b = 10 là một trong các
phát minh của người Ả rập cổ, bao gồm
10 ký số theo ký hiệu sau: 0, 1, 2, 3, 4,
5, 6, 7, 8, 9
5/3/2013 Nguyễn Thị Thúy Loan 15
Hệ đếm thập phân (b = 10)
Bất kỳ số nguyên dương trong hệ thập
phân có thể biểu diễn như là một tổng các
số hạng, mỗi số hạng là tích của một số
với 10 lũy thừa, trong đó số mũ lũy thừa
được tăng thêm 1 đơn vị kể từ số mũ lũy
thừa phía bên phải nó. Số mũ lũy thừa
của hàng đơn vị trong hệ thập phân là 0.
5/3/2013 Nguyễn Thị Thúy Loan 16
Hệ đếm thập phân (b = 10)
Ví dụ:
Số 123 được biểu diễn như sau:
123 = 1 * 102 + 2 * 101 + 3*100
Số 5246 có thể được biểu diễn như sau:
5246 = 5 * 103 + 2 *102 + 4 * 101 + 6 * 100
= 5 * 1000 + 2 * 100 + 4 * 10 + 6 * 1
55/3/2013 Nguyễn Thị Thúy Loan 17
Hệ đếm thập phân (b = 10)
Phần thập phân trong hệ thập phân sau
dấu chấm phân cách thập phân (theo qui
ước của Mỹ) thể hiện trong ký hiệu mở
rộng bởi 10 lũy thừa âm, tính từ phải sang
trái kể từ dấu chấm phân cách.
Ví dụ: 254.68 = 2 * 102 + 5 * 101 + 4 * 100
+ 6 * 10-1 + 8 * 10-2
5/3/2013 Nguyễn Thị Thúy Loan 18
Hệ đếm nhị phân (b = 2)
Với b = 2, là hệ đếm đơn giản nhất với 2
chữ số là 0 và 1. Mỗi chữ số nhị phân gọi
là BIT.
Cách chuyển đổi hệ nhị phân sang hệ
thập phân:
5/3/2013 Nguyễn Thị Thúy Loan 19
Hệ đếm nhị phân (b = 2)
Ví dụ: 10101(2) = ? (10)
Số nhị phân :1 1 1 0 1
Số vị trí : 4 3 2 1 0
Trị vị trí : 24 23 22 21 20
Hệ 10 là : 16 8 4 2 1
10101(2) = 1*24 + 0*23 + 1*22 + 0*21 + 1*20
= 16 + 0 + 4 + 0 + 1 = 21(10)
5/3/2013 Nguyễn Thị Thúy Loan 20
Hệ đếm nhị phân (b=2)
11101.11(2)= ? (10)
Số nhị phân 1 1 1 0 1. 1 1
Số vị trí 4 3 2 1 0 -1 -2
Trị vị trí 24 23 22 21 20 2-1 2-2
Hệ 10 là 16 8 4 2 1 0.5 0.25
11101.11(2) = 1*16 + 1*8 + 1*4 + 0*2 + 1*1 +
1*0.5 + 1*0.25 = 29.75 (10)
65/3/2013 Nguyễn Thị Thúy Loan 21
Hệ đếm bát phân (b = 8)
1 tập hợp 3 bit biểu diễn 8 trị : 000, 001,
010, 011, 100, 101, 110, 111 tương
đương với 8 trị trong hệ thập phân là 0, 1,
2, 3, 4, 5, 6, 7.
5/3/2013 Nguyễn Thị Thúy Loan 22
Hệ đếm bát phân (b = 8)
Tập hợp các chữ số này gọi là hệ bát
phân, là hệ đếm với b = 8 = 23. Trong hệ
bát phân, trị vị trí là lũy thừa của 8.
Ví dụ: 235(8) = 2*82 + 3*81 + 5*80 = 157(10)
5/3/2013 Nguyễn Thị Thúy Loan 23
Hệ đếm thập lục phân(b=16)
Hệ đếm thập lục phân là hệ cơ số b =16= 24,
tương đương với tập hợp 4 chữ số nhị phân
(4 bit).
Hexa-decimal gồm 16 ký tự : từ 0 đến 9, và 6
chữ in A, B, C, D, E, F với A là 10, B là 11,
C là 12, D là 13, E là 14, F là 15. Với hệ thập
lục phân, trị vị trí là lũy thừa của 16.
5/3/2013 Nguyễn Thị Thúy Loan 24
Ví dụ:
34F5C(16) = 3*164 + 4*163 + 15*162 + 5*161
+ 12*160 = 216294(10)
Hệ đếm thập lục phân(b=16)
75/3/2013 Nguyễn Thị Thúy Loan 25
Bảng qui đổi tương đương 16
chữ số đầu tiên của 4 hệ
Hệ 10 Hệ 2 Hệ 8 Hệ 16
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
5/3/2013 Nguyễn Thị Thúy Loan 26
Bài tập
Thực hiện các phép chuyển đổi sau:
100011011(2)= ? (10)
277(8) = ?(10)
19B116 (16) = ?(2)
0011011111011111(2) = ?(16)
5/3/2013 Nguyễn Thị Thúy Loan 27
Kỹ thuật để giải quyết bài toán
Một chương trình máy tính được thiết kế
để giải quyết một bài toán nào đó. Vì vậy,
những bước cần để tìm kiếm lời giải cho
một bài toán cũng giống như những bước
cần để viết một chương trình.
5/3/2013 Nguyễn Thị Thúy Loan 28
Kỹ thuật để giải quyết bài toán
Các bước gồm:
o Xác định yêu cầu của bài toán
o Nghĩ ra 1 thuật toán (algorithm) để tìm
lời giải.
o Thực hiện thuật toán đó.
o Kiểm tra kết quả để lời giải đó có theo
yêu cầu của bài không?
85/3/2013 Nguyễn Thị Thúy Loan 29
Viết 1 chương trình trên C, các bước đề
nghị:
o Xác định mục đích của chương trình
o Nghĩ ra thuật toán để giải quyết bài toán
(dùng mã giả, lưu đồ, ….)
o Cài đặt (viết) thuật toán dùng ngôn ngữ lập
trình C.
o Thực thi chương trình và kiểm thử (testing)
Kỹ thuật để giải quyết bài toán
5/3/2013 Nguyễn Thị Thúy Loan 30
Soạn thảo 1 văn bản được dùng nhập mã
nguồn (source code)
Mã nguồn được biên dịch (compile) để
tạo nên tập tin đối tượng (object file)
Các bước trong chu trình
phát triển chương trình
5/3/2013 Nguyễn Thị Thúy Loan 31
Các tập tin đối tượng được liên kết (link)
để tạo nên tập tin có thể thực thi được
(executable file).
Thực hiện (run) chương trình để chỉ ra
chương trình có làm việc giống như kết
quả đã định không?
Các bước trong chu trình
phát triển chương trình
5/3/2013 Nguyễn Thị Thúy Loan 32
Các bước trong chu trình
phát triển chương trình
95/3/2013 Nguyễn Thị Thúy Loan 33
Nhập mã nguồn (source code)
o Mã nguồn là tập lệnh dùng để chỉ dẫn máy
tính thực hiện công việc do người lập trình
đưa ra.
o Tập tin mã nguồn có phần mở rộng .cpp
(C++)
Các bước trong chu trình
phát triển chương trình
5/3/2013 Nguyễn Thị Thúy Loan 34
Biên dịch mã nguồn (compile)
o Chương trình viết bằng ngôn ngữ cấp cao
C/C++ được biên dịch sang mã máy
(machine language) bằng một chương trình
dịch (trình biên dịch -compiler)
o Mã đối tuợng (object code) và tập tin chứa
chúng gọi là tập tin đối tuợng .obj.
Các bước trong chu trình
phát triển chương trình
5/3/2013 Nguyễn Thị Thúy Loan 35
Liên kết các tập tin đối tượng tạo các tập
tin thực thi (executable file).
o C có một thư viện chứa mã đối tượng cho
những hàm được tạo sẵn.
Ví dụ: clrscr(), gets(), sqrt(),
Các bước trong chu trình
phát triển chương trình
5/3/2013 Nguyễn Thị Thúy Loan 36
o Tập tin đối tượng do trình biên dịch tạo ra
kết hợp với mã đối tượng để tạo tập tin thực
thi, quá trình này được tạo bởi bộ liên kết
(Linker)
Các bước trong chu trình
phát triển chương trình
10
5/3/2013 Nguyễn Thị Thúy Loan 37
Thực hiện chương trình (run)
o Chương trình nguồn được biên dịch và liên
kết sẽ tạo nên tập tin thực thi và thực thi tại
dấu nhắc hệ thống.
o Nếu chương trình có lỗi phải được chỉnh
sửa và biên dịch lại.
Các bước trong chu trình
phát triển chương trình
5/3/2013 Nguyễn Thị Thúy Loan 38
o Quá trình 4 bước sẽ được lập lại cho đến
khi tập tin thực thi thực hiện đúng yêu cầu
bài toán.
Các bước trong chu trình
phát triển chương trình
5/3/2013 Nguyễn Thị Thúy Loan 39
#include
#include
void main()
{ clrscr();
printf (“ Hello! ”);
//cout<<“Hello!”;
getch();
}
Chương trình C đơn giản
TỔNG QUAN VỀ
LẬP TRÌNH C
ThS. Nguyễn Thị Thúy Loan
Chương II:
11
5/3/2013 Nguyễn Thị Thúy Loan 41
NỘI DUNG
Các khái niệm cơ bản.
Khảo sát một chương trình C đơn giản.
Từ khóa, quy tắc đặt tên trong C
Kiểu dữ liệu, hằng, biến.
Các thao tác trên Borland C.
5/3/2013 Nguyễn Thị Thúy Loan 42
Khái niệm cơ bản về lập trình
Lập trình?
Giải thuật
Ngôn ngữ
Lập trình
5/3/2013 Nguyễn Thị Thúy Loan 43
Ngôn ngữ lập trình là gì?
Khái niệm: Ngôn ngữ lập trình là ngôn
ngữ dùng để trình bày các thuật toán
trong máy tính mà máy tính có thể hiểu
được.
5/3/2013 Nguyễn Thị Thúy Loan 44
Ngôn ngữ lập trình là gì?
Phân loại:
o Ngôn ngữ máy: Ngôn ngữ riêng của từng
máy và là loại ngôn ngữ mà máy tính có
thể hiểu được một cách trực tiếp.
12
5/3/2013 Nguyễn Thị Thúy Loan 45
Ngôn ngữ lập trình là gì?
o Hợp ngữ: Tương tự ngôn ngữ máy, nhưng
hợp ngữ khác với ngôn ngữ máy ở chỗ,
thay vì viết chương trình dưới dạng nhị
phân, người ta sử dụng một số ký hiệu
tượng trưng dễ nhớ.
5/3/2013 Nguyễn Thị Thúy Loan 46
Ngôn ngữ lập trình là gì?
o Ngôn ngữ cấp cao: Chương trình thường dễ
viết hơn so với Ngôn ngữ máy và Hợp ngữ.
Mỗi lệnh của ngôn ngữ cấp cao tương
đương với một lệnh của thuật toán.
o Ví dụ: C, Pascal, Java, C++, Visual Basic, …
5/3/2013 Nguyễn Thị Thúy Loan 47
Ví dụ
#include
#include
void main()
{ clrscr();
printf(“Hello!”);//cout<<“Hello!”;
getch();
}
5/3/2013 Nguyễn Thị Thúy Loan 48
Đúng đắn, chính xác (correctness).
Chắc chắn (robustness).
Thân thiện (user friendliness).
Khả năng thích nghi (adapability):
Chương trình có khả năng phát triển theo
yêu cầu.
Các đặc điểm của CT
13
5/3/2013 Nguyễn Thị Thúy Loan 49
Các đặc điểm của CT
Tính tái sử dụng (reuseability): Chương
trình có thể dùng để làm một phần trong
một chương trình lớn khác.
Tính hiệu quả (efficiency).
Tính khả chuyển (porability): Khả năng
chuyển đổi giữa các môi trường.
Tính dừng (halt).
5/3/2013 Nguyễn Thị Thúy Loan 50
Tập ký tự dùng trong C
Ngôn ngữ C được xây dựng trên bộ ký tự sau:
Ký tự chữ: 26 chữ cái hoa: A B C .. Z, 26 chữ
cái thường: a b c .. z
Ký tự số: 0 1 2 .. 9
Ký tự gạch chân: _
Các ký tự đặc biệt:
o Các ký hiệu toán học: + - * / = ( )
o Các ký tự khác: . , : ; [ ] {} ! \ & % # $ ...
5/3/2013 Nguyễn Thị Thúy Loan 51
Cấu trúc của một CT C
Khối khai báo
Hàm
main()
Các hàm con
(nếu có)
5/3/2013 Nguyễn Thị Thúy Loan 52
Khảo sát
chương trình C đơn giản
14
/*Tính tổng hai số*/ // Mô tả mục đích của chương trình
#include // khai báo thư viện
int Tong(int a, int b); // khai báo prototype
void main() // hàm chính của chương trình
{ int a,b,t;
printf(“nhap a, b”);//cout <<“Nhap a,b”;
scanf(“%d%d”,&a,&b);cin>>a,b;
t = Tong(a,b);
printf(“Tong a +b = %d”, t);//cout<<“Tong a +b”<<t;
}
int Tong(int a, int b)// Hàm con
{ int t =0;
t = a+b;
return t;
}
5/3/2013 Nguyễn Thị Thúy Loan 54
Chương trình C đơn giản
#include là tập tin header
chuẩn của C, chứa các định nghĩa về
nhập và xuất.
#include là tập tin header
chuẩn của C, chứa các thư viện chuẩn.
5/3/2013 Nguyễn Thị Thúy Loan 55
Hàm main() là thành phần bắt buộc của
chương trình.
Hàm main() là nơi chương trình C bắt đầu
thực hiện.
Hàm main() không phụ thuộc vào vị trí
của hàm.
Chương trình C đơn giản
5/3/2013 Nguyễn Thị Thúy Loan 56
Chương trình C phải tồn tại một hàm
main()
Nội dung của hàm main() được thực hiện
đầu tiên và đặt trong cặp dấu ngoặc { }.
Chương trình C đơn giản
15
5/3/2013 Nguyễn Thị Thúy Loan 57
Thư viện stdio.h: chứa các định nghĩa
macro và các hàm nhập xuất như printf(),
scanf(), gets(), fflush(), fwrite(), scanf()...
Thư viện conio.h: chứa các hàm màn
hình như getch(), putch(), clrscr(),
gotoxy(), ...
Thư viện math.h: chứa các hàm tính toán
như: sin, cos, sqrt, …
Các thư viện thông dụng
5/3/2013 Nguyễn Thị Thúy Loan 58
Các chú thích
Các chú thích được các lập trình viên sử
dụng để ghi chú hay mô tả trong các phần
của chương trình.
Trong C có hai cách để chú thích:
o Chú thích trên 1 dòng: dùng cặp dấu //.
o Chú thích khối (chú thích trên nhiều
dòng) dùng cặp /* ... */.
5/3/2013 Nguyễn Thị Thúy Loan 59
Ví dụ
#include "stdio.h"
void main()
{
int x,y;
x = 1; //Gán hằng số 1 cho biến x
y = 3 + x; //Gán giá trị 3 + x cho y
}
5/3/2013 Nguyễn Thị Thúy Loan 60
Từ khóa
Từ khoá là những từ được sử dụng để
khai báo các kiểu dữ liệu, để viết các toán
tử và các câu lệnh.
Không được dùng các từ khóa để đặt tên
cho các hằng, biến, mảng, hàm... Các từ
khóa được viết bằng chữ thường.
Bảng dưới đây liệt kê các từ khoá của C:
16
5/3/2013 Nguyễn Thị Thúy Loan 61
asm break case char
const continue default do
double else enum extern
float for goto if
int interrupt long register
return short signed sizeof
static struct switch typedef
union unsigned void while
Từ khóa
5/3/2013 Nguyễn Thị Thúy Loan 62
Quy tắc đặt tên trong C
Tên là một dãy các ký tự bao gồm chữ cái,
số và gạch nối.
Ký tự đầu tiên của tên phải là chữ hoặc gạch
nối (không bắt đầu bằng số).
Tên không được trùng với từ khoá.
Tên được dùng để đặt cho tên hằng, tên
biến, tên mảng, tên hàm, tên con trỏ, tên
tệp,...
5/3/2013 Nguyễn Thị Thúy Loan 63
Ví dụ
Các tên đúng: a_1, delta, x1, _step, GAMA
Các tên sai: 3MN Ký tự đầu tiên là số
m#2 Sử dụng ký tự #
f(x) Sử dụng các dấu ( )
do Trùng với từ khoá
te ta Sử dụng dấu trắng
Y-3 Sử dụng dấu gạch ngang -
5/3/2013 Nguyễn Thị Thúy Loan 64
Kiểu ký tự: Một giá trị kiểu char chiếm 1
byte (8 bit) và biểu diễn được một ký tự
thông qua bảng mã ASCII
Ký tự Mã ASCII Ký tự Mã ASCII
0 48 A 65
1 49 B 66
2 50 a 97
9 57 b 98
Kiểu dữ liệu
17
5/3/2013 Nguyễn Thị Thúy Loan 65
Kiểu dữ liệu
Có hai kiểu dữ liệu ký tự: kiểu char và
unsigned char.
Kiểu Phạm vi biểu diễn
Số ký
tự
Kích
thước
Mã định
dạng
char -128 đến 127 256 1 byte %c or %d
unsigned
char 0 đến 255 256 1 byte %d
5/3/2013 Nguyễn Thị Thúy Loan 66
Kiểu số nguyên:
Kiểu Phạm vi biểu diễn Kích thước
Mã định
dạng
int -32768 đến 32767 2 byte %d
unsigned
int 0 đến 65535 2 byte %u
long -2147483648 đến 2147483647 4 byte %ld
unsigned
long 0 đến 4294967295 4 byte %lu
Kiểu dữ liệu
5/3/2013 Nguyễn Thị Thúy Loan 67
Kiểu số thực (dấu chấm động):
Kiểu Phạm vi biểu diễn
Số chữ số
có nghĩa
Kích
thước
Mã đinh
dạng
Float 3.4E-38 đến 3.4E+38 7 đến 8 4 byte %f
Double 1.7E-308 đến 1.7E+308 15 đến 16 8 byte %lf
long
double
3.4E-4932 đến
1.1E4932 17 đến 18
10
byte %lf
Kiểu dữ liệu
5/3/2013 Nguyễn Thị Thúy Loan 68
Hằng và biến
Hằng: là các đại lượng mà giá trị của nó
không thay đổi trong quá trình tính toán.
Cú pháp: #define
Ví dụ:
#define MAX 1000 // MAX là tên hằng,
MAX có giá trị 1000
18
5/3/2013 Nguyễn Thị Thúy Loan 69
Hằng int: là số nguyên có giá trị trong khoảng
từ -32768 đến 32767.
Ví dụ:
#define so -50// hằng so có giá trị là -50
#define so_ng 262// hằng so_ng có giá trị là 262
#define sothuc 262.0// hằng sothuc có giá trị là
262.0 (float)
Hằng và biến
5/3/2013 Nguyễn Thị Thúy Loan 70
Hằng long: là số nguyên có giá trị trong
khoảng từ -2,1 tỷ đến 2,1 tỷ.
Hằng long được viết theo cách: 14L hoặc
14l (thêm L hoặc l vào đuôi)
Một số nguyên vượt ra ngoài miền xác
định của int cũng được xem là long.
Hằng và biến
5/3/2013 Nguyễn Thị Thúy Loan 71
Ví dụ:
#define n1 33000L // Định nghĩa hằng long
n1 có giá trị là 33000
#define n2 33000 // Định nghĩa hằng long
n2 có giá trị là 33000
Hằng và biến
5/3/2013 Nguyễn Thị Thúy Loan 72
Hằng ký tự: là một ký tự riêng biệt được
viết trong hai dấu nháy đơn, ví dụ 'a'. Giá trị
của 'a' chính là mã ASCII của chữ a. Như
vậy giá trị của 'a' là 97.
Hằng ký tự có thể tham gia vào các phép
toán như mọi số nguyên khác.
Ví dụ: '9' - '0' = 57 – 48 = 9
#define kt 'a' // hằng ký tự kt có giá trị là 97
Hằng và biến
19
5/3/2013 Nguyễn Thị Thúy Loan 73
Hằng chuỗi ký tự: là một dãy ký tự bất kỳ đặt
trong hai dấu nháy kép.
Ví dụ: #define s1 "Ha noi"
Chuỗi ký tự được lưu trữ trong máy dưới dạng
một mảng có các phần tử là các ký tự riêng
biệt. Trình biên dịch tự động thêm ký tự null
(\0) vào cuối mỗi xâu (ký tự \0 được xem là
dấu hiệu kết thúc của một xâu ký tự ).
Hằng và biến
5/3/2013 Nguyễn Thị Thúy Loan 74
Biến: là tên tượng trưng trong một vùng
nhớ mà dữ liệu có thể lưu trữ trên đó, mỗi
biến cần phải được khai báo trước khi
đưa vào sử dụng.
Cú pháp: ;
Hằng và biến
5/3/2013 Nguyễn Thị Thúy Loan 75
Ví dụ:
int a = 10, b; // biến a, b chứa các số
nguyên
long m , n; // biến m, n chứa giá trị long
Hằng và biến
5/3/2013 Nguyễn Thị Thúy Loan 76
Cách xây dựng chương trình
B1: Phân tích bài toán và vẽ lưu đồ thuật
toán.
B2: Xây dựng thuật toán.
B3: Viết chương trình.
B4: Chạy và kiểm tra chương trình.
B5: Bảo trì.
20
5/3/2013 Nguyễn Thị Thúy Loan 77
Môi trường hỗ trợ lập trình
C được tạo bởi Dennis Ritchie ở Bell
Telephone Laboratories vào năm 1972.
Vào năm 1983, học viện chuẩn quốc
gia Mỹ (American National Standards
Institute - ANSI) thành lập một tiểu ban để
chuẩn hóa C được biết đến như ANSI
Standard C
5/3/2013 Nguyễn Thị Thúy Loan 78
Đặc điểm ngôn ngữ C
Bộ lệnh phù hợp với phương pháp lập
trình cấu trúc.
Kiểu dữ liệu phong phú, cho phép định
nghĩa kiểu dữ liệu mới.
Gồm một hoặc nhiều hàm rời nhau.
Linh động về cú pháp.
5/3/2013 Nguyễn Thị Thúy Loan 79
Các khái niệm
Lệnh
Lệnh thực hiện một chức năng nào đó
(khai báo, gán, xuất, nhập, …) và được
kết thúc bằng dấu chấm phẩy (;)
Khối lệnh
Khối lệnh gồm nhiều lệnh và được đặt
trong cặp dấu ngoặc { }
5/3/2013 Nguyễn Thị Thúy Loan 80
Qui ước viết lệnh trong C
Mỗi lệnh nằm trên một dòng. Cuối dòng
lệnh PHẢI có dấu chấm phẩy (;).
Lệnh quá dài có thể được viết thành
nhiều dòng sao cho mỗi lệnh phải được
quan sát trọn vẹn trong pham vi cửa sổ
lệnh.
21
5/3/2013 Nguyễn Thị Thúy Loan 81
Không nên đặt nhiều lệnh trên cùng một
dòng, ngay cả các khai báo biến, nếu các
biến có khác kiểu cũng nên đặt trên các
dòng khác nhau.
Qui ước viết lệnh trong C
5/3/2013 Nguyễn Thị Thúy Loan 82
Các thao tác trên Borland C
Màn hình làm việc
5/3/2013 Nguyễn Thị Thúy Loan 83
Các phím chức năng chính:
F2: Lưu file
Chú ý: Chọn đường dẫn và đặt tên file
cho đúng. Tên có tối đa 8 ký tự, phần mở
rộng không cần nhập vào (mặc định là
*.cpp).
Các thao tác trên Borland C
5/3/2013 Nguyễn Thị Thúy Loan 84
F3: Mở file có sẵn.
F4: Chạy từng bước tại vị trí con trỏ hiện
hành.
F5: Phóng to hoặc thu nhỏ màn hình soạn
thảo.
F6: Chuyển qua lại các cửa sổ soạn thảo.
Các thao tác trên Borland C
22
5/3/2013 Nguyễn Thị Thúy L