Giới thiệu về phần cứng và phần mềm của máy tính, các hệ thống số, ngôn ngữ lập trình, giải thuật và phương pháp luận lập trình, bao gồm các bước và các công việc của mỗi bước để xây dự
Trang 23.7 Độ phức tạp của giải thuật 225
6.1 Khai báo và khỏi tạo biến con trỏ 447
6.7 Biểu thức con trỏ và số học con trỏ 4766.8 Sự liên hệ giữa con trỏ và mảng 477
Trang 37.3 Tính đóng gói và che giấu dữ liệu 617
7.6 Đối tượng hằng và phương thức hàng 671
Trang 48.5 Tính đa hình 790
Phu luc B • • Các thuộc tính và các phương thức
Trang 5LỜI NÓI ĐẰU
Quyển sách Kỹ thuật lập trình trình bày các kiểu lập trình: lập trình
goto (goto programming), lập trình có cấu trúc (structuredprogramming) và
lập trình hướng đối tượng (object-orientedprogramming).
Các kiểu lập trình và các chương trinh máy tính trong quyển sách này được minh họa bàng ngôn ngữ lập trình C++ và c#.
Quyển sách này bao gồm 8 chương và 4 phụ lục
Chương 1 Mảy tính - Phương pháp luận lập trình Giới thiệu về phần
cứng và phần mềm của máy tính, các hệ thống số, ngôn ngữ lập trình, giải thuật và phương pháp luận lập trình, bao gồm các bước và các công việc của mỗi bước để xây dựng các phần mềm
Chương 2 Các thành phần căn bản của chương trình Trình bày cấu trúc
của một chương trình, các thành phần được sử dụng trong một chương trình: kiểu dữ liệu và chuyển đổi kiểu, hằng, biển, toán tử, biểu thức, phát biểu
Chương 3 cẩu trúc điều khiển Trình bày các cấu trúc điều khiển của
chương trình bao gồm cẩu trúc tuần tự, cấu trúc điều kiện và cấu trúc lặp, tầm vực của biến, độ phức tạp của giải thuật Phần cuối của chương này giới thiệu
kiểu lập trình goto, trình bày các nguyên tắc của kiểu lập trình có cấu trúc Chương 4 Chuỗi kỷ tự - Mảng - Bản ghi Trình bày các cấu trúc dữ liệu
thường dùng bao gồm chuỗi ký tự, mảng, bản ghi và các tác vụ của các cấu trúc này, các giải thuật sắp thứ tự và tìm kiếm Phần cuối của chương này trình bày một vấn đề tương đối phức tạp được giải quyết bằng cách sử dụng lập trình có cấu trúc và các cấu trúc dữ liệu
Chương 5 Hàm - Đệ quy Trình bày định nghĩa chương trình con, tầm vực
của danh hiệu, gọi chương trình con, các cách truyền tham số và trả kết quả, tính kết nối và tính kết dính của chương trình con, các loại đệ quy
Chương 6 Con trỏ Trình bày con trỏ và tham khảo (tham chiếu), truyền và
trả về bằng con trỏ, biểu thức và số học con trỏ, con trỏ hàm, cấp phát và
giải phóng vùng nhớ Phần cuối của chương này giới thiệu các cấu trúc dữ
liệu động sử dụng con trỏ gồm có danh sách liên kết, chồng, hàng đợi và cây
theo kiểu lập trình có cẩu trúc.
Chương 7 cấu trúc - Lớp - Tính đóng gói Trình bày cấu trúc, lớp và đối
tượng, tính đóng gói và che giấu dữ liệu, mối liên kết has-a, hoạt tải (tải bội)
Trang 6toán tử Phần cuối của chương này giới thiệu các cẩu trúc dữ liệu động gồm có danh sách liên kết, chồng, hàng đợi và cây theo kiểu lập trình hướng đối tượng.
Chương 8 Tính thừa kế - Tỉnh đa hình Trình bày lóp cơ sở và lớp dẫn
xuất, tính thừa kế của các lớp (mối liên kết is-a), tính đa hình (đa xạ) của
các lớp
Phụ lục A Các hàm x ử lý chuỗi kỷ tự của C++.
Phụ ỉục B Các thuộc tính và phương thức x ử lý chuỗi kỷ tự của cu Phụ lục c Các hàm toán học của C++.
Phụ lục D Các phương thức toán học của cu.
Quyển sách Kỹ thuật lập trình là tài liệu học tập cho sinh viên chuyên ngành Công nghệ Thông tin, Khoa học Mảy tính, Kỹ thuật Máy tỉnh, Công
nghệ Phần mềm của hệ đào tạo chính quy bậc đại học Quyển sách này trình
bày nhiều nội dung chi tiết, nhiều ví dụ dễ hiểu và nhiều bài tập của mỗi chương, là tài liệu tham khảo cho sinh viên thuộc hệ đào tạo từ xa bậc đại
học và bậc cao đẳng ngành Công nghệ Thông tin và lập trình viên Tại
Trường Đại học Bách khoa - Đại học Quốc gia TP HCM, quyển sách này là
tài liệu học tập cho sinh viên chuyên ngành của hệ đào tạo chính quy và hệ đào tạo từ xa qua mạng
Tác giả trân trọng cảm ơn Ban chủ nhiệm và các giảng viên của Khoa
Khoa học và Kỹ thuật Mảy tính, Ban Giáo trình của Trường Đại học Bách Khoa - Đại học Ọuổc gia TP HCM đã tạo điều kiện và giúp đỡ để quyển
sách này được xuẩt bản
Mặc dù tác giả đã nỗ lực biên soạn, tuy nhiên, quyển sách này không thể tránh khỏi những thiếu sót Tác giả rất mong nhận được những ý kiến đóng góp quý báu của độc giả và xin gừi về:
Khoa Khoa học và Kỹ thuật Máy tính, Trường Đại học Bách Khoa - Đại học Quốc gia TP Hồ Chí Minh, 268 Lý Thường Kiệt, Phường 14, Quận
lõ, TP Ho Chí Minh
Email: nttruc@hcmut.edu.vn, truc@cse.hcmut.edu.vn
Tác giảNGUYỄN TRUNG T R ựC
Trang 810 Chương I Máy tinh Phương pháp luận lập trình
Cuối cùng, chương này trinh bày phương pháp luận lập trình bao gồm các bước và các công việc cùa mồi bước để xây dựng các phẩn mềm máy tính
1.1 M áy tính
Máy tỉnh (computer) là một thiết bị có mục đích chung (general- purpose device) có thể được lập trình đế thực hiện các phép toán số học (arithmetic operation) và các phép toán luận lý (logical operation) một cách
Chuỗi các chỉ thị (instruction) mà máy tính thực hiện được gọi là
clnrơng trình máy tính (computer program) và được gọi tát là chương trình (program).
Người viết chương trình được gọi là người lập trình (programmer).
Các chỉ thị của chương trình được chứa trong bộ nhớ của máy tính
Chu kỳ tính toán (computation cycle) cùa máy tính bao gồm lấy chỉ thị kế
tiếp trong bộ nhớ, thực hiện tính toán và sau đỏ lấy lệnh kế tiếp và cứ như
thế cho đến khi gặp chỉ thị "halt” (dừng).
1.2 P hần cứng và phần m ềm của m áy tính
1.2.1 Phần cứng
Phần cứng (hardware) là thuật ngừ chung nói đến dụng cụ vật lý của
một công nghệ Nó cũng có nghĩa là các thành phần vật lý của một hệ thống
máy tính và được gọi là phần cứng máy tính (computer hardware).
Trang 9Chương 1 Máy tính - Phương pháp luận lập trình
Các thiết bị phần cứng thông dụng như bàn phím (kevbocird), màn hình (screen), chuột (mouse), cần điều khiển (ịoystick), đĩa cứng (harci
disk), bộ nhớ (memory), đĩa quang (optỉcal clisk), các đơn vị xử lý (Processing unit).
Kiến trúc máy tỉnh (Computer architecturc) là một tập các quy tắc mô
tả chức năng, tô chức và sự thực hiện của hệ thống máy tính
Kiến trúc Von Neumann (Von Neumann architechture) cho thấy một
chương trình được thực hiện ở bên trong bộ nhớ của máy tính cùng với các
dừ liệu của chương trình Kiến trúc này còn được gọi là máy tính chứa
chương trình (storedprogram Computer).
Kiến trúc Von-Neumann có ba đơn vị chính:
- Bộ nhớ (inemory) chứa chương trinh và dừ liệu.
- Đơn vị x ử ¡ý trung tâm (CPU — Central Processing Unit) truy xuất
chương trinh và dữ liệu ỡ trong bộ nhớ và thực hiện các phép toán
- Đơn vị Nhập /X u ấ t (I/O unit) cung cấp các truy xuất đến các thiết bị
để nhập và xuất dữ liệu
► Output device Input device
Hình 1.1 Kiến trúc Von-Neiinmnn
Trang 1012 Chương 1 Máy tinh — Phương pháp luận lập trình
a Các thiết bi nhập / xuất
Các thiết bị nhập / xuất {I/o device), còn được gọi là thiết bị ngoại vi
(peripheral device), được dùng để đưa dừ liệu vào máy tính và nhận dữ liệu
từ máy tính
Các thiết bị nhập / xuất gồm có bàn phím, chuột, cần điều khiển, đĩa
cứng, bộ nhớ, đĩa quang, USB {Universal Serial Bus), màn hình, .
b Đon vị xử lý trung tâm CPU
Thông thường, một máy tính phải có đơn vị xử lý trung tâm CPU và
bộ nhớ Đơn vị xử lý trung tâm CPU thực hiện các phép toán sô học và luận
lý và điều khiển các hoạt động truy xuất dừ liệu ở trong bộ nhớ
Một chu kỳ lặp {repetive cycle) của máy tính Von Neumann gồm có:
1 Nạp chỉ thị của chương trinh từ bộ nhớ đưa vào CPU.
2 Giải mã {decode) và thực hiện chì thị này Việc thực hiện chỉ thị có
thể là:
- Thực hiện phép toán số học và luận lý
- Nạp {load) hoặc lưu trữ {store) dữ liệu trong bộ nhớ.
Khi thực hiện xong một chỉ thị, CPU lấy chỉ thị kế tiếp ở trong bộ nhớ
và thực hiện chỉ thị này
CPU bao gồm hai đơn vị là đơn vị điều khiển và đơn vị tính toán số
học và luận lý
- Đon vị điều khiển {CU - Control Unit) duy trì chu kỳ không thay đổi
ỉấy-và-thực-hiện {cycle offetchs-and-execute).
- Doit vi tính toán số học vù luận lý {ALU - Arithmetic and Logic Unit) là một mạch điện tử thực hiện các phép toán số học {arithmetic operation), các phép so sánh giá trị {values comparison) và các phép
toán luận lý bit {bitwise logical operation) trên các sô nhị phân nguyên {integer binaiy number).
Cả hai đơn vị c u và ALU đều có các bộ nhớ đặc biệt, tốc độ truy xuất rất nhanh, chúng được gọi là các thanh ghi {register).
Một số thanh ghi có chức năng đặc biệt, ví dụ thanh ghi hộ (lent
chương trình {PC - Program Counter), thanh ghi chỉ thị {IR - Instruction Register).
Trang 11Chương 1 Máy tính - Phương pháp luận lập trình 13
Thanh ghi PC chứa địa chi của chỉ thị được thực hiện kế tiếp.
Chu kỳ lẩy-và-thực-hiện gồm có hai bước sau đây:
1 Đơn vị điều khiển c ơ lấy chi thị được chứa tại địa chì mà địa chỉ này đang được chứa trong thanh ghi PC và đưa vào thanh ghi chỉ thị IR
Sau đó, đơn vị điều khiển c u tự động tăng địa chỉ trong thanh ghi PC,
nghĩa là thanh ghi PC trỏ đến chỉ thị kế tiếp trong chương trình
2 Đơn vị điều khiển c u giải mã chỉ thị ở trong thanh ghi IR và thực hiện chỉ thị này Sau khi thực hiện xong, đơn vị điều khiển cu lấy
chi thị kế tiếp mà thanh ghi PC đang trỏ đến và bắt đầu chu kỳ lẩy-
và-thực-hiện kế tiếp, cho đến khi đơn vị điều khiển cu thực hiện
- Phép cộng với so nhớ {Add with cany): cộng hai số với số nhớ và kết
quả lưu vào thanh ghi ACC và sổ nhớ là một bit trạng thái {status bit)
của phép toán
- Phép bìi-2 {Two's complement): Lấy sổ đối của một số và két quả lưu
vào thanh ghi ACC, nghĩa là số bù-2 của sổ này số bù-2 của một số
bằng số bù-1 của số này cộng với 1 Phép toán A - B là phép toán A +
Số bù-2 của B
- Phép nạp {Pass through): nạp một số vào thanh ghi ACC.
Các phép toán luận lý bit
- Phép AND: thực hiện phép toán AND trên các cặp bit của hai số và kết
quả lưu vào thanh ghi ACC.
- Phép OR:thực hiện phép toán OR trên các cặp bit của hai số và kết quả lun vào thanh ghi ACC.
- Phép Exclusive-OR {XOR):thực hiện phép toán XOR trên các cặp
bit của hai số và kết quả lưu vào thanh ghi ACC.
Trang 1214 Chương 1 Máv tính - Phương pháp luận lập trình
- Phép bù-1 (One's complement): đảo ngược các bít (phép NOT) của
một số và kết quả lưu vào thanh ghi ACC.
Các phép dịch chuyến
- Phép dịch chuyến trái (Left shift): dịch chuyến qua trái các bit của
thanh ghi ACC với carry bit.
- Phép dịch chuyên trải vòng (Left rotate shift): dịch chuyển qua trái vòng các bit của thanh ghi ACCvới carry bít.
- Phép dịch chuyển phải (Right shift): dịch chuyến qua phải các bit của
thanh ghi ACCvới carry bit.
- Phép dịch chuyển phải vòng (Right rotate shift): dịch chuyển qua phải vòng các bit cùa thanh ghi ACC với carry bit.
- Phép dịch chuyển trái sổ học (Arithmetic left shift): dịch chuyến qua
trái số học các bit của thanh ghi ACC với carry bit.
- Phép dịch chuyến phai số học (Arithmetic right shift): dịch chuyên qua phải số học các bít của thanh ghi ACC với carry bit Bit bên trái nhất (leftmost bit) được lặp lại.
Các phép toán phức tạp
Mặc dù ALU có thể được thiết kế để thực hiện các hàm phức tạp Khi
đó, mạch điện tử của ALU sẽ phức tạp hon, tốn chi phí hơn, tốn năng lượng hơn, kích thước lớn hơn và, trong nhiều trường hợp, điều này là không khả thi
Do đó, ALU thường thực hiện các phép toán đơn giản ở tốc độ rất cao
và các mạch vi xử lý ở bên ngoài sẽ thực hiện các hàm phức tạp
Trang 13Chương 1 Máy tinh - Phương pháp luận lập trình 15
Trang 14Chương 1 Máv tính - Phương pháp luận lập trình
Trang 15Chương 1 Máy tính - Phương pháp luận lập trình 17
Tính A X B
13 ACC
Trang 1618 Chương 1 Máy tinh - Phương pháp luận lập trình
c Bộ nhớ
Bộ nhớ của máy tính bao gồm các ô nhớ (memory cell) có địa chỉ, mỗi
ô nhớ chứa nhiều bít.
Từ mảy tính (computer word) là một đơn vị cơ bản của bộ nhớ Kích
thước của một từ là số bit của từ và được gọi là chiều dài từ (word length)
Mồi lần, máy tính xứ lý một từ
Ngày nay, byte (8 bit) là đơn vị đo lường của bộ nhớ máy tính, và hầu hết các máy tính đều cung cấp khá năng định địa chỉ byte (byte addressability), nghĩa là mồi byte có địa chỉ bộ nhớ duy nhất (unique memory address).
Mặc dù máy tính có thế là máy 32-bit, mồi bvte trong một từ máy tính
A-byte (32 bit) có địa chỉ duy nhất.
Các đơn vị đo lường cua bộ nhớ là:
Kilobyte là 1024 byte, hoặc 210 bvte.
Megabyte là 1.048.576 bvte, hoặc 220 bvte.
Gigabyte là 1.037.741.824 byte, hoặc 230 byte.
Tetrabyte là 1.009.511.627.776 bvte, hoặc 240 byte.
Petabyte là 1.125.899.906.842.624 byte, hoặc 250 byte.
Bộ nhớ được dùng để lưu các chỉ thị cùa chương trình và dừ liệu
Bộ nhớ chính (main memory) của máy tính là bộ nhở truy xuất ngẫu
nhiên (RAM - Random Access Memory).
Ta có thế truy xuất trực tiếp một ô nhớ bất kỳ với cùng một tốc độ
Các hoạt động cơ bản của bộ nhớ là lưu trữ (store, write) và nạp
(retrieve, fetch, load, read) Có ít nhất hai thanh ghi ư trong mạch điêu
khiến bộ nhớ giúp cho việc luư trữ và nạp được dề dàng, đó là:
- Thanh ghi bộ nhớ địa chỉ (MAR - Memory Address Register)
- Thanh ghi bộ nhớ dữ liệu (MDR - Memory Data Register)
Ghì vào bộ nhớ
1 Trước tiên, CPU chuyển giá trị cần ghi vào thanh ghi MDRvà chuyến địa chỉ của vị trí lưu trừ vào thanh ghi MAR.
Trang 17Chương 1 Máy tính - Phương pháp luận lập trình 19
2 ơ chu kỳ kế tiếp truy xuất bộ nhớ, giá trị trong thanh ghi MDRsẽ được chép vào vị trí có địa chi là nội dung của thanh ghi MAR.
Nạp từ bộ nhớ
1 Trước tiên, CPU lưu địa chí cần đọc vào thanh ghi MAR.
2 ơ chu kỳ kế tiếp truy xuất bộ nhớ, giá trị trong vị trí có địa chi là nội dung của thanh ghi MAR sẽ được nạp vào một trong các thanh
ghi cua CPU.
1.2.2 Phần mềm
Phần mềm máy tính (computer software), còn được gọi tắt là phần mềm (software), là tập hợp các chương trình máy tính (computer program),
còn được gọi là chương trình (program), và các dữ liệu (data) liên quan
được chứa trong bộ nhớ của máy tính
Phần mềm cung cấp các chỉ thị (instruction) cho máy tính phải làm gì
(what) và làm như thế nào (how) đe giải quyết một số vấn đề nào đó.
Phần mềm được chia thành hai loại: phần mềm hệ thống và phần mềm ứng dụng
a Phần mềm hệ thống
Phần mềm hệ thống (system software) là phần mềm chứa các lệnh
điều khiên hoạt động của phần cứng máy tính và cung cấp nền tảng
(platform) đê chạy phần mềm ứng dụng.
Các loại phần mềm hệ thống cơ bán gồm có:
- Phần mềm BIOS mảy tính (computer BIOS - Basic Input / Output
System) và phần dẻo thiết bị (device firmware) cung cấp chức năng
cơ bán đế điều khiến và vận hành các thiết bị gắn bên trong máy tỉnh
và các thiết bị kết nối với máy tính Phần dẻo (firmware) là phần mềm hệ thống được chứa trong bộ nhớ không thay đôi (non-volatile
memory) chăng hạn như mạch tích hợp (integrated circuit).
- Hệ điều hành (operating system) thực hiện những chức nãng cơ bản,
cho phép các thành phần cua máy tính làm việc chung vói nhau bàng cách thực hiện các công việc như truyền dừ liệu giữa bộ nhớ
(memory) và các đĩa từ (disk) hoặc xuất dừ liệu ra thiết bị hiến thị (display device) Hệ điều hành cung cấp nền tang đê chạy các phần
Trang 1820 Chương 1 Máy tính - Phương pháp luận lập trình
mềm hệ thống mức cao (high-level system software) và phần mềm
ứng dụng
- Phần mềm tiện ích (utility software) giúp phân tích, cấu hình, tối ưu
hóa và bảo trì máy tính
Các công cụ phát triển phần mềm {software development tool) và
một số phần mềm tiện ích khác cũng được xem là phần mềm hệ thống Ví
dụ, chưomg trình xử lý ngôn ngừ {language processor) gồm có trình biên dịch {compiler) và trình thông dịch {interpreter), chương trình liên kết
{linker), chương trình chẩn đoán lỗi {debugger), hệ quàn trị cơ sở dữ liệu {DBMS - DataBase Management System), chương trình điều khiển thiết bị {device driver), phần mềm quét vi-rút {virus scanner).
Hệ điều hành lả một phần mềm hệ thống phức tạp và quan trọng Ví
dụ, các hệ điều hành DOS, Microsoft Windows, Mac OS, Unix, Linux, .
Hệ điều hành cung cấp việc truy xuất một cách dễ dàng đến:
- các thiết bị ngoại vi như máy in {printer), màn hình {screen),
- hệ thống các tập tin {file system) dùng để lưu trừ thông tin như dừ
liệu, các tài liệu {document) và các chương trình {program),
- giao diện người sử dụng {user interface) để dễ dàng sù dụng các
chương trình ứng dụng {application program),
- đồng hồ {timer) và lịch {calendar),
- kết nổi với Internet bằng các giao thức mạng {networkprotocol) chuẩn,
- tập các thủ tục {procedure), các hàm {function) hoặc các phương thức
{method) mà chương trình ứng dụng có thế sử dụng đế yêu cầu các
dịch vụ {service) của hệ điều hành,
- giải thụật hiệu quà để cắp phát bộ nhớ cho các chương trình đang chạy đồng thời,
- giải thuật chia sè truy xuất đến máy tính cho nhiều người sử dụng hoặc chương trình chạy đồng thời
Trang 19Chương 1 Máy tinh - Phương pháp luận lập trình 21
Word Processing Graphics Speadsheets
Application Softwares
File Mgmt Tools Operating System Utilities
System S oftw ares
hoạt động (activity) bao gôm một hoặc nhiều công việc cụ thê có liên quan với nhau, giải quyết các vấn đề trong thực tế hay thể giới thực íreal world).
Các phần mềm ứng dụng gồm có phần mềm doanh nghiệp (enterprise
software), phần mềm ké toán (accounting software), phần mềm xử lý văn
bản (word processor), bảng tính (speadsheet), phần mềm đồ họa {graphics
software), Media Player, phần mem duyệt web {web browser), phần mềm
mô phỏng khoa học {scientific simulation),
Phần mềm ứng dụng không thể chạy được nếu không có hệ điều hành
và các tiện ích hệ thống {system utility).
Trang 2022 Chương 1 Máy tinh - Phương pháp luận lập trình
Phần mềm ứng dụng được chia làm hai loại: ứng dụng ngang và ứng dụng dọc
- ứng dụng ngang (horizontal application) là ứng dụng rất phổ biến
và được sử dụng rộng rãi trong các phòng ban của công ty
- ửng dụng dọc (vertical application) là ứng dụng chỉ dùng cho một loại nghiệp vụ riêng biệt hoặc cho một phòng ban cụ thể cùa công ty.
Các loại phần mềm ứng dụng gồm có:
- Bộ ứng dụng {application suite) bao gồm nhiều ứng dụng được gom
chung lại với nhau Chúng thường có các chức năng liên quan với nhau và có thể tương tác với nhau, ví dụ sử dụng chung các tập tin
ứng dụng doanh nghiệp (business application) thông thường là một
bộ ứng dụng, ví dụ Microsoft Office, bao gồm các ứng dụng chạy
chung với nhau gồm có xử lý văn bản, bảng tính, .; nhưng mỗi bộ ứng dụng đều có mục đích khác nhau như bộ ứng dụng về đồ họa, về
âm nhạc
- Phần mềm doanh nghiệp {enterprise sofware) chuyên giải quyết các
nhu cầu của các quá trình tô chức và luông dừ liệu, thông thường trong môi trường phân tán rộng lớn Ví dụ hệ thông tài chính
(financial system), hệ thống quàn lý quan hệ khách hàng {CRM - Customer Relationship Management) và phân mêm quản lý dây
chuyềri cung cap {supply-chain management software).
- Phần mềm cơ sở hạ tầng doanh nghiệp {enterprise infrastructure
software) cung cấp các chức năng chung cần thiết để hỗ trợ cho các
hệ thống phần mềm doanh nghiệp, bao gồm các cơ sờ dừ liệu
{database), dịch vụ thư điện tử {email server) và các hệ thống dùng
để quản trị mạng máy tính và bảo mật {security).
- Phần mềm dùng cho người làm về thông tin {information worker software) chuyên xử lý các nhu cầu của cá nhân đế tạo và quản lý
thông tin, thông thường dùng cho các dự án riêng của một phòng
ban, gồm có quản lý thời gian {time management), quản lý tài ngpyên {resources management), các công cụ lập tài liệu
{documentation tool), phần mềm phân tích {analytical sofware) và
phần mềm cộng tác {collaborative sofware) Các phần mềm xử lý văn bản, bảng tính, hệ thống thông tin {information system) cá nhân
và chương trình soạn thảo truyền thông {media editor) cá nhân có
thể giúp ích cho nhiều công việc của người làm về thông tin
Trang 21Chương 1 Máy tinh - Phương pháp luận lập trình 23
- Phần mềm truy cập nôi dung (content access software) là phần mềm
chủ yếu dùng để truy cập nội dung (có chỉnh sửa nội dung hoặc không), nhằm đáp ứng các nhu cầu của các cá nhân hoặc nhóm người
sử dụng để giải trí và tìm kiếm nội dung bằng kỹ thuật số, gồm có
Media Player, trình duyệt web (web browser) và các trò chơi.
- Phần mềm về giảo dục (educational software) liên quan đến phần
mềm truy cập nội dung và các đặc điểm thích hợp cho sinh viên và giảng viên để đánh giá qua các bài kiểm tra, theo dõi tiến độ thông qua tài liệu hoặc bao gồm các tính năng cộng tác
- Phần mềm mô phỏng (simulation software) là phần mềm máy tính
dùng để mô phỏng các hệ thống trừu tượng hoặc vật lý nhằm các mục đích nghiên cứu, đào tạo, giải trí
- Phần mềm phát triển phương tiện truyền thông (media development
software) chuyên giải quyết các nhu cầu của các cá nhân muốn tạo
tranh ảnh và phương tiện truyền thông điện tử (electronic media)
trong môi trường thương mại và giáo dục, gồm có các phần mềm
Graphic Art, Desktop Publishing, Multimedia Development, trinl:
soạn thảo HTML, trình soạn thảo Digital Animation, Digital Audio
and Video.
- ứng dụng di động (mobile application) chạy trên các thiết bị cầm tay
(hand-held device) ví dụ như điện thoại di động (mobile phone).
- Phần mềm kỹ thuật sản phẩnt (product engineering software) được
dùng để phát triển các sản phẩm phần cứng và phan mềm, gồm có
CAD (Computer-Aided Design), CAE (Computer-Aided Engineering),
các phần mem ngôn ngữ lập trình (dùng để viết chương trình và biên
dịch), IDE (Integrated Development Environment).
- Giao diện người sử dụng đồ họa (GUI - Graphical User Interface)
là một phần mềm cho phép chọn các lệnh từ các trình đơn (menu) khác nhau, các nút nhân (button) và các biêu tượng (icon) bằng cách
sử dụng chuột (mouse) Nó có giao diện thân thiện với người sử dụng
(user-friendly) Hệ điêu hành Microsoft Windows và Mac o s có các
giao diện người sử dụng đồ họa
Trang 2224 Chương 1 Máy tinh - Phương pháp luận tập trình
1.3 Hệ thống số
1.3.1 Các hệ thống số
Hệ thống chữ so (numeral system, system o f numeration) là một hệ
thông văn bản (writing system) đê biêu diên các sô {number), đó là các ký
hiệu toán học {mathematical notation) biểu diễn các số của một tập hợp cụ
thể bằng cách sử dụng các ký số {digit) hoặc các ký hiệu {symbol) theo một
cách thức nhất quán
Vi dụ 1.1: Chuỗi các kỷ hiệu "11" có thể được diễn giải là số "ba" trong hệ
nhị phân, là số "mười một" trong hệ thập phân.
Ta cần phân biệt hệ thống chữ sổ khác với hệ thẳng số {number
system) ví dụ như hệ thống sổ thực {system o f real numbers), hệ thong so
phức {system o f complex numbers) Tuy nhiên, trong thực tế, người ta
thường gọi hệ thống chữ sổ là hệ thông sô Tài liệu này sử dụng thuật ngữ
hệ thống số thay cho hệ thống chữ số
Hê thống đinh vi {positional system), còn được gọi là kỷ hiệu vị fri gid trị {place-value notation) là một hệ thông sô dựa vào vị trí của các ký sô
cùa một số để xác định giá trị của số này
Số lượng các ký số khác nhau để tạo ra một số trong một hệ thống số
được gọi là cơ số {base) của hệ thống số này.
- Hệ nhị phân {binary numeral system, binary system) có cơ so là 2,
Trang 23Chương 1 Máy tính - Phương pháp luận lập trình 25 Một Số number trong một hệ thống số cơ số b được ký hiệu là
number^hoặc {number) b
Giá trị của số (X4 X3 X2 Xi Xq) b được tính như sau:
Nguyên tắc chuyển đổi số Ncủa hệ thập phân thành số M cùa hệ thống
sổ cơ số b(cơ sổ 2, 8, 16) như sau:
- Đổ tính phần nguyên cùa sổ M,ta lấy phần nguyên của sổ N chia cho
cơ số btrong hệ thập phân.
- Để tính phẩn lẻ của số M,ta lấy phần !ẻ của số N nhân với cơ số b
trong hệ thập phân.
Lưu ỷ
Việc chuyển đổi một số cùa hệ thống số này thành một số của hệ thống số khác có thể không chính xác
Trang 2426 Chương 1 Máy tínli - Phương pháp luận lập trình
Bảng 1.1 Chuyển đổi giữa Hexadecỉmal, Binary, Octal và Decitnal
Ví dụ 1.3: Chuyển đổi số 18.75 trong hệ thập phân thành các sổ trong hệ nhị
phân, hệ bát phân và hệ thập lục phân