Tải bản đầy đủ (.pdf) (145 trang)

Giáo trình lập trình căn bản (nghề công nghệ kỹ thuật điều khiển và tự động hóa trình độ cao đẳng)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.39 MB, 145 trang )

ỦY BAN NHÂN DÂN TỈNH AN GIANG
TRƯỜNG CAO ĐẲNG NGHỀ AN GIANG

GIÁO TRÌNH

MƠ ĐUN: LẬP TRÌNH CĂN BẢN
NGHỀ: CƠNG NGHỆ KỸ THUẬT ĐIỀU
KHIỂN VÀ TỰ ĐỘNG HĨA
TRÌNH ĐỘ: CAO ĐẲNG
(Ban hành theo Quyết định số: 839/QĐ-CĐN, ngày 04 tháng 8 năm 2020
của Hiệu trưởng trường Cao đẳng nghề An Giang)

An Giang, Năm 2020


TUYÊN BỐ BẢN QUYỀN
Tài liệu này thuộc loại sách giáo trình nên các nguồn thơng tin có thể được
phép dùng nguyên bản hoặc trích dùng cho các mục đích về đào tạo và tham khảo.
Mọi mục đích khác mang tính lệch lạc hoặc sử dụng với mục đích kinh
doanh thiếu lành mạnh sẽ bị nghiêm cấm.
LỜI GIỚI THIỆU
Lập trình là một kỹ năng cơ bản và rất cần thiết đối với người làm việc trong
lĩnh vực Tự động hóa. Đặc biệt, nắm vững ngôn ngữ C sẽ làm nền tảng để người
học có thể lập trình cho đa số vi điều khiển mà hầu hết cơng cụ lập trình đều dựa
trên ngơn ngữ này.
Do đó, trong mơn học Lập trình căn bản chúng tôi dùng ngôn ngữ C để
hướng dẫn cho người học những kiến thức, kỹ năng căn bản nhằm làm nền tảng
cho các mơn học có liên quan đến lập trình sau này. Bên cạnh đó, chúng tơi cũng
giới thiệu sơ qua về phần mềm Matlab, là một chương trình dùng để mơ tả, tính
tốn các bài tốn kỹ thuật được sử dụng rất thông dụng hiện nay.
Trong quá trình biên soạn, mặc dù đã cố gắng nhưng sẽ khơng tránh khỏi


các thiếu sót. Rất mong sự góp ý các sai sót để giáo trình ngày được hồn thiện
hơn. Xin chân thành cảm ơn.
An Giang, ngày 10 tháng 02 năm 2020
Tác giả

Đỗ Tùng Sang

1


MỤC LỤC
ĐỀ MỤC

TRANG

LỜI GIỚI THIỆU ...................................................................................................... 1
Bài 1. Giới thiệu về cấu trúc dữ liệu và giải thuật .................................................... 7
I. Từ bài tốn đến chương trình.............................................................................. 7
II. Giải thuật ........................................................................................................... 7
1. Các đặt trưng của giải thuật ............................................................................... 7
2. Ngôn ngữ biểu diễn giải thuật ........................................................................... 8
3. Cấu trúc suy luận cơ bản của giải thuật ............................................................. 9
III. Kiểu dữ liệu .................................................................................................... 10
IV. Ngơn ngữ lập trình ......................................................................................... 10
V. Bài tập ............................................................................................................. 12
Bài 2. Giới thiệu về ngôn ngữ c và môi trường turbo C 3.0 ................................... 13
I. Tổng quan về ngơn ngữ lập trình C .................................................................. 13
II. Mơi trường lập trình TURBO C ...................................................................... 14
1. Gọi Turbo C .................................................................................................. 14
2. Soạn thảo chương trình mới.......................................................................... 15

3. Ghi chương trình đang soạn thảo vào đĩa ..................................................... 17
4. Thực hiện chương trình ................................................................................. 17
5. Mở một chương trình đã có trên đĩa ............................................................. 17
6. Thoát khỏi TURBO C và trở DOS (hay Windows) ..................................... 18
7. Sử dụng một số lệnh trên thanh menu .......................................................... 18
III. Thực hành....................................................................................................... 23
Bài 3. Các thành phần cơ bản của ngôn ngữ C ....................................................... 24
I. Bộ chữ viết trong C........................................................................................... 24
II. Các từ khóa trong C ......................................................................................... 24
III. Cặp dấu ghi chú thích..................................................................................... 25
IV. Các kiểu dữ liệu sơ cấp chuẩn trong C .......................................................... 25
1. Kiểu số nguyên ............................................................................................. 25
2. Kiểu số thực .................................................................................................. 27
2


V. Tên và hằng trong C ........................................................................................ 27
1. Tên (danh biểu - identifier) ........................................................................... 27
2. Hằng (Constant) ............................................................................................ 28
VI. Biến và biểu thức trong C .............................................................................. 30
1. Biến ............................................................................................................... 30
2. Biểu thức ....................................................................................................... 31
VII. Cấu trúc của một chương trình C ................................................................. 36
1. Tiền xử lý và biên dịch ................................................................................. 36
2. Cấu trúc một chương trình C ........................................................................ 37
3. Các tập tin thư viện thông dụng .................................................................... 38
4. Cú pháp khai báo các phần mềm bên trong một chương trình C ................. 39
VIII. Bài tập ......................................................................................................... 41
Bài 4. Các câu lệnh đơn trong C ............................................................................. 42
I. Câu lệnh ............................................................................................................ 42

II. Các lệnh đơn .................................................................................................... 42
III. Thực hành....................................................................................................... 50
Bài 5. Các lệnh có cấu trúc...................................................................................... 52
I. Khối lệnh........................................................................................................... 52
II. Cấu trúc rẽ nhánh ............................................................................................ 54
III. Cấu trúc lựa chọn ........................................................................................... 59
IV. Cấu trúc vòng lặp ........................................................................................... 63
V. Các câu lệnh đặc biệt....................................................................................... 68
VI. Viết chương trình ứng dụng các lệnh có cấu trúc .......................................... 69
Bài 6. Chương trình con .......................................................................................... 71
I. Khái niệm về hàm trong C ................................................................................ 71
II. Xây dựng một hàm .......................................................................................... 73
III. Truyền tham số cho hàm ................................................................................ 76
IV. Hàm đệ quy .................................................................................................... 79
V. Viết chương trình con ứng dụng ..................................................................... 80
Bài 7. Kiểu mảng ..................................................................................................... 82
I. Giới thiệu kiểu dữ liệu mảng trong C ............................................................... 82
3


II. Mảng một chiều ............................................................................................... 82
1. Khai báo ........................................................................................................ 82
2. Truy xuất từng phần tử của mảng ................................................................. 83
III. Mảng nhiều chiều ........................................................................................... 87
1. Khai báo ........................................................................................................ 87
2. Truy xuất từng phần tử của mảng hai chiều ................................................. 88
IV. Viết chương trình ứng dụng kiểu mảng ......................................................... 90
Bài 8. Chuổi ký tự ................................................................................................... 92
I. Khái niệm .......................................................................................................... 92
II. Khai báo........................................................................................................... 92

III. Các tao tác trên chuổi ký tự ........................................................................... 93
IV. Viết chương trình ứng dụng chuổi ký tự ....................................................... 98
Bài 9. Kiểu tập tin ................................................................................................. 100
I. Một số khái niệm về tập tin ............................................................................ 100
II. Các thao tác trên tập tin ................................................................................. 101
III. Truy cập tập tin văn bản............................................................................... 103
IV. Viết chương trình ứng dụng kiểu tập tin...................................................... 107
Bài 10. Matlab ....................................................................................................... 108
I. Giới thiệu về matlab ....................................................................................... 108
II. Tập lệnh cơ bản của matlab ........................................................................... 110
III. Ứng dụng...................................................................................................... 142
CÁC THUẬT NGỮ CHUYÊN MÔN .................................................................. 143
TÀI LIỆU THAM KHẢO ..................................................................................... 144

4


GIÁO TRÌNH MƠ ĐUN
Tên mơ đun: LẬP TRÌNH CĂN BẢN
Mã mơ đun: MĐ14
Vị trí, tính chất, ý nghĩa và vai trị của mơ đun:
- Vị trí: Lập trình căn bản là mơ đun thuộc nhóm mơn học cơ sở, được bố trí
giảng dạy song song với các mơn học như Linh kiện điện tử, Mạch số, …
- Tính chất: Lập trình căn bản là mơ đun bắt buộc trong chương trình đào
tạo nghề Cơng nghệ kỹ thuật điều khiển và tự động hóa.
- Ý nghĩa và vai trị của mơ đun: Lập trình căn bản là mơ đun nền tảng cho
sinh viên có thể học tốt các mơ đun liên quan đến lập trình như: Kỹ thuật vi điều
khiển cơ bản, Kỹ thuật vi điều khiển nâng cao, Đo lường và điều khiển bằng máy
tính.
Mục tiêu của mơ đun:

- Về kiến thức:
+ Sinh viên trình bày được các khái niệm về dữ liệu, kiểu dữ liệu, ngơn ngữ
lập trình, ngơn ngữ C, hàm, biến, ký tự, lệnh, cấu trúc …
+ Sinh viên trình bày và giải thích được cú pháp các lệnh, cấu trúc của một
chương trình;
+ Sinh viên trình bày và giải thích được cú pháp các lệnh, cấu trúc cơ bản
của matlab.
- Về kỹ năng:
+ Sinh viên có khả năng phân tích, suy luận để giải quyết các bài tốn, các
u cầu thực tế;
+ Sinh viên có khả năng phân tích, lựa chọn loại cấu trúc, lệnh tương ứng
phụ hợp tối ưu cho từng bài toán, từng yêu cầu thực tế với kết quả tối ưu nhất;
+ Sinh viên có khả năng viết các chương trình ứng dụng thực tế trên phần
mềm bằng ngơn ngữ lập trình C;
+ Sinh viên có khả năng viết các chương trình ứng dụng thực tế từ cơ bản
đến phức tạp bằng một số ngơn ngữ liên quan như C++;
- Sinh viên có khả năng giải các bài toán ứng dụng cơ bản bằng matlab.
- Về năng lực tự chủ và trách nhiệm:
+ Rèn luyện cho sinh viên thái độ nghiêm túc, tỉ mỉ, chính xác trong
thực hiện cơng việc;
+ Rèn luyện cho học sinh khẳ năng tư duy logic một cách khoa học;
việc;

+ Tạo thói quen kỹ lưỡng, cẩn thận, suy luận, bình tĩnh khi học tập và làm
5


+ Tạo ý thực trung thực trong công việc, không đối phó.

6



Bài 1
GIỚI THIỆU VỀ CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT
Giới thiệu:
Muốn thực hiện giải một bài toán trên máy tính thì phải biết giải như thế nào
và tính tốn trên những đối tượng nào. Do vậy, chúng ta phải nắm vững giải thuật
(cách giải) và dữ liệu là các u cầu có tính bắt buộc trước tiên.
Mục tiêu:
Sau khi học bài học này, người học có khả năng:
- Trình bày được các khái niệm về dữ liệu, bài toán, giải thuật, chương
trình, lập trình, ngơn ngữ lập trình;
- Phân biệt được các kiểu dữ liệu;
- Viết được giải thuật của các bài tốn bằng ngơn ngữ tự nhiên, bằng lưu
đồ giải thuật.
Nội dung chính:
I. Từ bài tốn đến chương trình
Giả sử chúng ta cần viết một chương trình để giải phương trình bậc 2 có
dạng ax 2 + bx + c = 0 . Công việc đầu tiên là chúng ta phải hiểu và biết cách giải bài
toán bằng lời giải thơng thường của người làm tốn. Để giải được bài tốn trên
bằng máy tính (lập trình cho máy tính giải) thì chúng ta cần phải thực hiện qua các
bước như:
-

Mơ tả các bước giải bài tốn.

-

Vẽ sơ đồ xử lý dựa trên các bước.


-

Dựa trên sơ đồ xử lý để viết chương trình xử lý bằng ngơn ngữ giả (ngơn
ngữ bình thường của chúng ta).

-

Chọn ngơn ngữ lập trình và chuyển chương trình từ ngơn ngữ giả sang
ngơn ngữ lập trình để tạo thành một chương trình hồn chỉnh.

-

Thực hiện chương trình: nhập vào các tham số, nhận kết quả.

Trong nhiều trường hợp, từ bài toán thực tế chúng ta phải xây dựng mơ hình
tốn rồi mới xác định được các bước để giải.
II. Giải thuật
Giải thuật là một hệ thống chặt chẽ và rõ ràng các quy tắc nhằm xác định
một dãy các thao tác trên những dữ liệu vào sao cho sau một số hữu hạn bước thực
hiện các thao tác đó ta thu được kết quả của bài tốn.
1. Các đặt trưng của giải thuật
Tính kết thúc: Giải thuật phải dừng sau một số hữu hạn bước.
7


Tính xác định: Các thao tác máy tính phải thực hiện được và các máy
tính khác nhau thực hiện cùng một bước của cùng một giải thuật phải
cho cùng một kết quả.
Tính phổ dụng: Giải thuật phải "vét' hết các trường hợp và áp dụng cho
một loạt bài toán cùng loại.

Tính hiệu quả: Một giải thuật được đánh giá là tốt nếu nó đạt hai tiêu
chuẩn sau:
- Thực hiện nhanh, tốn ít thời gian.
- Tiêu phí ít tài nguyên của máy, chẳng hạn tốn ít bộ nhớ.
2. Ngơn ngữ biểu diễn giải thuật
Có hai loại ngơn ngữ thường dùng: ngơn ngữ tự nhiên và ngơn ngữ sơ đồ
(cịn gọi là lưu đồ).
a) Ngôn ngữ tự nhiên
Ngôn ngữ tự nhiên là ngôn ngữ của chúng ta đang sử dụng, chúng ta có thể
sử dụng ngơn ngữ tự nhiên để mơ tả giải thuật giống như các ví dụ ở trên.
Ví dụ: Ta có giải thuật giải phương trình bậc nhất dạng ax + b = 0 như sau:
Bước 1: Nhận giá trị của các tham số a, b
Bước 2: Xét giá trị của a xem có bằng 0 hay khơng? Nếu a=0 thì làm
bước 3, nếu a khác khơng thì làm bước 4.
Bước 3: (a bằng 0) Nếu b bằng 0 thì ta kết luận phương trình vơ số
nghiệm, nếu b khác 0 thì ta kết luận phương trình vơ nghiệm.
Bước 4: ( a khác 0) Ta kết luận phương trình có nghiệm x=-b/a
b) Ngơn ngữ sơ đồ (Lưu đồ)
Ngơn ngữ sơ đồ (lưu đồ) là một ngôn ngữ đặc biệt dùng để mơ tả giải thuật
bằng các sơ đồ hình khối. Mỗi khối qui định một hành động.

Khối

Tác dụng (Ý nghĩa
của hành động)

Khối

Tác dụng (Ý nghĩa
của hành động)


Bắt đầu/ Kết thúc

Đường đi

Nhập / Xuất

Chương trình con

Thi hành

Khối nối
8


Chựa chọn

Lời chú thích

Chẳng hạn ta dùng lưu đồ để biểu diễn giải thuật giải phương trình bậc nhất
nêu trên như sau:

Bắt đầu

Nhập hai số a, b

a=0

Sai


Nghiệm x=-b/a

Đúng

b=0

Đúng

Sai
Phương trình
vơ nghiệm

Phương trình
vơ định

Kết thúc

3. Cấu trúc suy luận cơ bản của giải thuật
Giải thuật được thiết kế theo ba cấu trúc suy luận cơ bản sau đây:
a) Tuần tự (Sequential): Các công việc được thực hiện một cách tuần tự,
công việc này nối tiếp công việc kia.
b) Cấu trúc lựa chọn (Selection)
Lựa chọn một công việc để thực hiện căn cứ vào một điều kiện nào đó. Có
một số dạng như sau:
- Cấu trúc 1: Nếu < điều kiện> (đúng) thì thực hiện <công việc>
- Cấu trúc 2: Nếu < điều kiện> (đúng) thì thực hiện <cơng việc 1>, ngược lại
(điều kiện sai) thì thực hiện <cơng việc 2>
- Cấu trúc 3: Trường hợp < i> thực hiện <công việc i>
9



c) Cấu trúc lặp (Repeating)
Thực hiện lặp lại một công việc không hoặc nhiều lần căn cứ vào một điều
kiện nào đó. Có hai dạng như sau:
- Lặp xác định: là loại lặp mà khi viết chương trình, người lập trình đã xác
định được cơng việc sẽ lặp bao nhiêu lần.
- Lặp không xác định: là loại lặp mà khi viết chương trình người lập trình
chưa xác định được cơng việc sẽ lặp bao nhiêu lần. Số lần lặp sẽ được xác định khi
chương trình thực thi.
Trong một số trường hợp người ta cũng có thể dùng các cấu trúc này để diễn
tả một giải thuật.
III. Kiểu dữ liệu
Kiểu dữ liệu là một tập hợp các giá trị có cùng một tính chất và tập hợp các
phép tốn thao tác trên các giá trị đó. Người ta chia kiểu dữ liệu ra làm 2 loại: kiểu
dữ liệu sơ cấp và kiểu dữ liệu có cấu trúc.
1. Kiểu dữ liệu sơ cấp
Kiểu dữ liệu sơ cấp là kiểu dữ liệu mà giá trị của nó là đơn nhất.
Ví dụ: Trong ngơn ngữ lập trình C, kiểu int gọi là kiểu sơ cấp vì kiểu này
bao gồm các số nguyên từ -32768 đến 32767.
2. Kiểu dữ liệu có cấu trúc
Kiểu dữ liệu có cấu trúc là kiểu dữ liệu mà các giá trị của nó là sự kết hợp
của các giá trị khác.
Ví dụ: Kiểu chuỗi ký tự trong ngơn ngữ lập trình C là một kiểu dữ liệu có cấu
trúc.
Các ngơn ngữ lập trình đều có những kiểu dữ liệu do ngôn ngữ xây dựng
sẵn, mà ta gọi là các kiểu chuẩn. Chẳng hạn như kiểu int, char… trong C; integer,
array… trong Pascal. Ngồi ra, hầu hết các ngơn ngữ đều cung cấp cơ chế cho
phép người lập trình định nghĩa kiểu của riêng mình để phục vụ cho việc viết
chương trình.
IV. Ngơn ngữ lập trình

1. Khái niệm về ngơn ngữ lập trình
Ngơn ngữ lập trình là một ngơn ngữ dùng để viết chương trình cho máy tính.
Ta có thể chia ngơn ngữ lập trình thành các loại sau: ngơn ngữ máy, hợp ngữ và
ngôn ngữ cấp cao.
Ngôn ngữ máy (machine language): Là các chỉ thị dưới dạng nhị phân, can
thiệp trực tiếp vào trong các mạch điện tử. Chương trình được viết bằng ngơn ngữ
máy thì có thể được thực hiện ngay không cần qua bước trung gian nào. Tuy nhiên
chương trình viết bằng ngơn ngữ máy dễ sai sót, cồng kềnh và khó đọc, khó hiểu vì
tồn những con số 0 và 1.
10


Hợp ngữ (assembly language): Bao gồm tên các câu lệnh và quy tắc viết các
câu lệnh đó. Tên các câu lệnh bao gồm hai phần: phần mã lệnh (viết tựa tiếng Anh)
chỉ phép toán cần thực hiện và địa chỉ chứa tốn hạng của phép tốn đó.
Ví dụ:
INPUT a ; Nhập giá trị cho a từ bàn phím
LOAD a ; Đọc giá trị a vào thanh ghi tổng A
PRINT a; Hiển thị giá trị của a ra màn hình.
ADD b; Cộng giá trị của thanh ghi tổng A với giá trị b
Trong các lệnh trên thì INPUT, LOAD, PRINT, ADD là các mã lệnh còn a, b là
địa chỉ. Để máy thực hiện được một chương trình viết bằng hợp ngữ thì chương trình
đó phải được dịch sang ngơn ngữ máy. Cơng cụ thực hiện việc dịch đó được gọi là
Assembler.
Ngôn ngữ cấp cao (High level language): Ra đời và phát triển nhằm phản
ánh cách thức người lập trình nghĩ và làm. Rất gần với ngôn ngữ con người (Anh
ngữ) nhưng chính xác như ngơn ngữ tốn học. Cùng với sự phát triển của các thế
hệ máy tính, ngơn ngữ lập trình cấp cao cũng được phát triển rất đa dạng và phong
phú, việc lập trình cho máy tính vì thế mà cũng có nhiều khuynh hướng khác nhau:
lập trình cấu trúc, lập trình hướng đối tượng, lập trình logic, lập trình hàm... Một

chương trình viết bằng ngơn ngữ cấp cao được gọi là chương trình nguồn (source
programs). Để máy tính "hiểu" và thực hiện được các lệnh trong chương trình
nguồn thì phải có một chương trình dịch để dịch chuơng trình nguồn (viết bằng
ngơn ngữ cấp cao) thành dạng chương trình có khả năng thực thi.
2. Chương trình dịch
Như trên đã trình bày, muốn chuyển từ chương trình nguồn sang chương
trình đích phải có chương trình dịch. Thơng thường mỗi một ngơn ngữ cấp cao đều
có một chương trình dịch riêng nhưng chung quy lại thì có hai cách dịch: thông dịch
và biên dịch.
Thông dịch (interpreter): Là cách dịch từng lệnh một, dịch tới đâu thực hiện
tới đó. Chẳng hạn ngơn ngữ LISP sử dụng trình thơng dịch.
Biên dịch (compiler): Dịch tồn bộ chương trình nguồn thành chương trình
đích rồi sau đó mới thực hiện. Các ngơn ngữ sử dụng trình biên dịch như Pascal,
C...
Giữa thơng dịch và biên dịch có khác nhau ở chỗ: Do thơng dịch là vừa dịch
vừa thực thi chương trình cịn biên dịch là dịch xong tồn bộ chương trình rồi mới
thực thi nên chương trình viết bằng ngơn ngữ biên dịch thực hiện nhanh hơn
chương trình viết bằng ngơn ngữ thơng dịch.
Một số ngôn ngữ sử dụng kết hợp giữa thông dịch và biên dịch chẳng hạn
như Java. Chương trình nguồn của Java được biên dịch tạo thành một chương trình
đối tượng (một dạng mã trung gian) và khi thực hiện thì từng lệnh trong chương
trình đối tượng được thơng dịch thành mã máy.
11


V. Bài tập
Bằng ngôn ngữ tự nhiên và lưu đồ, hãy mơ tả giải thuật cho các bài tốn sau:
1. Giải phương trình bậc 2 dạng ax 2 + bx + c = 0 với a, b, c là các số sẽ nhập từ
bàn phím.
2.Tính tổng bình phương của n số nguyên có dạng sau: S= a12 + a 22 +  + a n2 ,

với n và ai (i=1..n) là các số sẽ nhập từ bàn phím.
3. Tính tổng có dạng sau: S= 1 − a12 + a 22 − a32 +  + (−1) n a n2 , với n và ai (i=1..n)
là các số sẽ nhập từ bàn phím.

12


Bài 2
GIỚI THIỆU VỀ NGÔN NGỮ C VÀ MÔI TRƯỜNG TURBO C 3.0
Giới thiệu:
Cũng như bất kỳ một ngôn ngữ lập trình nào khác, ngơn ngữ C phải được
lập trình trong một mơi trường lập trình được hỗ trợ. Trong bài này sẽ tìm hiều
tổng quan về ngơn ngữ C và cách thức thao tác với mơi trường lập trình C.
Mục tiêu:
Sau khi học bài học này, người học có khả năng:
- Trình bài được các khái niệm về ngơn ngữ lập trình C;
- Phân biệt được các lệnh cơ bản trên thanh menu của TURBO C;
- Sử dụng được TURBO C để thực hiện một chương trình có sẳn.
Nội dung chính:
I. Tổng quan về ngơn ngữ lập trình C
C là ngơn ngữ lập trình cấp cao, được sử dụng rất phổ biến để lập trình hệ
thống cùng với Assembler và phát triển các ứng dụng.
Vào những năm cuối thập kỷ 60 đầu thập kỷ 70 của thế kỷ XX, Dennish
Ritchie (làm việc tại phịng thí nghiệm Bell) đã phát triển ngơn ngữ lập trình C dựa
trên ngơn ngữ BCPL (do Martin Richards đưa ra vào năm 1967) và ngôn ngữ B
(do Ken Thompson phát triển từ ngôn ngữ BCPL vào năm 1970 khi viết hệ điều
hành UNIX đầu tiên trên máy PDP-7) và được cài đặt lần đầu tiên trên hệ điều
hành UNIX của máy DEC PDP-11.
Năm 1978, Dennish Ritchie và B.W Kernighan đã cho xuất bản quyển
“Ngôn ngữ lập trình C” và được phổ biến rộng rãi đến nay.

Lúc ban đầu, C được thiết kế nhằm lập trình trong mơi trường của hệ điều
hành Unix nhằm mục đích hỗ trợ cho các cơng việc lập trình phức tạp. Nhưng về
sau, với những nhu cầu phát triển ngày một tăng của cơng việc lập trình, C đã vượt
qua khn khổ của phịng thí nghiệm Bell và nhanh chóng hội nhập vào thế giới
lập trình để rồi các cơng ty lập trình sử dụng một cách rộng rãi. Sau đó, các công ty
sản xuất phần mềm lần lượt đưa ra các phiên bản hỗ trợ cho việc lập trình bằng
ngơn ngữ C và chuẩn ANSI C cũng được khai sinh từ đó.
Ngơn ngữ lập trình C là một ngơn ngữ lập trình hệ thống rất mạnh và rất
“mềm dẻo”, có một thư viện gồm rất nhiều các hàm (function) đã được tạo sẵn.
Người lập trình có thể tận dụng các hàm này để giải quyết các bài tốn mà khơng
cần phải tạo mới. Hơn thế nữa, ngôn ngữ C hỗ trợ rất nhiều phép toán nên phù hợp
cho việc giải quyết các bài tốn kỹ thuật có nhiều cơng thức phức tạp. Ngồi ra, C
cũng cho phép người lập trình tự định nghĩa thêm các kiểu dữ liệu trừu tượng
khác. Tuy nhiên, điều mà người mới vừa học lập trình C thường gặp “rắc rối” là
“hơi khó hiểu” do sự “mềm dẻo” của C. Dù vậy, C được phổ biến khá rộng rãi và
13


đã trở thành một cơng cụ lập trình khá mạnh, được sử dụng như là một ngơn ngữ
lập trình chủ yếu trong việc xây dựng những phần mềm hiện nay.
Ngôn ngữ C có những đặc điểm cơ bản sau:
Tính cơ đọng (compact): C chỉ có 32 từ khóa chuẩn và 40 toán tử chuẩn,
nhưng hầu hết đều được biểu diễn bằng những chuỗi ký tự ngắn gọn.
Tính cấu trúc (structured): C có một tập hợp những chỉ thị của lập trình như
cấu trúc lựa chọn, lặp… Từ đó các chương trình viết bằng C được tổ chức rõ ràng,
dễ hiểu.
Tính tương thích (compatible): C có bộ tiền xử lý và một thư viện chuẩn vô
cùng phong phú nên khi chuyển từ máy tính này sang máy tính khác các chương
trình viết bằng C vẫn hồn tồn tương thích.
Tính linh động (flexible): C là một ngôn ngữ rất uyển chuyển và cú pháp,

chấp nhận nhiều cách thể hiện, có thể thu gọn kích thước của các mã lệnh làm
chương trình chạy nhanh hơn.
Biên dịch (compile): C cho phép biên dịch nhiều tập tin chương trình riêng
rẽ thành các tập tin đối tượng (object) và liên kết (link) các đối tượng đó lại với
nhau thành một chương trình có thể thực thi được (executable) thống nhất.
II. Mơi trường lập trình TURBO C
Turbo C là mơi trường hỗ trợ lập trình C do hãng Borland cung cấp. Môi
trường này cung cấp các chức năng như: soạn thảo chương trình, dịch, thực thi
chương trình… Phiên bản được sử dụng ở đây là Turbo C 3.0.
1. Gọi Turbo C
Chạy Turbo C cũng giống như chạy các chương trình khác trong mơi trường
DOS hay Windows, màn hình sẽ xuất hiện menu của Turbo C có dạng như sau:

Dòng trên cùng gọi là thanh menu (menu bar). Mỗi mục trên thanh menu lại
có thể có nhiều mục con nằm trong một menu kéo xuống.
14


Dịng dưới cùng ghi chức năng của một số phím đặc biệt. Chẳng hạn khi gõ
phím F1 thì ta có được một hệ thống trợ giúp mà ta có thể tham khảo nhiều thơng
tin bổ ích.
Muốn vào thanh menu ngang ta gõ phím F10. Sau đó dùng các phím mũi tên
qua trái hoặc phải để di chuyển vùng sáng tới mục cần chọn rồi gõ phím Enter.
Trong menu kéo xuống ta lại dùng các phím mũi tên lên xuống để di chuyển vùng
sáng tới mục cần chọn rồi gõ Enter.
Ta cũng có thể chọn một mục trên thanh menu bằng cách giữ phím Alt và gõ
vào một ký tự đại diện của mục đó (ký tự có màu sắc khác với các ký tự khác).
Chẳng hạn để chọn mục File, ta gõ Alt-F (F là ký tự đại diện của File).
2. Soạn thảo chương trình mới
Muốn soạn thảo một chương trình mới ta chọn mục New trong menu File

(File -> New).
Trên màn hình sẽ xuất hiện một vùng trống để cho ta soạn thảo nội dung của
chương trình. Trong quá trình soạn thảo chương trình ta có thể sử dụng các phím
sau:
Các phím xem thơng tin trợ giúp:
- F1: Xem tồn bộ thơng tin trong phần trợ giúp.
- Ctrl-F1: Trợ giúp theo ngữ cảnh (tức là khi con trỏ đang ở trong một từ
nào đo, chẳng hạn int, mà bạn gõ phím Ctrl-F1 thì bạn sẽ có được các thơng tin về
kiểu dữ liệu int).
Các phím di chuyển con trỏ trong vùng soạn thảo chương trình:
Phím
Enter
Mũi tên đi lên
Mũi tên đi xuống
Mũi tên sang trái
Mũi tên sang phải
End
Home
PgUp
PgDn

Ý nghĩa
Đưa con trỏ xuống dòng
Đưa con trỏ lên hàng trước
Đưa con trỏ xuống hàng sau
Đưa con trỏ sang trái một ký tự
Đưa con trỏ sang phải một ký
tự
Đưa con trỏ đến cuối dòng
Đưa con trỏ đến đầu dòng

Đưa con trỏ lên trang trước
Đưa con trỏ xuống trang sau
Đưa con trỏ sang từ bên trái
Đưa con trỏ sang từ bên phải

Phím tắt ( tổ hợp phím)
Ctrl-E
Ctrl-X
Ctrl-S
Ctrl-D

Ctrl-R
Ctrl-C
Ctrl-A
Ctrl-F

Các phím xố ký tự/ dịng:
Phím
Ý nghĩa
Phím tắt
Delete
Xố ký tự tại ví trí con trỏ
Ctrl-G
BackSpace Di chuyển sang trái đồng thời xoá ký tự đứng trước con Ctrl-H
15


trỏ
Xố một dịng chứa con trỏ
Xóa từ vị trí con trỏ đến cuối dịng

Xóa ký tự bên phải con trỏ

Ctrl-Y
Ctrl-Q-Y
Ctrl-T

Các phím chèn ký tự/ dịng:
Thay đổi viết xen hay viết chồng
Xen một dịng trống vào trước vị trí con
Ctrl-N
trỏ
Sử dụng khối:
Khối là một đoạn văn bản chương trình hình chữ nhật được xác định bởi đầu
khối là góc trên bên trái và cuối khối là góc dưới bên phải của hình chữ nhật. Khi
một khối đã được xác định (trên màn hình khối có màu sắc khác chỗ bình thường)
thì ta có thể chép khối, di chuyển khối, xố khối... Sử dụng khối cho phép chúng ta
soạn thảo chương trình một cách nhanh chóng. Sau đây là các thao tác trên khối:
Insert

Phím tắt Ý nghĩa
Ctrl-K-B Đánh dấu đầu khối
Ctrl-K-K Đánh dấu cuối khối
Ctrl-K-C Chép khối vào sau vị trí con trỏ
Ctrl-K-V Chuyển khối tới sau vị trí con trỏ
Ctrl-K-Y Xố khối
Ctrl-K-W Ghi khối vào đĩa như một tập tin
Đọc khối (tập tin) từ đĩa vào sau vị trí con
Ctrl-K-R
trỏ
Ctrl-K-H Tắt/mở khối

Ctrl-K-T
Đánh dấu từ chứa chon trỏ
Ctrl-K-P
In một khối
Các phím, phím tắt thực hiện các thao tác khác:
Phím Ý nghĩa
F10

Kích hoạt menu chính

Phím tắt
Ctrl-K-D,
Ctrl-K-Q
Ctrl-K-S

Lưu chương trình đang soạn vào đĩa
Tạo tập tin mới
Di chuyển con trỏ một khoảng đồng thời đẩy dịng văn Ctrl-I
Tab
bản
ESC Hủy bỏ thao tác lệnh
Ctrl-U
Đóng tập tin hiện tại
Alt-F3
Hiện hộp thoại tìm kiếm
Ctrl-Q-F
Hiện hộp thoại tìm kiếm và thay thế
Ctrl-Q-A
Tìm kiếm tiếp tục
Ctrl-L

F2
F3

16


Ví dụ: Bạn hãy gõ đoạn chương trình sau:
#include <stdio.h>
#include <conio.h>
int main ()
{
char ten[50];
printf(“Xin cho biet ten cua ban !”);
scanf(“%s”,ten);
printf(“Xin chao ban %s”,ten);
getch();
return 0;
}
3. Ghi chương trình đang soạn thảo vào đĩa
Sử dụng File/Save hoặc gõ phím F2. Có hai trường hợp xảy ra:
- Nếu chương trình chưa được ghi lần nào thì một hội thoại sẽ xuất hiện cho
phép bạn xác định tên tập tin (File Name). Tên tập tin phải tuân thủ quy cách đặt
tên của DOS và khơng cần có phần mở rộng (sẽ tự động có phần mở rộng là .C
hoặc .CPP, sẽ nói thêm trong phần Option). Sau đó gõ phím Enter.
- Nếu chương trình đã được ghi một lần rồi thì nó sẽ ghi những thay đổi bổ
sung lên tập tin chương trình cũ.
Quy tắc đặt tên tập tin của DOS: Tên của tập tin gồm 2 phần: Phần tên và
phần mở rộng.
- Phần tên phải bắt đầu là một ký tự từ a..z (khơng phân biệt hoa thường),
theo sau có thể là các ký tự từ a..z, các ký số từ 0..9 hay dấu gạch dưới (_), phần

này dài tối đa là 8 ký tự.
- Phần mở rộng dài tối đa 3 ký tự.
Ví dụ: Ghi chương trình vừa soạn thảo trên lên đĩa với tên là CHAO.C.
4. Thực hiện chương trình
Để thực hiện chương trình hãy dùng Ctrl-F9 (giữ phím Ctrl và gõ phím
F9).
Ví dụ: Thực hiện chương trình vừa soạn thảo xong và quan sát trên màn
hình để thấy kết quả của việc thực thi chương trình sau đó gõ phím bất kỳ để trở lại
với Turbo.
5. Mở một chương trình đã có trên đĩa
Với một chương trình đã có trên đĩa, ta có thể mở nó ra để thực hiện hoặc
sửa chữa bổ sung. Để mở một chương trình ta dùng File/Open hoặc gõ phím F3.
Sau đó gõ tên tập tin vào hộp File Name hoặc lựa chọn tập tin trong danh sách các
tập tin rồi gõ Enter.
17


Ví dụ: Mở tập tin CHAO.C sau đó bổ sung để có chương trình mới như sau:
#include <stdio.h>
#include <conio.h>
int main ()
{
char ten[50];
printf(“Xin cho biet ten cua ban !”);
scanf(“%s”,ten);
printf(“Xin chao ban %s\n “,ten);
printf(“Chao mung ban den voi Ngon ngu lap trinh C”);
getch();
return 0;
}

Ghi lại chương trình này (F2) và cho thực hiện (Ctrl-F9). Hãy so sánh xem
có gì khác trước?
6. Thốt khỏi TURBO C và trở DOS (hay Windows)
Dùng File/Exit hoặc Alt-X.
7. Sử dụng một số lệnh trên thanh menu
a) Các lệnh trên menu File (Alt -F)
- Lệnh New: Dùng để tạo mới một chương trình.
Tên ngầm định của chương trình là NONAMEXX.C
(XX là 2 số từ 00 đến 99).
- Lệnh Open: Dùng để mở một chương trình đã có
sẵn trên đĩa để sửa chữa, bổ sung hoặc để thực hiện
chương trình đó. Khi tập tin được mở thì văn bản chương
trình được trình bày trong vùng soạn thảo; hộp thoại
Open như sau:

Nơi nhập
tên file
Thư mực
hiện hành

Trong trường hợp ta nhập vào tên tập tin chưa tồn tại thì chương trình được
tạo mới và sau này khi ta lưu trữ, chương trình được lưu với tên đó.
- Lệnh Save: Dùng để lưu chương trình đang soạn thảo vào đĩa.
18


- Lệnh Save as...: Dùng để lưu chương trình đang soạn thảo với tên khác,
hộp thoại lưu tập tin đang soạn với tên khác như sau:

Tên hiện tại

Tên mới ( kể cả
tên thư mục)

(tên cũ)

- Lệnh : Save All: Trong lúc làm việc với Turbo C, ta có thể mở một lúc
nhiều chương trình để sửa chữa, bổ sung. Lệnh Save All dùng để lưu lại mọi thay
đổi trên tất cả các chương trình đang mở ấy.
- Lệnh Change Dir ...: Dùng để đổi thư mục hiện hành,

Thư mục hiện
hành
Chọn thư
mục khác

- Lệnh Print: Dùng để in chương trình đang soạn thảo ra máy in.
- Lệnh Printer Setup...: Dùng để thiết đặt một số thông số cho máy in.
- Lệnh DOS Shell: Dùng để thoát tạm thời về DOS, để trở lại Turbo C ta
đánh Exit rồi nhấn Enter.
- Lệnh Exit : Dùng để thoát khỏi Turbo C.
b) Các lệnh trên menu Edit (Alt -E)
- Lệnh Undo: Dùng để hủy bỏ thao tác soạn thảo
cuối cùng trên cửa số soạn thảo.
- Lệnh Redo: Dùng để phục hồi lại thao tác đã bị
Undo cuối cùng.
- Lệnh Cut: Dùng để xóa một phần văn bản đã
được đánh dấu khối, phần dữ liệu bị xóa sẽ được lưu vào
19



một vùng nhớ đặc biệt gọi là Clipboard.
- Lệnh Copy: Dùng để chép phần chương trình đã được đánh dấu khối vào
Clipboard.
- Lệnh Paste: Dùng để dán phần chương trình đang được lưu trong
Clipboard vào của số đang soạn thảo, bắt đầu tại vị trí của con trỏ.
- Lệnh Clear: Dùng để xóa phần dữ liệu đã được đánh dấu khối, dữ liệu bị
xóa khơng được lưu vào Clipboard.
- Lệnh Show clipboard : Dùng để hiển thị phần chương trình đang được lưu
trong Clipboard trong một cửa sổ mới.
c) Các lệnh trên menu Search (Alt-S)
- Lệnh Find...: Dùng để tìm kiếm một
cụm từ trong văn bản chương trình. Nếu tìm
thấy thì con trỏ sẽ di chuyển đến đoạn văn bản
trùng với cụm từ cần tìm; hộp thoại Find như
sau:

Nhập cụm từ cần
tìm vào đây

Ý nghĩa các lựa chọn trong hộp thoại trên như sau:
▪ Case sentitive: Phân biệt chữ IN HOA với chữ in thường trong khi so sánh
cụm từ cần tìm với văn bản chương trình.
▪ Whole word only: Một đoạn văn bản chương trình trùng với tồn bộ cụm từ
cần tìm thì mới được xem là tìm thấy.
▪ Regular expression: Tìm theo biểu thức.
▪ Global: Tìm trên tất cả tập tin đang mở.
▪ Forward: Tìm đến cuối tập tin.
▪ Selected text: Chỉ tìm trong khối văn bản đã được đánh dấu.
▪ Backward: Tìm đến đầu tập tin.
▪ From cursor : Bắt đầu từ vị trí con nháy.

▪ Entire scope: Bắt đầu tại vị trí đầu tiên của khối hoặc tập tin.
- Lệnh Replace...: Dùng để tìm kiếm một đoạn văn bản nào đó, và tự động
thay bằng một đoạn văn bản khác, hộp thoại replace như sau:

20


Tìm các cụm từ
Scanf và thay thế
bằng scanf

- Lệnh Search again: Dùng để thực hiện lại việc tìm kiếm.
- Các lệnh cịn lại trên menu Search, các bạn sẽ tìm hiểu thêm khi thực hành
trực tiếp trên máy tính.
d) Các lệnh trên menu Run (Alt-R)
- Lệnh Run: Dùng để thực thi hay
“chạy” một chương trình.
- Lệnh Step over: Dùng để “chạy”
chương trình từng bước (từng dịng lệnh).
- Lệnh Trace into: Dùng để chạy chương trình từng bước. Khác với lệnh
Step over ở chỗ: Lệnh Step over không cho chúng ta xem từng bước “chạy” trong
chương trình con, cịn lệnh Trace into cho chúng ta xem từng bước trong chương
trình con.
- Các lệnh cịn lại, các bạn sẽ tìm hiểu thêm khi thực hành trên máy.
e) Các lệnh trên menu Compile (Alt-C)
- Lệnh Complie: Biên dịch một chương
trình.
- Lệnh Make , Build, … : Các lệnh này
bạn sẽ tìm hiểu thêm khi thực hành trực tiếp trên
máy tính.

- Lệnh Information: Dùng để hiện thị các thơng tin về chương trình, mode,
mơi trường .
f) Các lệnh trên menu Debug (Alt-D)
Trên menu Debug bao gồm một số
lệnh giúp người lập trình “gỡ rối” chương
trình . Người lập trình sử dụng chức năng “gỡ
rối” khi gặp một số “lỗi” về thuật toán, sử
dụng biến nhớ…
- Lệnh Breakpoints: Dùng để đặt “điểm dừng” trong chương trình. Khi
chương trình thực thi đến “điểm dừng thì nó sẽ dừng lại” .
- Lệnh Watch: Dùng để mở một cửa sổ hiển thị kết quả trung gian của một
biến nhớ nào đó khi chạy chương trình từng bước.
21


- Lệnh Evaluate/modify: Bạn sẽ tìm hiểu khi thực hành trực tiếp trên máy.
g) Các lệnh trên menu Project (Alt-P)
Trên menu Project bao gồm các lệnh liên quan
đến dự án như : đóng, mở, thêm , xóa các mục,…
h) Các lệnh trên menu Option (Alt-O)
Trên menu Option bao gồm các lệnh giúp người
lập trình thiết đặt một số tự chọn khi chạy chương
trình. Thơng thường, người lập trình khơng cần
phải thiết đặt lại các tự chọn.
- Lệnh Compiler...: Dùng để thiết đặt lại
một số thông số khi biên dịch chương trình như
hình sau
Phần trình bày dưới đây thuộc về 3 mục:
Directories, Enviroment và Save; các phần khác
sinh viên tự tìm hiểu.

- Lệnh Directories...: Dùng để đặt lại đường dẫn tìm đến các tập tin cần thiết
khi biên dịch chương trình như hình sau:

▪ Include directory: Thư mục chứa các tập tin mà chúng ta muốn đưa vào
chương trình (các tập tin .h trong dòng #include).
▪ Library directory: Thư mục chứa các tập tin thư viện ( các tập tin .Lib)
▪ Output directory: Thư mục chứa các tập tin “đối tượng “ (có phần mở rộng là
.OBJ), tập tin thực thi (.exe) khi biên dịch chương trình.
▪ Source directory: Thư mục chứa các tập tin “nguồn” (có phần mở rộng là
.obj, .lib).
- Lệnh Environment: dùng để thiết lập môi trường làm việc như:
▪ Reference…: Các tham chiếu.
▪ Editor: Môi trường soạn thảo gồm: tạo tập tin dự phịng khi có sự chỉnh sửa
(create backup file), chế độ viết đè (insert mode), tự động thụt đầu dịng (indent),
đổi màu từ khóa (Syntax highlighting)… Đặc biệt, trong phần này là thiết lập phần
mở rộng mặc định (Default Extension) của tập tin chương trình là C hay CPP (C
Plus Plus: C++).
22


▪ Mouse...: Thiết lập hoạt động của chuột.
▪ Colors…: Thiết lập màu.
i) Các lệnh trên menu Window (Alt- W)
Trên menu Window bao gồm các lệnh thao tác đến cửa sổ như:
- Lệnh Cascade: Dùng để sắp xếp các cửa sổ.
- Lệnh Close all: Dùng để đóng tất cả các cửa sổ.
- Lệnh Zoom: Dùng để phóng to/ thu nhỏ cửa sổ.
- Các lệnh Tile, Refresh display, Size/move, Next, Previous, Close, List...:
Các bạn sẽ tìm hiểu thêm khi thực hành trực tiếp trên máy tính.
j) Các lệnh trên menu Help (Alt- H)

Trên menu Help bao gồm các lệnh gọi trợ giúp khi người lập trình cần giúp
đỡ một số vấn đề nào đó như: Cú pháp câu lệnh, cách sử dụng các hàm có sẵn…
- Lệnh Contents: Hiện thị tồn bộ nội dung của phần help.
- Lệnh Index: Hiển thị bảng tìm kiếm theo chỉ mục.
- Các lệnh cịn lại, bạn sẽ tìm hiểu khi thực hành trên máy.
III. Thực hành
Hãy tạo một chương trình trong phần 5 và thực thi nó trong phần mềm
TURBO 3.0.

23


Bài 3
CÁC THÀNH PHẦN CƠ BẢN CỦA NGÔN NGỮ C
Giới thiệu:
Để có thể viết một chương trình bằng ngơn ngữ C đáp ứng yêu cầu chúng ta
cần phải biết nó bao gồm những phần nào, các quy ước và ký hiệu phải tuân thủ.
Bài này sẽ đề cập đến cấu trúc chung của một chương trình ngơn ngữ C nói chung,
các ký hiệu, quy ước được quy định.
Mục tiêu:
Sau khi học bài học này, người học có khả năng:
- Phân biệt được các bộ chữ viết, các từ khóa, danh biểu, các kiểu dữ
liệu, biến và các biểu thức trong C;
- Trình bày được các thành phần cấu trúc của một chương trình C;
- Viết được cấu trúc hồn chỉnh cho một số chương trình cơ bản bằng
ngơn ngữ C.
Nội dung chính:
I. Bộ chữ viết trong C
Bộ chữ viết trong ngôn ngữ C bao gồm những ký tự, ký hiệu sau: (phân biệt
chữ in hoa và in thường):

- 26 chữ cái latinh lớn A,B,C...Z
- 26 chữ cái latinh nhỏ a,b,c ...z.
- 10 chữ số thập phân 0,1,2...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.
II. Các từ khóa trong C
Từ khóa là các từ dành riêng (reserved words) của C mà người lập trình có
thể sử dụng nó trong chương trình tùy theo ý nghĩa của từng từ. Ta khơng được
dùng từ khóa để đặt cho các tên của riêng mình. Các từ khóa của Turbo C 3.0 bao
gồm:
asm

auto

break

case

cdecl

char

class

const

continue

_cs


default

delete

do

double

_ds

else

enum

_es

extern

_export

far

_fastcall

float

for

friend


goto

huge

if

inline

int
24


×