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

Giáo trình Nhập môn Lập trình

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 (7.86 MB, 233 trang )

TRƯỜNG ĐẠI HỌC THÚY LỢI
KHOA CỊNG NGHỆ THƠNG TIN
Bộ MƠN TIN HỌC VÀ KỸ THUẬT TÍNH TỐN
TS. TẠ QUANG CHlếu, TS. NGUYỀN QUỲNH DIỆP (Đông chú biên),
TS. BÙI THỊ THANH XUẢN, TS. NGƠ TRƯỜNG GIANG

GIÁO TRÌNH

NHẬP MƠN LẬP TRÌNH

NHÀ XT BÀN BẢCH KHOA HÀ NỘI


TRƯỜNG ĐẠI HỌC THỦY LỢI

KHOA CỊNG NGHỆ THƠNG TIN
Bộ MƠN TIN HỌC VÀ KỶ THUẬT TÍNH TỐN
TS. Tạ Quang Chiểu. TS. Nguyễn Quỳnh Diệp (Đồng chú biên),
TS. Bùi Thị Thanh Xn. TS. Ngơ Trng Giang

GIÁO TRÌNH

NHẬP MỒN LẬP TRÌNH

NHÀ XL ÃI BẤN BÁCH KHOA HÀ NỘI


Biên mục trên xuất bân phân» của Thư viện Quốc gỉa Việt Nam

Giảo trinh Nhập niỏn Lập trinh / Tạ Quang Chieu, Nguyen Quỳnh Diệp (ch.b.),
Bùi Thị Thanh Xuân. Ngỏ Truờng Giang. H.: Bách khoa Hà Nội, 2023. - 232 tr.: hình



vỗ, báng biểu ; 27 en»
ĐTTS ghi: Tnrịng Đại học Thuỷ lợi. Khoa Cơng nghệ Thõng tin. Bộ mịn Tin học
và Kỳ thuật tính tốn

I. Tin học 2. Lập trinh 3. Giáo trình
(105.10711 - dc23

BKH0144p-CIP
2


LỜI NĨI ĐẨL’
"Giáo trình Nhập mơn lộp trình" là tài liệu học tập dành cho sinh viên nhóm ngành
CNTT và một số ngành kỳ thuật khác cua Trường Dại học Thủy lọi. Mục đích cùa giáo trinh
là cung cấp cho sinh viên kiến thức vẽ máy tinh và cách máy tính làm việc; làm quen với lập
trinh CƯ bán được minh họa bàng ngơn ngữ lập trình C; giài qut và cài đặt thuật toán giãi
một sỏ bái toán đơn gián trong Toán học. Khoa học vả Kỳ thuật. VỚI mong muôn cùa nhỏm
tác gia là giáo trinh sẽ cung câp cho sinh vicn những bài học lý thuyết, giúp các em hình
thánh tư duy lập trinh, kỳ nàng thực hành vã giãi được các bãi toán bang mây tinh điện tứ.
từ đỏ sê lã cơ sớ đe học lập trinh nâng cao vã học nhùng ngôn ngừ lợp trinh khác như C++.
Python, v.v.. Giáo trình này được trinh bày bao gồm phàn lý thuyết, chi tiết các vi dụ và bài
tập tự làm. Moi phần là mõ ta cách áp dụng kiến thức lý thuyết trong mồi tinh huống bãi
toán cụ thề, vi vậy các em hây đọc kỹ và gõ lại những bài tập này, sau đó chạy thư dê hiếu
một cách chác chắn trước khi làm các bài tập. Nội dung cùa giáo trình bao gồm 7 chương
như sau:

Chương 1: Mãy tinh vả chương trinh máy tinh.
Chương 2: Tơng quan ve ngơn ngữ lộp trình c.
Chương 3: Câu lệnh, lệnh lựa chọn vã lệnh lập.

Chương 4: Các kiêu dừ liệu cảu trúc.
Chương 5: Hàm và truyền tham số.
Chương 6: Kiêu dừ liệu câu trúc struct.
Chương 7: Thao tác với tệp (File).
Chúng lói xin chân thành cám ơn các đóng nghiệp ở Khoa Cơng nghệ thịng tin.
Tnrờng Đại học Thúy lợi đã dóng góp nhũng ý kicn quỷ bâu cho nhóm tác gia hồn thành
giáo trình.

Trong q trinh biên soạn khơng thê tránh khoi những thiêu sót, nhóm tác giá nít mong
nhận được sự đóng góp ý kiên cùa các đổng nghiệp, các em sinh viên vả các độc giá đê chât
lượng giáo trình ngày càng hỗn thiện.

Nhóm tác giã

3


MỤC LỤC
Lịi nói đâu....................................................................................................................................3

Danh mục hỉnh vỉ....................................................................................................................... 8
Danh mục bang hiếu............................................................................................................9
Danh mục chữ viết tốt.............................................................................................................. 10

Chirong 1. MẤY TỈNH VÀ CHƯƠNG TRÌNH MÁY TÍNH------------------------------- 11

1.1. Máy tính....................................................................................................................... 11
I. I. I. Khái niệm mây tính điộn từ............................................................................... 11
1.1.2. Lịch sử phát triền cùa máy tinh điện (ũ............................................................ 11
1.1.3. Phân loại máy tinh điện tứ................................................................................... 12

1.1.4. Các thành phân cơ bân của máy vi tinh............................................................. 14

1.2. Cốc hệ đếm. đơn vị đo thông tin.............................................................................. 19
1.2.1. IIỘ đếm................................................................................................................... 19
1.2.2. Thông tin vã đơn vị đo thơng tin....................................................................... 22
1.2.3. Mã hóa thơng tin trong máy tính....................................................................... 23

1.3. Giãi bãi tốn bằng máy tính..................................................................................... 24
1.3.1. Khái niệm VC bài toán.......................................................................................... 24

1.3.2. Cảc bước giái hải toản bảng máy tính............................................................... 24

1.4. Thuật tồn.................................................................................................................... 25
1.4.1. Khái niệm............................................................................................................. 25

1.4.2. Những đặc trưng co bán cùa thuật toán.............................................................26
1.4.3. Bicu diễn thuật tốn bằng sơ đị khối................................................................ 26

1.5. Một số ví dụ.................................................................................................................. 30
1.5.1. Bicu diễn thuật tốn bàng lời.............................................................................. 30

1.5.2. Bicu diễn thuật toán bàng sơ đồ khối................................................................ 34
Bài tập chương 1................................................................................................................. 40

Chương 2. TONG QUAN VÈ NGÔN NGỦ LẬP TRÌNH c........................................... 41
2.1.

Lâm quen với lặp trình.......................................................................................... 41

2.1.1. I-ập trinh máy tính............................................................................................... 41

2.1.2. Lịch sứ hĩnh thảnh vã phát triển........................................................................ 42

4


2.1.3. Khung chương trình............................................................................................42
2.1.4. Mơi trưởng lập trinh...........................................................................................44

2.2. Dfl liệu và biểu thức................................................................................................... 51
2.2.1. Các tinh chất đặc trưng của ngơn ngừ lập trình c........................................... 51
2.2.2. Từ vựng................................................................................................................ 52
2.2.3. Các kiều dữ liệu. hằng. biến, màng................................................................... 53
2.2.4. Biếu thức............................................................................................................... 57

2.2.5. Các phcp toán...................................................................................................... 58

2.3. Nhập - xuất dừ liệu.................................................................................................... 64
2.3.1. Hàm piintio..........................................................................................................64
2.3.2. HàmscaníO..........................................................................................................67
2.2.3. Một số hàm nhập - xuất ký tự và xâu................................................................ 68

2.4. Một số vi dv.................................................................................................................. 70
Bãi tập chương 2................................................................................................................. 73

'hương 3. CÂU LỆNH. LỆNH LỤ A CHỌN VÀ LỆNH LẠP....................................... 75
3.1. Câu lệnh đơn................................................................................................................ 75
3.2. Khối lệnh (câu lệnh ghép)........................................

75


3.3. Câu lệnh if..................................................................................................................... 76
3.4. Câu lệnh .switch............................................................................................................ 80

3.5. Câu lệnh lặp for...........................................................................................................81
3.6. Lệnh break và lệnh continue.................................................................................... 83
3.6.1. Lệnh break............................................................................................................ 83
3.6.2. Lệnh continue...................................................................................................... 84
3.6.3. Ví dụ..................................................................................................................... 86
3.7. Câu lệnh lặp while................................................................................................8S

3.8. Câu lệnh lặp do...while............................................................................................... 90
3.9. Một số ví dụ.................................................................................................................. 93
Bài tập chương 3............................................................................................................... 112

Thương 4. CÁC KIEL Dĩr LIỆU CẤU TRÚC................................................................. 114

4.1.

Màng..........................................................................................................................114

4.1.1. Màng một chiều.................................................................................................. 114
4.1.2. Màng hai chiểu................................................................................................... 118

5


4.2. Xâu ký tự.....................................................................................................................124

4.2.1. Khái niệm xâu ký tự.......................................................................................... 124
4.2.2. Một số hãm xứ lý xàu ký tự.............................................................................. 125

4.2.3. Một số thao tác trên xâu kỷ tự.......................................................................... 128
4.3. Con tró và cắp phát động bộ nhớ..........................................................................129

4.3.1. Con trò................................................................................................................. 129
4.3.2. Liên hệ giừa con trỏ và máng........................................................................... 130
4.4. Một số vi dụ................................................................................................................ 140
4.4.1. Máng một chiều.................................................................................................. 140

4.4.2. Máng hai chicu................................................................................................... 145
4.4.3. Xâu ký tự............................................................................................................ 151
4.4.4. Con tró và cap phát động................................................................................... 155
Bài tập chưtmg4................................................................................................................159

Chương 5. HÀM VÀ TRUYỀN THAM SĨ.......................................................................164
5.1. Ví dụ về một chưong trình có hai hàm................................................................. 164
5.2. Tổng qt về định nghía hàm................................................................................ 165
5.3. Tham số trong lịi gọi hàm.......................................................................................167

5.3.1. Một số khải niệm...............................................................................................167
5.3.2. Truyền tham số.................................................................................................. 168
5.3.3. Tham số hình thức cùa hàm là con trị............................................................. 168
5.3.4. Biên tồn cục. biên cục bộ.................................................................................171
5.4. Con trị tói hàm ..................................................................................................172
5.4.1. Cách khai báo con trò hâm vã máng con trò hãm.......................................... 172

5.4.2. Tác dụng cùa con trò hàm.................................................................................. 173
5.4.3. Đối là con trị hàm............................................................................................. 173
5.5. Một số ví dụ................................................................................................................176
Bài tập chương 5...............................................................................................................190


Chương 6. KIÉU DỮ' LIỆU CÁU TRÚC STRUCT......................................................... 192
6.1.

Khai báo cấu trúc.................................................................

192

6.1.1. Khai báo kiều dữ liệu cấu trúc.......................................................................... 192
6.1.2. Khai báo biến cấu trúc....................................................................................... 193

6


6.2. Sử dụng typedef với cấu trúc................................................................................. 194
6.3. Thao tác trên biến cấu trúc..................................................................................... 195
6.4. Một số ví dụ................................................................................................................ 19X
Bài tập chưoĩig 6....................................................................

207

Chương 7. THAO TÁC VỚI TỆP (FILE)......................................................................... 208

7.1. Khái niệm........................................................................................................... .20X

7.2. Các hàm thao tác với tệp........................................................................................ 208
7.2.1. Khai báo flic...................................................................................................... 208

7.2.2. Mỡ file................................................................................................................ 208

7.23. Đóng file............................................................................................................. 210

7.2.4. Dọc file............................................................................................................... 210
7.2.5. Ghi file................................................................................................................ 211
7.2.6. Di chuyền con trô chi vị đến vị trimong muốn...............................................212

7.2.7. Chuyên con trỏ chi vị cùa tệp về đâu tệp........................................................ 213
7.2.8. Truy nhập vị tri đọc/ghi trên file...................................................................... 213
7.2.9. Lảm sạch bộ đệm đọc/ghi file...........................................................................213

7.2.10. Kiểm tra lỏi...................................................................................................... 214
7.2.11. Kiếm tra cuối tệp.............................................................................................214
7.3. Một số ví dụ................................................................................................................ 214
Bài tập chương 7............................................................................................................... 230

TÀI LIẸU THAM KHAO..................................................................................................... 231

7


DANH MỤC HÌNH VÈ
Hình 1.1. Máy vi tính................................................................................................................... 14

I lình 1.2. Sơ đồ cấu trúc máy tính............................................................................................. 16
I lình 1.3. Sơ đồ mơ tà cơ bán CPU........................................................................................... 16
I lình 1.4. Các loại bộ nhớ ngoải................................................................................................ 18
Hình 1.5. Thiết bị vào/ra.............................................................................................................. 18
Hình 1.6. Sơ đồ số hỏa dừ liệu....................................................................................................23
Hình 1.7. Sơ đồ giãi bải tốn bảng máy tinh............................................................................. 24
Hình 1.8. Cấu trúc tuần tự........................................................................................................... 27
Hình 1.9. Cấu trúc phân nhánlyđiều kiện.................................................................................. 28
Hình 1.10. Cấu trúc tuyền/rẻ nhiều nhánh.................................................................................28

Hình 1.11. Cấu trúc chu trình/lặp............................................................................................... 29
Hình 1.12. Cấu trúc lặp với diet! kiộn trước.............................................................................. 29
Hình 1.13. Cấu trúc lặp với diet! kiộn sau................................................................................. 30
Hình 3.1. Dọng I cùa câu lệnh if............................................................................................... 77
Hình 3.2. Dợng 2 cùa câu lệnh if................................................................................................ 77
Hình 3.3. Câu lệnh switch ... ease............................................................................................80
Hình 3.4. Hoạt dộng cùa câu lệnh for.......................................................................................82
Hình 3.5. Hoạt động cùa câu lệnh while.................................................................................. 89
Hình 3.6. Hoạt dộng cùa câu lệnh do...while......................................................................... 91

8


DANH MỤC BÁNG B1ÉU
Báng 1.1. Hệ đếm cơ số 2, 8. 10, 16..........................................................................................20

Bàng 1.2. Các ký hiệu co bàn đẻ xảy dựng sơ đồ khổi............................................................27
Bàng 2.1. Cấu trúc một chuông trinh c.................................................................................... 43
Báng 2.2. Bàng các kiêu dù liệu co sơ trong ngơn ngừ c....................................................... 53
Báng 2.3. Các phép tốn số học................................................................................................. 58
Báng 2.4. Các phép toán quan hệ............................................................................................... 58
Báng 2.5. Các phép toán logic................................................................................................... 59

Báng 2.6. Báng giá trị cua các phép toán logic........................................................................ 59
Báng 2.7. Bàng viet thu gọn cua ngơn ngũ c...........................................................................60
Báng 2.8. Bang tốn từ tăng, giám giá tri toán hạng di I ....................................................... 60
Báng 2.9. Ví dụ tốn (ứ tảng, giâm giá trị tốn hạng đi 1....................................................... 61
Báng 2.10. Bâng một sơ hàm tốn học thường được sừ dựng................................................ 63

Bàng 2.11. Bang một số định dạng được sử dụng trong hãm printf()................................... 64

Bàng 2.12. Bang một số định dạng độ rộng được sử dụng trong hàm printfo..................... 65
Báng 2.13. Báng một số định dạng được SŨ dụng trong hàm scanfl).................................... 67
Báng 4.1. Một số hàm xừ lý xâu kỷ tự..................................................................................... 126
Bâng 5.1. Một sơ ví dụ định nghĩa hàm................................................................................. 165
Băng 7.1. Y nghĩa các tham số dọc. ghi cũa hãm fopcn().................................................... 209

9


DANH MỤC CHỪ VIẾT TẤT
STT

Viết tắt

1

ALƯ

Arithmetic Logic Unit

Khối số học và Logic

2

ASCII

American Standard Code for

Bang mà ASCII


Tiềng .Anh

Tiếng Việt

Information Interchange

10

3

CPU

Central Processing Unit

Khối xu lý trung tâm

4

CU

Control Unit

Khổi điều khiến

5

LS1C

Large Scale Integrated Circuit


Mạch tích họp cở lủn

6

MTĐT

7

RAM

Random Access Memory

Bộ nhớ truy cập ngẫu nhiên

8

ROM

Read Only Memory

Bộ nhớ chi đọc

9

VLSIC

Very Large Scale Integrated Circuit

Mạch tích họp rắt lớn


Máy tính điện tử


Chương 1
MÁY TÍNH VÀ CHƯƠNG TRÌNH MÁY TÍNH

1.1. MÁY TÍNH
1.1.1. Khái niệm máy tính diện tư

Máy tính điện tư (MTĐT) là thiết bị điện tư có kha năng lưu trừ khối lượng thông tin
rât lớn và xứ lý thông tin với tóc độ nhanh, chinh xác.
1.1.2. Lịch sử phát triền của máy tính điện tù

Lịch sir phát triên cùa máy tinh diện tu dã trái qua bôn thê hệ và dang chuàn bi chuyên
sang thế hệ thứ năm.

a) Thè hê máy tính thứ nhát
Thế hệ đầu tiên của mảy tinh (1950 - 1956) dựa vảo các role điện từ vả cảc đèn diện

tư chân không dè lưu trừ và xư lý thòng tin. Các đen điện tứ tiêu ton nhiều nủng lượng. sinh
ra nhiều nhiệt, hoạt động chậm, tuổi thọ thấp. Máy tinh có kích thước dỗ sộ nhưng có bộ nhớ
và khá năng xư lý rắt hạn chế. bộ nhớ trong lớn nhắt là 2 KB và tốc độ cực đụi là 10 nghìn

phép tinh trong 1 giây. Các máy thuộc the hộ này hâu như không xir lý dược thõng tin vãn
bán. chúng chi được dũng cho một số ít nhừng tinh tốn khoa học và kỳ thuật.
bi nê hê máy tinh thử hai
Thế hệ máy linh thứ hai (1957

1963) dũng bông bân dần (transistor) thay thế cho các


bóng den diên tư. Sư dụng bóng bán dẫn có nhiêu ưu việt hon bỏng đen diện tứ vì các bóng
bán dàn nhỏ gọn him, tiêu thụ ít điện và tịa ít nhiệt him, có tuổi thọ rất cao. Các máy tinh
the hệ này thường được dùng đê giái các bài toán khoa học kỹ thuật trong phạm vi rộng hon
và dùng cho việc xử lý thông tin kinh doanh don giàn như lập hóa don. tinh lượng, V.V..
c) Thế hệ mây linh thử ba

Mày tinh thẻ hệ thứ ba (1964 - 1979) sứ dụng các linh kiện lã các mạch tích hợp IC
[ Integrated Circuit) hay cịn gọi là mạch vi điện tữ (vi mạch). Mỗi mạch IC tưong đương vởi
hàng trâm bóng bán dan dược in trẽn một mành silicon ràt nhó gọi là chip. Nãng lực xứ lý
tàng nhanh dà lạo điều kiện để phải Irièn một phần mềm đậc biệt gọi là hệ diều hãnh đế điều

phối việc thực hiện các chương trinh và quan lý tự động các mối liên lục giũa bộ xứ lý trung

11


tâm (CPU) với các thiết bị ngoại vi. Đicu dó khiên cho việc lập chương trinh dẻ dàng hơn,
do đó mờ rộng được phạm vi ứng dụng của máy tinh.

di Thè hệ máy tính thứ lư
Cốc máy tinh trong thịi kỳ này (từ 1980 đen nay) dùng các mạch tích hợp cở lỏn LS1C

(Large Scale Integrated Circuit) và nhừng mạch cỡ rat lớn VLS1C (Very Large Scale
Integrated Circuit). Mỏi mạch LSIC tương dương vởi hàng nghìn hay hàng chục nghìn bóng
bán dần. Cịn mỏi mạch VLSIC tương đương với hàng trùm nghìn, thậm chí hàng triệu bóng
bán dan. Bộ nhớ trong (RAM) cùa các máy tinh cỡ lớn dùng trong thương mại đã tảng lên
hon một GB. tốc độ xư lý trên 200 triệu phóp tinh trong một giãy. Trong cùng thế hệ này.

các siêu máy tính có the thực hiện hàng chục tý, thậm chi hàng trâm tý phép tinh trong một
giây nhanh hơn rãl nhiêu so với cảc máy tinh cở lớn. Lý do lả các siêu mảy tinh không xử

lý tuân tự theo từng lệnh một mà tiên hành xư lý song song dơng thịi theo nhiều lệnh, mồi
máy cỏ nhiều CPU, một bài toán dược chia thành nhiều phần nhó đe giao cho mồi CPU đám

nhiệm một phan.
e) Thé hệ mảy tính trong tương lai
Các bộ xứ lý siêu vi mạch (superchip):
Giai pháp chinh đe chè tạo các bộ vi xư lý hoạt dộng nhanh hon là rứt ngân khoáng
cách giùa các transistor. Quá trinh này lãm giám quàng dường phái đi của các tin hiệu điện.

Một btrớc cai tiên là sự thu họp cãc mạch in trên manh silicon tạo thành các transistor. Các
mạch này câng hẹp thì câng cp được nhiều transistor vảo cùng một chip, tạo thành những bộ
vi xứ lý siêu hạng.

- Xử lý song song, đa nhiệm:
Trong tương lai. ngáy càng cỏ nhiêu máy tinh sỗ dũng phương thức xứ lý song song,

đa nhiệm đe hịa quyện âm thanh, tiêng nói, hình anh với cãc lng dữ liệu tir các ngn
khác. Các máy tinh xư lý song song, đa nhiệm cỏ nhừng mãng lưỡi vì đại gồm cãc chip đan

dột vào nhau theo những cách vừa rãc ròi vừa linh hoạt. Khác với phương thức xư lý song
song trong đỏ một số ít các chip chun món hóa. đăt liên được kết nối vời nhau, các mây
tính X» lý song song, đa nhiệm lien ket hãng trám, thậm chi hàng nghìn chip thơng dụng rè
lien de giài quyết nhũng bãi tốn lớn, do đỏ đạt được tốc độ của những siêu máy tinh. Các
hệ thống xư lý song song, đa nhiệm có ưu việt hơn về mặt chi phi và tốc độ so với các máy
lính xứ lý song song vần dùng xưa nay bới vì chúng tận dụng được hãng loạt những chip rẽ
liền. Hiện nay. cãc nhá sán xuất mây siêu máy tính đang chạy đua để ghép nối hãng chục

nghìn những bộ vi xư lý và các chip nhớ với nhau dê tạo ra các máy tinh sicu - siêu máy
tính (super-super Computer), có thê thực hiện hơn một nghìn tỹ phép tinh trong một giãy.
1.1.3. Phân loại máy tính điện tư

Có nhiều cách phân loại MTĐT tùy thuộc vào các tiêu chi khác nhau.

12


a) Phân logi MTĐT theo thõng tin biêu diên trong máy tinh
Nêu phân loại (heo thõng tin biêu diên trong máy tính thì có máy tinh (ương tự vã máy

tinh so.
- Máy tinh tương tự (Analog Computer):

Máy tinh tương tự thực hiện cãc phép (oán trẽn các số được bicu dicn bảng các đại
lượng biến thiên liên tục như chiêu dải, góc quay, điện áp. sóng điện từ, V.V.. Thước tính
logarit là loại máy tính tương tự đơn gián nhắt, trong đó chiêu dài cùa các đoạn trên thước
thê hiện các con sô. Trong các máy tinh tương tụ hiện đại. các thành phán phép toán thường
được biêu diền dưới dạng điện áp.
- Mây tính sơ (Digital Computer)

Mây tinh số thực hiện các phép toán trên các sỗ dược biêu diễn bảng cãc đại lượng

biến thiên rời rạc gom các chữ so 0. I tương ứng với hai trạng thái trái ngược nhau cùa một
phần từ vật lý như điện thế thấp hay cao, đèn sáng hay tối. công tắc dóng hay mở, V.V.. Máy
tinh sỏ được dùng nhiêu hơn máy tinh tương tự vì nó giai được nhiều loại bài tốn, tính tốn
nhanh và chinh xác hon.

/>) Phân loạt MTĐTtheo lốc độ tinh tồn
Ncu phân loại theo tơc độ tinh toán thi cõ máy tinh diện tứ sicu hạng, máy tính điện tư
cờ lởn. máy tinh diện tử cờ vừa vã nhò. mảy vi (inh.
Siêu máy tinh (Super Computer):


Siêu máy tinh lã máy tinh cực kỳ tinh vi cỏ khá nãng tinh toán rất lớn, cần đê tiền hành
những nhiệm vụ đỏi hoi hồn thành việc tinh tốn rat phức tạp trong khoang thời gian ngản.
chảng hạn giãi những hệ phương trình với hãng trảm nghìn ân số. Từ trước đến nay, các siêu
máy tinh vẫn được dũng trong nghiên cứu khoa học. trong dự bão thời tiết và trong quân sự.
nhưng gân đày chúng được dùng trong cá lình vục kinh doanh nữa.

Mây tinh điện tứ cờ lớn (Mainframe Computer);
MTĐT cỡ lớn được dùng cho những úng dụng quy mó lớn vê thương mại, khoa học
vả quân sự. trong đó nhu câu về xứ lý nhừng khối dừ liệu không lo vời các quy trinh xữ lý

phức tap.
- Máy tính mini (Mini Computer):

Máy tinh mini thưởng được dũng trong các trường đai học. cãc nhã máy hay trong các
phịng thi nghiệm.
Máy vi tinh (Micro Computer):
Máy vi tính hay cơn gọi là mây tinh cá nhân (Personal Computer) có nhiêu kích cỡ
khác nhau như máy Desktop (đặt vừa trên bân lãm việc), máy Portable, máy Laptop, mây
Notebook. Máy vi tính dược thict kẻ cho một người dùng, trong khi các loai mây khác như


máy sicu hạng, máy cỡ lớn, máy cỡ vừa và nho đêu có nhiêu bàn phim, màn hĩnh, v.v. dược
nơi vào máy đẽ nhiêu người củng sứ dụng. Mây vi tính rất tiện dụng cho cá nhân. gia đinh
vã cãc doanh nghiệp nhó.
1.1.4. Các thành phân co' hán cùa máy vi tính
ỉ. 1.4.1. Chức nàng cùa máy vi linh

Máy vi tinh có các chức nãng cơ bán sau:
Xứ lý dừ liệu: Đây lã chúc năng cơ bán nhãt cua máy vi tinh.


- Lưu trữ dữ liệu: Các dữ liệu dưa vào máy vi tinh có the dược lưu trữ trong bộ nhớ
đế khi cần sê được lắy ra xứ lý.
- Trao dơi dữ liệu: Máy vi tính cân trao dơi dữ liệu giũa các thành phân bên trong và
the giới bẽn ngoài. Cãc thiết bị vào/ra được coi lã nguồn cung cãp dừ liệu hoặc noi tiếp nhận
dữ liệu.
1.1.4.2. Mô ta hê ngồi tnáy vi tính

Nhìn be ngồi, một máy vi tính điên hình bao gơm các bộ phận sau dãy:

- Màn hình (Monitor hay Screen);
Hộp máy (Case):

- Bàn phím (Keyboard);
Chuột.

Hình 1.1. Máy vi tinh.

• Màn hình (Monitor)

Mãn hình (Monitor) là thiết bị giao tiếp giừa người sừ dụng và máy tinh, nó hiên thị
các thõng tin cần thiết trong q trinh điều hành chương trinh. Màn hình có nhiều loại cỏ

kích thước khác nhau.
14


• Hộp máy (Case)

I lộp máy cỏn gọi main unit hay system unit, đây là hộp chửa bo mạch mẹ/bo mạch
chính (Mother Board/Main Board), bộ xử lý trung tám CPU (Central Processing Unit),


nguồn nuôi (Power Supply), các ổ đĩa (Drive), Card mớ rộng (Expansion Card), V.V.. Dây là
bộ phận quan trọng nhãt cúa mây tinh vi nõ chữa đon vị xu lý trung lâm CPU điẽu hành mọi
ho,at dộng máy tính, và chúa các card mớ rộng diều hãnh các chức nâng cụ thê cùa các thièt

bị ngoại vi.
• Bàn phim (KeyBoard)
Bàn phím là thiêt bị nhập dù liệu và các lệnh. Bàn phim phô biên nhát hiện nay là một

bàng chứa 104 phim, có thê chia lãm ba nhóm phím như sau:
- Nhóm phím đánh máy: gịm các phim chir cái. phím chữ sỏ, phim cãc kỷ tự dặc biệt.
- Nhóm phím chức nàng: gồm các phim từ Fl đền FI2, các phim mùi tên, phim lèn

một trang mân hĩnh, phim xuống một trang màn hĩnh, phím Insert (chèn), phim Delete (xóa),

phim Home (vé dâu), phím End (vẽ cuối).
- Nhỏm phim số (Numeric keypad) như phim Num Lock (cho các ký tự so), phím

Caps Lock (cho cãc chữ in hoa), phim Scroll Lock (chê độ cuộn màn hình) the hiện ớ các
đèn chi thị.
• Chuột (Mouse)
Chuột là thiết bi càn thiêt phô biên hiện nay. Chuột di chuyên theo hường nào thi dâu

nháy hoặc mùi tên trên mãn hình sè di chuyển theo hướng đó tương ứng vói vị tri của viên

bi hoặc tia sảng (chuột quang) năm dưới bụng nó.
1.1.4.3. Cẩu trúc cuư máy vi tinh
Cấu trúc của máy vi tinh được mô tã bàng sơ đổ sau:

a) Bộ xử lý trung tâm


CPU (Central Processor Unit)

Bộ X» lý trung tâm CPU (Central Processing Unit) diêu khicn cãc thành phân cùa may

vi tinh, xữ lý dừ liệu. CPU hoạt động theo chuông trinh năm trong bộ nhớ trong, nhận các

lệnh tử bộ nhớ. giái mà lệnh đê phát ra các tin hiệu điều khiên thực hiện lệnh. Trong quã
trình thực hiện lệnh, CPU có trao dõi vỡi bộ nhớ và hộ thơng vào/ra. CPU có ba bộ phận

chinh là khói điều khien (Control Unit CU), khối tinh tốn sơ học logic (Arithmetic LogicUnit - ALU) vã tập các thanh ghi (Registers).

15


Bộ nhờ trong
(ROM ♦ RAM)

Bộ xữ lý trung tâm

(CPU)

Hình 1.2. Sơ đồ cấu trúc máy tinh.

Mò hĩnh cơ han của CPU bảng sơ đổ sau:

Bus diêu khiển

Bus dữ liệu


Bus địa chí

Hình 1.3. Sơ đồ mõ tà cơ bàn CPU.

• Khối điều khiển (Control Unit - cư)

Nhận lệnh cua chương trinh tữ bộ nhớ (rong đưa vào CPU. khôi điêu khiên có nhiệm
vụ giái mã các lộnh, tạo ra các tin hiệu diêu khiên cõng việc cùa các bộ phận khác cua máy
tinh theo yêu câu cùa người sử dụng hoặc theo chương trinh đà cãi đật sần.
• Khối tinh tồn số học và logic (Arithmetic Logic Unit - ALU)

Khơi này thực hiện các phép tính số học (cộng, trử, nhàn, chia, V.V.), các phép logic
I AND. OR. NOT, v.v.) và phép toán quan hệ (so sánh băng nhau, lớn hơn, nho hơn, V.V.).

16


Dừ liệu từ bộ nhớ hay các thiét bi vào/ra sẽ dược chuyền vào các thanh ghi cua CPU
rồi chuyên dên khơi ALU. Tại dây. dữ liệu được tinh tốn rói tra lại các thanh ghi và chuycn

VC bộ nhớ hay các thiết bị vào/ra.
• 'l ập các thanh ghi (Registers)

Tập các thanh ghi (Registers) được gân vào CPU làm nhiệm vụ bộ nhớ trung gian cho

CPU. Các thanh ghi mang các chức nũng chuyên dụng giúp lãng tóc độ trao địi thơng tin
trong máy tính.
• Bộ vi xứ lý (Microprocessor)
CPU được che tạo trên inột vi mạch vã được gọi lã bộ vi xứ lý (Microprocessor), vì


vậy có thê gọi CPU là bộ vi xữ lý. Tuy nhiên, các bộ vi xú lý hiện nay có câu trúc phúc tạp

hon nhiêu so với một CPU cơ bán.
bị Bộ nhở trong
Bộ nhở trong là thiết bị lưu trừ thông tin má CPU có the trao đối trục tiếp trong quá

trinh xử lý. Bộ nhờ trong bao gơm hai phân chính lá bộ nhở chi đọc ROM vã bộ nhớ truy
nhập ngầu nhiên RAM.
• Bộ nhớ chi đọc ROM (Read Only Memory)

Là bộ nhớ dã dược ghi sần cãc chương trinh sơ cap dè diêu khiên các hoạt dộng co bán
cua máy tính như hộ thõng vào/ra co sớ BIOS (Basic Input Output System). Bỏ nhở này

được ghi bói nhà san xuât. trong quá trinh làm việc chi có thê dọc (hịng tin từ dãy vã các
thơng tin này khơng bị mát khi bi mât ngn điện.

• Bộ nhó truy nhập ngẫu nhiên RAVI (Random Access Memory)

Càn gọi là bộ nhớ chinh là nơi ghi lạm dữ liệu vã các lệnh chương trinh đẽ lây dùng

trực tiêp vã nhanh chóng cho bộ vi xử lý trong quá trình làm việc. Bộ nhỡ này sẽ bị mài di
khi mất nguồn điện.

c) Bộ nhờ ngoài
Bộ nhớ ngoài (External Memory) là thiết bị lưu trừ thông tin với dung lượng lởn. thông

tin không bị mất khi khơng cỏ điện. Cổc thơng tin này có thê lã phần mềm mây lính hay dừ

liệu. Bộ nhớ ngồi được kết nói với mây tinh thơng qua mơđun nối ghép vào/ra. Như vậy.


bộ nhớ ngoài về chức nâng thuộc bộ nhở. song về cấu trúc lại thuộc về hệ thống vào/ra. Có
thê cãt giừ và di chuyên bộ nhớ ngối độc lập vói mảy linh. Hiện nay có các loại bộ nhớ

ngoài như đĩa cứng (hard disk); đĩa quang (compact disk) như CD. DVD. V.V.: các thẻ nhớ
(memory stick, compact flash card); USB flash drive, v.v.

17


USB Hash Drive

Compact Rash Card

Compact disk

Hinh 1.4. Các loại bộ nhờ ngồi.

d) Hệ thống vào/ra

Chức năng cùa hộ thơng vào/ra là trao dôi thõng tin giữa máy tinh với thê giới bòn
ngoải. Hệ thõng vào/ra được xảy dựng dựa trên hai thánh phân lã các thiẻt bị vào/ra (IO
devices) hay cỏn gọi là các thict bi ngoại vi (Peripheral devices) và các móđun ghcp nơi
v.Wra (ÌO Interface modules).
• Mơdtin ghép nôi vào/ra

Các thiết bị vào/ra không kết nồi (rục tiếp với CPU má được kết nổi thõng qua các
môđun ghép nơi vào/ra. Trong các módun ghép nịi vào/ra có các công vào/ra <10 port), các
cồng nãy cũng được đánh địa chi bói CPU. cỏ nghĩa lã mỗi cống cũng có một địa chi xãc
định. Mỏi thiết bị vào/ra kết nối với CPU thơng qua cổng với địa chi xác định.
• Thiết bị vào/ra


Mỗi thiết bị vào/ra làm nhiệm vụ chuyến đỗi thông tin từ một dạng vật lý nào đỏ về
dạng dừ liệu phũ hợp với máy tinh hoặc ngược lại. Các thiết ngoại vi (peripheral) được phân
ra nhiều loại:

- Thiel bị thu nhận dữ liệu: bàn phim, chuột, máy quét ánh. V.V..
- Thiết bị hiến thị dừ liệu: màn hình, máy in. máy vẻ. V.V..
Thiel bi nhớ: các loại ô đìa.
Thiết bị truyền thông: modem. V.V..
Thiel bi 110 trợ đa phương tiện: hộ thịng âm thanh, hình ánh. V.V..

Các thiết bị vào: bân phim, chuột, máy quét ánh. các ô đĩa. V.V..
Các thief bi ra: màn hình, máy in, máy chiêu, các ơ đìa, v.v

Bàn phim

Máy qt ánh

Màn hĩnh

Hình 1.5. Thiét bị váo ra.

18

Máy in


e> Liên két hỉ’ thong (buses)

Giữa các thảnh phân cùa một máy tinh hay ngay trong một thành phan phức tạp như

CPU cùng cân trao đỏi với nhau. Nhiệm vụ này được thực thi bởi hộ thông kct nôi và được

gọi là bus. Các bus được phân ra làm ba loại chinh:
• Bus điều khiên (Control bus): Bus nãy lảm nhiệm vụ chuyển các thông lin/lin hiệu

điêu khicn từ thành phân nãy đen thành phân khác: CPU phát tin hiệu đê đicu khiên bộ nhớ
hay hệ thong vào/ra hoặc tử hệ thống vão/ra gứi tin hiệu đen CPU.

• Bus dừ liệu (Data bus): Bus nãy lãm nhiệm vụ chuyên lãi dừ liệu (nội dung ngăn

nhớ, kct quá xư lý) từ CPU đèn bộ nhớ hay ngược lại, hoặc từ bộ nhớ/CPU ra các thièt bị
ngoọi vi. Đây là loại bus hat chiêu.
• Bus địa chi (Address bus): Bus này lãm nhiệm vụ chuyên tái địa chi của các ngán

nhớ khi mn truy nhập (dọc/ghi) nội dung cùa ngăn nhớ dó. hoặc dĩa chi công cùa các (hiet

bị mã CPU cần trao đối. Độ rộng (số bít) cùa bus địa chi cho biết dung lượng cực đại cua bộ
nhớ mả CPU có the quàn lỷ được. Vởi độ rộng là n thi dung lượng bộ nhớ tồi đa sè là 2".
1.2. CÁC HỆ ĐÊM. ĐƠN V| Dơ THÔNG TIN
1.2.1. Hệ đếm

Hệ đếm cơ số 10 lã hệ dem quen thuộc dũng hắng ngây. Hệ nảy sữ dụng 10 chữ số là
0, 1,2, 3, 4, 5, 6, 7, 8, 9 đê biêu điển các sơ thập phân. Vi dụ: sị 2004 có chữ sô hàng đon

vị là 4. chữ sô hàng chục và hàng trăm đêu là 0. chừ so hàng nghìn là 4. số 2004 này có giá
trị là nhu sau:

2004 = 2 • 10' + 0 • ló2 + 0 • 10
* + 4 • 10®


Tơng t/l. một hệ đếm cư số a bat kỹ:
- Phủi dùng a chừ số đê biếu diễn các số, chừ số nho nhất lã 0. chừ số lớn nhất có giá

trị là a - 1.

Giá tri cua mỗi chừ số trong một số bâng chừ số ẩy nhãn VỚI giá tri cua vị tri. Giá trị

cùa vị tri thử n bang cư số a mù n: a°.

Máy tinh chi làm việc với hai sò là 0 và I vi hai con sò này tương ứng với hai trạng
thái "<7õng"và "ngúr'một mạch điện. Với a = 2, cỏ hệ đêm nhị phân là hệ đem với hai chừ
số là 0 và I. Nhung các so biêu diẻn dưới dạng nhị phân này thưởng rất dài và rất khó nhỡ

(vi dụ: 64| |(|)= lOOOOOOi’i). dê giái quyêt vân dề này. dùng hệ đem cơ sô 8 (tương dương với
một cụm 3 bít) vã hay dùng nhát lã hệ 16 (hệ hcxa-decimal).

19


Báng 1.1. Hộ đốm cơ số 2, 8, 10,16

Hê 10

Hi’2

Hệ 8

Hệ 16

Thập phán


Nhị phán

Hát phân

Hệ Hexa

0

0000

(X)

0

1

0001

01

1

2

0010

02

2


3

0011

03

3

4

0100

04

4

5

0101

05

5

6

0110

06


6

7

0111

07

7

8

1000

10

8

9

1001

11

9

10

1010


12

A

11

1011

13

B

12

1100

14

c

13

HOI

15

D

14


1110

16

E

15

1111

17

F

Chuyên (lối giữa sỗ hệ 10 và các hệ cu sổ khác

íi) Chuyên sồ hệ cơ sô a sang hỉ’ to
Một số N trong hệ cơ số a ký hiệu là N(.»:
N(«> = bBbn-i...bib«b-i...b-tn lã sỏ biêu diễn trong hệ co sơ a.

Do vậy, sị N SC có giá trị:
N = bn • a- + b»-i * a"-' + ... + bi • a' + bo + b-1 * a’1 +... + b . • a-'
Ví dụ: 1011.01(2) có giá tạ băng:

1011.01(2) = I *
2' + 0• 22+ I • 2‘ + I • 2° + 0
r'
*
= l*

8

+0
4+l
*

= 11.25(1(1)
20

"2+1 "1+0
*

+ I * 2'2

0.5+1 *
0.25


bi Chuyến số hệ to sưng hỷ cơ sổ ư

Muốn chuyển số hệ 10 sang hệ cơ số a, chia ra hai trường hợp: phần nguyên và phần
phân
blỊ Chuyên đổiphần nguyên: Dem chia phan nguyên liên tục N|1(|> cho a. lần lượt được
các sô dư là b
Ví dụ: Sơ 14(10) đơi sang hệ nhị phàn:

141.2

0 7 12

13ì 1 ư

bo bl b> bỉ
Số 14(10) viết trong hệ nhị phân là b.ib'bibi) = 1110(2).

b2Ị Chuyên (tôiphân phân; Thực hiện nhàn liên tục phân phản với a, 1110) làn nhân SC
nhận được phan nguyên lã các hệ so b IN = b-1 a’1 + b-2 a~2 + ... + b-m a’"'

a.N = bl + bia 1+...+ b «a m*1

phan nguyên sau khi thục hiện phép nhân lần thứ nhất.

Quã trình nhân kết thúc den khi đạt được một trong hai khá năng dưới dày
- Phan le của phép nhãn có giã trị bâng 0:

Ví dụ: Dõi 0.6875(10) sang hệ nhị phân:

Thực hiện phép nhãn

Kết quá

Phần nguyên

Hệ số

0.6875 X 2

1.375

1


b 1=1

0.375 X 2

0.75

0

b 2 =0

0.75 X 2

1.5

1

b 5= 1

0.5x2

1.0

1

bi= 1

Vậy 0.6875(10) = 0.101 l(2j

21



- số chữ sổ b 1, b 2......lìm được đã đạt độ chinh xác cần thiết hoặc đã bảng số chữ số
mà mảy có thê xử lý.
Ví dụ: Máy tinh chi xù lý được X bit, cân dôi sô 0.68 sang hộ nhị phân:

Thực hiỷn phép nhân

Kềt quà

Phần nguyên

Hệ sổ

0.68 X 2

1.36

1

b 1=1

0.36 X 2

0.72

0

b-2 = 0


0.72 X 2

1.44

1

b-3 = 1

0.44 X 2

0.88

0

b 4= 0

0.88 X 2

1.76

1

b 5= 1

0.76 X 2

1.52

1


b-6= 1

0.52 X 2

1.04

1

b ?= 1

0.04x2

0.08

0

b. = ()

Vậy 0.68(11)1 = 0.10101110.2.
1.2.2. Thông tin vả đon vị đo thông tin

Sự ra đời cùa máy tinh điện từ đà mờ ra một cuộc cách mạng trong khoa học và công
nghệ. Máy tinh đà trơ thành một công cụ het sức hữu hiệu, được sứ dụng rất rộng rãi vả

không the thiêu được trong đời sông xã hội hiện nay.
Một trong những vấn đề het sức cơ ban khi xử lý thõng tin trên mây tinh lã q trình

giao lưu thơng tin giữa người vả máy tính. Thơng tin cùa con ngươi dược xuât phát từ một
tập hợp các ký hiệu cơ bán như các chừ sô, các chừ cái vã các kỷ hiệu đặc biệt khác. Nhờ
các quy tác tỏ họp các ký hiệu trên, con người có the dicn tá các thơng tin. Máy tính hoạt

động theo ngun lac điện, chi cỏ thê hiểu các trạng thái "bật'' hoặc “tát" các mạch điện,
tương ứng vơi hai kỷ hiệu là 1 và 0. Chinh V) thê phai cỏ một tương ứng giữa từng ký hiệu
cùa ngôn ngừ bậc cao cùa con người với một nhỏm các trạng thái "bật" - "tat" nào đó của
các mạch trong máy tinh, nói một cách khác, tương ứng với mọt dày các ký hiệu cua ngôn
ngữ máy I vã 0. Nhơ quy tãc tương úng trên, thực hiện mã hóa và giài mã thõng tin, có như
thế con người vã máy tinh mơi có thể hicu nhau được.
Bang mA là bang liệt kê tát ca các ký tự cúa một ngơn ngừ vói các giá trị mã hóa
gán cho nó; cảc giã trị nãy chinh lả số thứ tụ cùa kỷ lự trong báng mâ. Hiện nay, thường

dùng bang mã do Mỹ phát hành, gọi là báng mã ASCII (American Standard Code for
Information Interchange).
Thông tin trong máy tinh được ghi thành các dỏng cãc chừ sô 0 và I. Đê xãc định độ

lởn cùa một dòng thõng tin, dùng các đơn vị đo sau đây:

22


- Bít: là một vị trí trong dịng thõng tin de bicu diẻn một trong hai trụng thãi lả I hoặc 0.

Byte: 1 byte = 2’ = 8 bít. Trong bâng mà ASCII, dũng một byte đế biếu diễn một
ký nr.

Kilo byte (KB): 1 KB = 2KI = 1024 byte.
- Mega byte (MB): I MB = *2°

= 1024 KB

- Giga byte (GB): I GB = 2KI = 1024 MB.


Nhở các đơn vị đo thõng tin trên, có the dề dàng hĩnh dung được độ lớn cùa các khỏi
thõng tin được xir lý trên máy tính.

1.2.3.

Mã hóa thơng tin trong máy tính

Mã hóa thơng tin trong máy tinh thục chât là sơ hóa dữ liệu thành các chuồi sơ nhi
phân (hình 1.6) theo nhừng quy uớc chung đê các mảy tính có thê lưu trừ. xữ lỷ vã trao đỏi
thõng tin với nhau.

Hinh 1.6. Sơ đỏ sơ hóa dứ liệu.

Trong máy tinh dùng các số nhi phân cỏ dộ dài (số bit) cỏ dịnh dê biêu diễn thông tin.
Các số nhị phân này được gọi là từ mà. Vởi độ dài từ mă là n, có the biêu diễn được 2° thơng

tin khác nhau.
Ví dụ:

Nếu dùng I byte (8 bít) để biểu diễn các sổ ngun khơng dắu thì có the biếu diễ:
được 2" = 256 số có giá tri từ 0 đền 255 nhu sau:
Từ mà

Số nguyên

0000 0000

1)

(XXX) 0001


1

00000010

2

11111111

255

Nấu dùng I byte đế biểu diễn các kỷ tự (chữ cái, chữ số thập phân, các dấu chấm
câu. các ký hiệu phép tốn, v.v.) thi có thể biếu diễn được 2’ = 256 ký lự khác nhau.

23


Cách mã hóa các loại dữ liệu dược tuân theo nhũng chuân chung dé các máy tinh có
thê "hiẽu" được nhau khi trao dõi, xứ lý thông tin.

- Các ký tự: mã hỏa theo bang mã ASCII hoặc Unicode.
- Cốc sơ ngun: mà hóa theo một sổ chn quy ước.
- Các sổ thực: mã hóa theo số dấu phẩy động
- Dừ liệu ãnh, âm thanh, phim: mà hóa rời rạc thành các ma trận sổ thực biểu điển
cưởng độ sáng, tăn số âm.
1.3. GIÁ1 BÀI TỐN BÂNG MÁY TÍNH
1.3.1. Khái niệm ve bài tốn

Trong q trinh tịn tụi và phát niên, con người ln phái giai quycl các bài tốn. Có
thê nói cuộc sống là một chuỗi các bải tốn cần được giải quyết.


Theo nhiều nhà nghiên cứu thi mọi bài tốn đều có thê diễn đ?t theo một sơ đổ chung sau:
A->B
Trong đỏ:

- A là già thict, lã diet! kiện ban đâu, hoặc lã cái đã cho, đã có khi bãt đâu giái bài toán.
B là kết luận, lã mục tiêu cần đạt được, hoặc là cái phái tìm. phái lãm ra khi kết thúc
bài toán.

Dau mùi lẽn
lã suy luận, lã giãi pháp cằn xác định, hoặc là một chuỗi cảc thao
tác cân thục hiện, cân thi hãnh dê cô dược cái phai tim B lử cái dã cỏ A.
1.3.2. Các birớc giải bài toán bàng máy tinh

Quá trinh giai quyct một bái tốn tren máy tính có thè biêu diễn theo một sơ dơ
chung sau:

Hình 1.7. Sơ đồ giái bái toán bang mây tinh.

24


×