Giáo trình lập trình ngôn ngữ C
Có rất nhiều dạng ngôn ngữ lập trình trong tin học và lập trình C là một trong số các ngôn ngữ lập trình đi đầu mở ra một kỷ nguyên cho ngành lập trình.
Bạn đang xem trước 20 trang tài liệu Giáo trình lập trình ngôn ngữ C, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Giáo trình
Lập trình ngôn ngữ C
Bài 1
Mục ti
Kết thú
¾ Ph
¾ Biế
¾ Nê
¾ Nắ
¾ Hi
¾ Vẽ
¾ Liệ
Giới th
Ngày n
điều hư
nghệ T
viên cầ
Ðầu ti
(Progra
1.1 R
Khi mộ
hình. Ð
tính. H
máy t
này, hệ
đưa ra
hay nh
lệnh tạ
Để rõ h
sữa dâu
sau :
1.
2.
3.
Bây gi
Chúng
¾
¾
êu:
c bài học này
ân biệt sự khá
t được quá tr
n dùng C khi
m được cấu t
ểu rõ khái niệ
lưu đồ (flow
t kê các ký h
iệu
ay, khoa học
ớng sự phát
hông tin và l
n phải biết. V
ên chúng ta
m) và Phần m
a lệnh cho m
t máy tính đ
iều này diễn
ệ điều hành
ính và thiết l
điều hành p
lời giải cho m
iều vấn đề. M
o thành một c
ơn, chúng ta
. Anh ta thấy
Lấy một ít s
Đổ nước ép
Trộn hỗn hợ
ờ nếu bạn của
ta hãy phân t
Lệnh đầu ti
Lệnh thứ ha
, bạn có thể:
c nhau giữa
ình hình thàn
nào và tại sa
rúc một chươ
m giải thuật
chart)
iệu dùng tron
máy tính th
triển thế giớ
ập trình nói c
ì thế, trong
tìm hiểu sự
ềm (Softwa
áy tính làm
ược khởi độ
ra thế nào?
(operating sy
ập các thông
hải được cấu
ột hay nhiề
ỗi chương tr
hương trình
hãy xem xét
ngon miệng
ữa.
dâu vào.
p này và làm
chúng ta the
ích chỉ thị (lệ
ên : Lệnh này
i : Một lần nữ
Câu lệnh, Ch
h C
o
ng trình C
(algorithms)
g lưu đồ
âm nhập vào
i. Bất cứ ng
hung. Cụ thể
giáo trình nà
khác nhau c
re).
việc
ng, nó sẽ tự
Câu trả lời đ
stem) được x
số ban đầu t
tạo từ một t
u bài toán nà
ình là tập hợ
và một nhóm
một thí dụ :
và muốn xin
lạnh.
o những chỉ
nh) ở trên
hoàn chỉnh c
a, lệnh này k
Những k
ương trình và
mọi lĩnh vực
ành nghề nào
, C là một n
y, chúng ta s
ủa những kh
động thực th
ơn giản là nh
em như phầ
rước khi trao
ập hợp các c
o đóMọi chư
p các câu lện
các chương
Một người b
công thức là
dẫn này, họ c
hưa ? Nó có
hông nói rõ
hái niệm
Phần mềm
. Tự động hó
cũng cần p
gôn ngữ lập
ẽ nghiên cứu
ái niệm: Lệ
i một số tiến
ờ vào Hệ đi
n mềm hệ th
quyền cho n
hương trình.
ơng trình cố
h giải quyết
trình tạo thàn
ạn đến nhà c
m. Chúng ta
ũng có thể tạ
trả lời được
nước ép dâu
cơ bản về
a hiện đang
hải hiểu biết
trình cấp cao
chi tiết cấu
nh (Comman
trình và xu
ều hành cài đ
ống. Phần mề
gười dùng.
Mọi chương
gắng đưa ra
một bài toán
h một phần m
húng ta chơi
hướng dẫn c
o ra món sữa
câu hỏi lấy sữ
để ‘ở đâu’.
ngôn ngữ
là ngành chủ
ít nhiều về
mà mọi lập
trúc ngôn ng
d), Chương
ất kết quả ra
ặt bên trong
m này khởi
Để làm được
trình đều cố
giải pháp cho
cụ thể. Một n
ềm.
và được mời
ho anh ta làm
dâu tuyệt vờ
a ‘ở đâu’ ?.
C
chốt
Công
trình
ữ C.
trình
màn
máy
động
điều
gắng
một
hóm
món
như
i.
2 Lập trình cơ bản C
May mắn là bạn của chúng ta đủ thông minh để hiểu được công thức pha chế nói trên, dù rằng còn
nhiều điểm chưa rõ ràng. Do vậy nếu chúng ta muốn phổ biến cách làm, chúng ta cần bổ sung các
bước như sau :
1. Rót một ly sữa vào máy trộn.
2. Đổ thêm vào một ít nước dâu ép.
3. Ðóng nắp máy trộn
4. Mở điện và bắt đầu trộn
5. Dừng máy trộn lại
6. Nếu đã trộn đều thì tắt máy, ngược lại thì trộn tiếp.
7. Khi đã trộn xong, rót hỗn hợp vào tô và đặt vào tủ lạnh.
8. Ðể lạnh một lúc rồi lấy ra dùng.
So sánh hai cách hướng dẫn nêu trên, hướng dẫn thứ hai chắc chắn hoàn chỉnh, rõ ràng hơn, ai cũng có
thể đọc và hiểu được.
Tương tự, máy tính cũng xử lý dữ liệu dựa vào tập lệnh mà nó nhận được. Ðương nhiên các chỉ thị
đưa cho máy vi tính cũng cần phải hoàn chỉnh và có ý nghĩa rõ ràng. Những chỉ thị này cần phải tuân
thủ các quy tắc:
1. Tuần tự
2. Có giới hạn
3. Chính xác.
Mỗi chỉ thị trong tập chỉ thị được gọi là “câu lệnh” và tập các câu lệnh được gọi là “chương trình”.
Chúng ta hãy xét trường hợp chương trình hướng dẫn máy tính cộng hai số.
Các lệnh trong chương trình có thể là :
1. Nhập số thứ nhất và nhớ nó.
2. Nhập số thứ hai và nhớ nó.
3. Thực hiện phép cộng giữa số thứ nhất và số thứ hai, nhớ kết quả phép cộng.
4. Hiển thị kết quả.
5. Kết thúc.
Tập lệnh trên tuân thủ tất cả các quy tắc đã đề cập. Vì vậy, tập lệnh này là một chương trình và nó sẽ
thực hiện thành công việc cộng hai số trên máy tính.
Ghi chú: Khả năng nhớ của con người được biết đến như là trí nhớ, khả năng nhớ dữ liệu
được đưa vào máy tính được gọi là “bộ nhớ”. Máy tính nhận dữ liệu tại một thời điểm và
làm việc với dữ liệu đó vào thời điểm khác, nghĩa là máy tính ghi dữ liệu vào trong bộ
nhớ rồi sau đó đọc ra để truy xuất các giá trị dữ liệu và làm việc với chúng.
Khi khối lượng công việc giao cho máy tính ngày càng nên nhiều và phức tạp thì tất cả các
câu lệnh không thể được đưa vào một chương trình, chúng cần được chia ra thành một số
chương trình nhỏ hơn. Tất cả các chương trình này cuối cùng được tích hợp lại để chúng có
thể làm việc với nhau. Một tập hợp các chương trình như thế được gọi là phần mềm.
Mối q
bằng s
1.2 N
Vào đầ
dụng lầ
Martin
người k
Trong
kiểu dữ
C liên
hành n
C cũng
hành c
trình so
hành U
Trình b
thể đượ
dịch C
C khi t
hàm m
lý dễ d
1.2.1 C
C được
những
của má
loại m
nhưng
kiểu dữ
dùng c
1.2.2 C
uan hệ giữa
ơ đồ trong h
gôn ngữ C
u những năm
n đầu trên m
Richards ph
hởi thủy ra C
khi BCPL v
liệu chính g
kết chặt chẽ v
ào. C rất hiệu
được dùng đ
ủa máy tính
ạn thảo (Ed
NIX được ph
iên dịch (co
c biên dịch v
dịch nhanh v
hực thi cũng
à chúng sẽ đ
àng mà tốn rấ
– Ngôn ngữ
hiểu là ngô
chức năng củ
y tính như b
áy tính này c
nó không đư
liệu. Nó cho
ho lập trình m
- Ngôn ngữ
ba khái niệ
ình 1.1:
Hình
70 tại phòng
ột hệ thống
át triển. BCP
.
à B không h
ồm : kiểu ký
ới hệ thống
quả để viết c
ể lập trình h
hay những t
itors), chươn
át triển dựa v
mpiler) C có
à chạy trên m
à cho ra mã
rất nhanh nh
ược tái sử dụ
t ít công sức
bậc trung
n ngữ bậc tru
a hợp ngữ (n
its, bytes, địa
ó thể chạy t
ợc xem ngan
phép thao tá
ức hệ thống
cấu trúc
P
Commands
m câu lệnh
1.1: Phần mề
thí nghiệm B
cài đặt hệ đi
L sau đó đã đ
ỗ trợ kiểu dữ
tự (character
UNIX nhưng
ác chương tr
ệ thống. Một
iện ích hỗ trợ
g trình Hợp
ào C. C đan
sẵn cho hầu
áy khác chỉ
đối tượng kh
ư hợp ngữ (A
ng cho chươ
.
ng bởi vì nó
gôn ngữ cấp
chỉ…. Hơn
rên một loại
g hàng với ng
c trực tiếp tr
.
rogram 1
, chương trì
m, chương t
ell, Dennis
ều hành UN
ược Ken Th
liệu, thì C đ
), kiểu số ngu
không bị tró
ình thuộc nhi
chương trình
nó. Hệ điều
Ngữ (Assem
g được sử dụ
hết các máy
cần thay đổi
ông lỗi.
ssembly). Lậ
ng trình khác
kết hợp nhữ
thấp). C cho
nữa, mã C rấ
máy tính kh
ôn ngữ cao
ên bits, bytes
Software
Command
nh và phần
rình và câu
Ritchie đã ph
IX. C có ngu
ompson phát
ã có nhiều k
yên (interger
i buộc vào b
ều những lĩn
hệ thống có
hành (OS),
bly) là các c
ng rộng rãi b
tính. Mã lện
rất ít hoặc k
p trình viên c
. Do đó, nhữ
ng yếu tố củ
phép thao tác
t dễ di chuy
ác. Mặc dù C
cấp về mặt ki
, word và con
Program 2
s
mềm có thể
lệnh
át triển ngôn
ồn gốc từ ng
triển thành n
iểu dữ liệu k
) và kiểu số t
ất cứ một má
h vực khác n
ý nghĩa liên
trình thông d
hương trình h
ởi vì tính hiệu
h viết bằng C
hông thay đổ
ó thể tạo ra
ng dự án lớn
a những ngô
trên những
ển nghĩa là p
có năm kiể
ểu dữ liệu. C
trỏ (pointer
Commands
được biểu
ngữ C. C đư
ôn ngữ BCP
gôn ngữ B, đ
hác nhau. N
hực (float).
y tính hay hệ
hau.
quan đến hệ
ịch (Interpre
ệ thống. Hệ
quả và linh
trên máy n
i gì cả. Trình
và bảo trì thư
có thể được
n ngữ cấp ca
thành phần cơ
hần mềm viế
u dữ liệu cơ
cho phép ch
). Vì vậy, nó
diễn
ợc sử
L do
ây là
hững
điều
điều
ters),
điều
hoạt.
ày có
biên
viện
quản
o và
bản
t cho
bản,
uyển
được
4 Lập trình cơ bản C
Thuật ngữ ngôn ngữ cấu trúc khối (block-structured language) không áp dụng với C. Ngôn ngữ cấu
trúc khối cho phép thủ tục (procedures) hay hàm (functions) được khai báo bên trong các thủ tục và
hàm khác. C không cho phép việc tạo hàm trong hàm nên nó không phải là ngôn ngữ cấu trúc khối.
Tuy nhiên, nó được xem là ngôn ngữ cấu trúc vì nó có nhiều điểm giống với ngôn ngữ cấu trúc
ALGOL, Pascal và một số ngôn ngữ tương tự khác.
C cho phép có sự tổng hợp của mã lệnh và dữ liệu. Ðiều này là một đặc điểm riêng biệt của ngôn ngữ
cấu trúc. Nó liên quan đến khả năng tập hợp cũng như ẩn dấu tất cả thông tin và các lệnh khỏi phần
còn lại của chương trình để dùng cho những tác vụ riêng biệt. Ðiều này có thể thực hiện qua việc dùng
các hàm hay các khối mã lệnh (Code Block). Các hàm được dùng để định nghĩa hay tách rời những
tác vụ được yêu cầu trong chương trình. Ðiều này cho phép những chương trình hoạt động như trong
một đơn vị thống nhất. Khối mã lệnh là một nhóm các câu lệnh chương trình được nối kết với nhau
theo một trật tự logic nào đó và cũng được xem như một đơn vị thống nhất. Một khối mã lệnh được
tạo bởi một tập hợp nhiều câu lệnh tuần tự giữa dấu ngoặc mở và đóng xoắn như dưới đây:
do
{
i = i + 1;
.
.
.
} while (i < 40);
Ngôn ngữ cấu trúc hỗ trợ nhiều cấu trúc dùng cho vòng lặp (loop) như là while, do-while, và for.
Những cấu trúc lặp này giúp lập trình viên điều khiển hướng thực thi trong chương trình.
1.3 Cấu trúc chương trình C
C có một số từ khóa, chính xác là 32. Những từ khóa này kết hợp với cú pháp của C hình thành ngôn
ngữ C. Nhưng nhiều trình biên dịch cho C đã thêm vào những từ khóa dùng cho việc tổ chức bộ nhớ ở
những giai đoạn tiền xử lý nhất định.
Vài quy tắc khi lập trình C như sau :
- Tất cả từ khóa là chữ thường (không in hoa)
- Ðoạn mã trong chương trình C có phân biệt chữ thường và chữ hoa. Ví dụ : do while thì khác
với DO WHILE
- Từ khóa không thể dùng cho các mục đích khác như đặt tên biến (variable name) hoặc tên hàm
(function name)
- Hàm main() luôn là hàm đầu tiên được gọi đến khi một chương trình bắt đầu chạy (chúng ta sẽ
xem xét kỹ hơn ở phần sau)
Xem xét đoạn mã chương trình:
main ()
{
/* This is a sample program */
int i = 0;
i = i + 1;
.
.
}
Ghi c
xem
1.3.1 Ð
Chươn
main()
thi. Tên
những
1.3.2 D
Sau địn
ngoặc
đánh d
mã lện
Hơn nữ
cho cấu
1.3.3 D
Dòng
kết thú
phím s
một hà
thúc bằ
1.3.4 D
Những
chương
thúc bằ
hiệu nà
sample
Ví dụ:
int a =
1.3.5 T
Tất cả
đặt C đ
Khi lập
Một hà
chương
khi số
1.4 B
Những
hiện nh
¾ So
hú: Những k
như là đoạn m
ịnh nghĩa H
g trình C đư
. Hệ điều hàn
hàm luôn đ
tham số (para
ấu phân cá
h nghĩa hàm
xoắn đóng }
ấu điểm bắt đ
h đó. Trong đ
a, đối với hà
trúc vòng lặ
ấu kết thúc
int i = 0
c bằng dấu c
pacebar hay
ng nhưng mỗ
ng dấu chấm
òng chú thí
chú thích th
trình. Trình
ng */. Trườn
y, toàn bộ ch
program" là
0; // Biến ‘a’
hư viện C (
trình biên dị
ặt thư viện t
trình, những
m (được viế
trình khi đư
khác lại yêu c
iên dịch và
bước khác n
ư sau :
ạn thảo/Xử l
hía cạnh khác
ã mẫu, nó sẽ
àm
ợc chia thàn
h luôn trao q
ược theo sau
meters).
ch (Delimite
sẽ là dấu ng
sau câu lệnh
ầu của một
oạn mã mẫu
m, dấu ngoặc
p và lệnh điề
câu lệnh (T
; trong đoạn
hấm phẩy (;)
một khoảng
i câu lệnh ph
phẩy được x
ch (Commen
ường được v
biên dịch sẽ
g hợp chú th
ương trình sẽ
dòng chú th
đã được kha
Library)
ch C chứa m
rong một tập
hàm được c
t bởi một lập
ợc yêu cầu. V
ầu tạo một th
thực thi một
hau của việc
ý từ
nhau của chư
được dùng lại
h từng đơn v
uyền điều k
là cặp dấu ng
rs)
oặc xoắn mở
cuối trong h
khối mã lệnh
có 2 câu lệnh
xoắn cũng d
u kiện..
erminator)
mã mẫu là m
. C không hiể
cách do dùng
ải được kết
em như một
t)
iết để mô tả
không dịch c
ích có nhiều
bị coi như l
ích. Trong trư
i báo như là m
ột thư viện h
tin (file) lớn
hứa trong thư
trình viên)
ài trình biên
ư viện riêng
chương trìn
dịch một ch
ơng trình C đ
trong suốt ph
ị gọi là hàm
hiển cho hàm
oặc đơn (). T
{. Nó thông
àm chỉ ra đi
, dấu ngoặc x
giữa 2 dấu n
ùng để phân
ột câu lệnh
u việc xuống
phím tab. C
thúc bằng dấ
câu lệnh sai.
công việc củ
húng. Trong
dòng, ta ph
à một chú thí
ờng hợp chú
ột kiểu số n
àm chuẩn dù
trong khi đa
viện có thể
có thể được
dịch cho ph
.
h (Compilin
ương trình C
ược xem xét
ần còn lại của
. Ðoạn mã m
main() khi
rong dấu ngo
báo điểm b
ểm kết thúc
oắn đóng đá
goặc xoắn.
định những đ
(statement).
dòng dùng p
ó thể có nhi
u chấm phẩy
a một lệnh đ
C, chú thích
ải chú ý ký h
ch. Trong đo
thích chỉ trê
guyên (interg
ng cho nhữn
số còn lại ch
được dùng ch
đặt trong thư
ép hàm được
g and Runn
từ mã nguồ
qua đoạn mã t
giáo trình nà
ẫu chỉ có d
một chương
ặc đơn có th
ắt đầu của hà
của hàm. Dấ
nh dấu điểm
oạn mã trong
Một câu lệnh
hím Enter, k
ều hơn một c
. Một câu lện
ặc biệt, một
bắt đầu bằng
iệu kết thúc
ạn mã mẫu d
n một dòng
er)
g tác vụ chun
ứa nó trong
o nhiều loại
viện và đượ
thêm vào thư
ing)
n thành mã t
rên. Ðoạn mã
y.
uy nhất một
trình C được
ể có hay khôn
m. Tương tự
u ngoặc xoắ
kết thúc của
trường hợp
trong C thì
hoảng trắng
âu lệnh trên
h không đượ
hàm hay toà
ký hiệu /* v
(*/), nếu thiế
òng chữ "Thi
ta có thể dùn
g. Một vài b
nhiều tập tin
tác vụ khác n
c dùng bởi n
viện chuẩn
hực thi được
này
hàm
thực
g có
, dấu
n mở
khối
dùng
được
dùng
cùng
c kết
n bộ
à kết
u ký
s is a
g //.
ộ cài
nhỏ.
hau.
hiều
trong
thực
6 Lập trình cơ bản C
Ta dùng một trình xử lý từ (word processor) hay trình soạn thảo (editor) để viết mã nguồn (source
code). C chỉ chấp nhận loại mã nguồn viết dưới dạng tập tin văn bản chuẩn. Vài trình biên dịch
(compiler) cung cấp môi trường lập trình (xem phụ lục) gồm trình soạn thảo.
¾ Mã nguồn
Ðây là đoạn văn bản của chương trình mà người dùng có thể đọc. Nó là đầu vào của trình biên
dịch C.
¾ Bộ tiền xử lý C
Từ mã nguồn, bước đầu tiên là chuyển nó qua bộ tiền xử lý của C. Bộ tiền xử lý này sẽ xem xét
những câu lệnh bắt đầu bằng dấu #. Những câu lệnh này gọi là các chỉ thị tiền biên dịch
(directives). Điều này sẽ được giải thích sau. Chỉ thị tiền biên dịch thường được đặt nơi bắt đầu
chương trình mặc dù nó có thể được đặt bất cứ nơi nào khác. Chỉ thị tiền biên dịch là những tên
ngắn gọn được gán cho một tập mã lệnh.
¾ Mã nguồn mở rộng C
Bộ tiền xử lý của C khai triển các chỉ thị tiền biên dịch và đưa ra kết quả. Ðây gọi là mã nguồn C
mở rộng, sau đó nó được chuyển cho trình biên dịch C.
¾ Trình biên dịch C (Compiler)
Trình biên dịch C dịch mã nguồn mở rộng thành ngôn ngữ máy để máy tính hiểu được.
Nếu chương trình quá lớn nó có thể được chia thành những tập tin riêng biệt và mỗi tập tin có thể
được biên dịch riêng rẽ. Ðiều này giúp ích khi mà một tập tin bị thay đổi, toàn chương trình không
phải biên dịch lại.
¾ Bộ liên kết (Linker)
Mã đối tượng cùng với những thủ tục hỗ trợ trong thư viện chuẩn và những hàm được dịch riêng
lẻ khác kết nối lại bởi Bộ liên kết để cho ra mã có thể thực thi được.
¾ Bộ
Mã
Tiế
1.5
Chúng
trước r
Giả sử
chúng
BƯỚC
BƯỚC
BƯỚC
BƯỚC
Thủ tụ
tập hợp
Một gi
giải qu
Qua ph
đó, kế
mẩu th
nạp (Loade
thực thi đượ
n trình trên đ
Các bước l
ta thường gặ
ồi sau đó mớ
chúng ta mu
ta cần hiểu n
1 : Rời phòn
2 : Ðến cầu
3 : Xuống tầ
4 : Ði tiếp đ
c trên liệt kê
các bước nh
ải thuật (còn
yết vấn đề. N
ần trên, chún
đến chúng ta
ông tin đó. C
# include
Tập tin thê
Library
Thư việ
r)
c thi hành bở
ược mô tả qu
Hình 1
ập trình giải
p phải những
i hoạch định
ốn đi từ phò
ó rồi tìm ra c
g
thang
ng hầm
ến quán ăn tự
tập hợp các b
ư vậy gọi là
gọi là thuật
ó gồm một tậ
g ta thấy rõ
cần tập hợp
uối cùng, chú
file
m vào
File
n
i bộ nạp của
a lưu đồ 1.2
.2: Biên dịch
quyết vấn đ
bài toán. Đ
các bước cần
ng học đến
ác bước giải
phục vụ
ước thực hiệ
giải thuật (Al
toán) có thể
p hợp các bư
ràng để giải
tất cả nhữn
ng ta cho ra
So
Chươ
Co
Trìn
Ob
Tập t
L
Bộ
Exec
Tập
hệ thống.
sau :
và thực thi
ề
ể giải quyết n
làm .
quán ăn tự p
quyết trước
n được xác đ
gorithm hay
được định ng
ớc giúp đạt đ
quyết được m
g thông tin li
lời giải của b
urce file
ng trình gốc
mpiler
h biên dịch
ject File
in đối tượng
inker
liên kết
utable File
tin thực thi
một chương
hững bài toá
hục vụ ở tần
khi thực thi c
ịnh rõ ràng c
gọi vắn tắt là
hĩa như là m
ược lời giải.
ột bài toán,
ên quan tới n
ài toán đó.
t
trình
n đó, chúng
g hầm. Ðể t
ác bước đó:
ho việc giải
algo ).
ột thủ tục, cô
trước tiên ta
ó. Bước kế
Other Use
generate
Object Fi
Các tập tin t
hi khác của n
dùng
ta cần hiểu c
hực hiện việc
quyết vấn đề
ng thức hay
phải hiểu bài
sẽ là xử lý n
r-
d
le
hực
gười
húng
này
. Một
cách
toán
hững
8 Lập trình cơ bản C
Giải thuật chúng ta có là một tập hợp các bước được liệt kê dưới dạng ngôn ngữ đơn giản. Rất có thể
rằng các bước trên do hai người khác nhau viết vẫn tương tự nhau nhưng ngôn ngữ dùng diễn tả các
bước có thể khác nhau. Do đó, cần thiết có những phương pháp chuẩn mực cho việc viết giải thuật để
mọi người dễ dàng hiểu nó. Chính vì vậy , giải thuật được viết bằng cách dùng hai phương pháp chuẩn
là mã giả (pseudo code) và lưu đồ (flowchart).
Cả hai phương pháp này đều dùng để xác định một tập hợp các bước cần được thi hành để có được lời
giải. Liên hệ tới vấn đề đi đến quán ăn tự phục vụ trên, chúng ta đã vạch ra một kế hoạch (thuật toán)
để đến đích. Tuy nhiên, để đến nơi, chúng ta phải cần thi hành những bước này thật sự. Tương tự, mã
giả và lưu đồ chỉ đưa ra những bước cần làm. Lập trình viên phải viết mã cho việc thực thi những
bước này qua việc dùng một ngôn ngữ nào đó.
Chi tiết về về mã giả và lưu đồ được trình bày dưới đây.
1.5.1 Mã giả (pseudo code)
Nhớ rằng mã giả không phải là mã thật. Mã giả sử dụng một tập hợp những từ tương tự như mã thật
nhưng nó không thể được biên dịch và thực thi như mã thật.
Chúng ta hãy xem xét mã giả qua ví dụ sau.Ví dụ này sẽ hiển thị câu 'Hello World!'.
Ví dụ 1:
BEGIN
DISPLAY 'Hello World!'
END
Qua ví dụ trên, mỗi đoạn mã giả phải bắt đầu với từ BEGIN hoặc START, và kết thúc với từ END hay
STOP. Ðể hiển thị giá trị nào đó, từ DISPLAY hoặc WRITE được dùng. Khi giá trị được hiển thị là
một giá trị hằng (không đổi), trong trường hợp này là (Hello World), nó được đặt bên trong dấu nháy.
Tương tự, để nhận một giá trị của người dùng, từ INPUT hay READ được dùng.
Ðể hiểu điều này rõ hơn, chúng ta xem xét ví dụ 2, ở ví dụ này ta sẽ nhập hai số và máy sẽ hiển thị
tổng của hai số.
Ví dụ 2:
BEGIN
INPUT A, B
DISPLAY A + B
END
Trong đoạn mã giả này, người dùng nhập vào hai giá trị, hai giá trị này được lưu trong bộ nhớ và có
thể được truy xuất như là A và B theo thứ tự. Những vị trí được đặt tên như vậy trong bộ nhớ gọi là
biến. Chi tiết về biến sẽ được giải thích trong phần sau của chương này. Bước kế tiếp trong đoạn mã
giả sẽ hiển thị tổng của hai giá trị trong biến A và B.
Tuy nhiên, cũng đoạn mã trên, ta có thể bổ sung để lưu tổng của hai biến trong một biến thứ ba rồi
hiển thị giá trị biến này như trong ví dụ 3 sau đây.
Ví dụ 3:
BEGIN
INPUT A, B
C
DI
END
Một tậ
cấu trú
Chúng
điểm đ
1.5.2
Một lư
hoạt độ
Ðể hiể
‘Hello
Lưu đồ
hay ST
nhiên,
tương ứ
= A + B
SPLAY C
p hợp những
c : tuần tự, ch
được gọi nh
ầu tiên. Hai l
Lưu đồ (Fl
u đồ là một
ng trong mộ
u điều này rõ
World!’.
giống với đ
OP. Tương t
ở đây, mọi từ
ng được trìn
chỉ thị hay c
ọn lựa và lặ
ư vậy vì nhữ
oại cấu trúc c
owcharts)
hình ảnh min
t tiến trình. M
hơn, chúng
oạn mã giả l
ự, từ