Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 1: Ôn lại các kiến thức cơ bản về máy tính

1.1 CÁC HỆ ĐẾM

1.1.1 Hệ thập phân

Ví dụ: Cc số sau đy được viết ở dạng phn tích trong

hệ thập phn

1986 D = 1.10 3+ 9.10 2 + 8.10 1 + 6.10 0

2460 d = 2.10 3+ 4.10 2 + 6.10 1 + 0.10 0

0.932 d = 9.10 -1+ 3.10 -2 + 2.10 -3

 

Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 1: Ôn lại các kiến thức cơ bản về máy tính trang 1

Trang 1

Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 1: Ôn lại các kiến thức cơ bản về máy tính trang 2

Trang 2

Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 1: Ôn lại các kiến thức cơ bản về máy tính trang 3

Trang 3

Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 1: Ôn lại các kiến thức cơ bản về máy tính trang 4

Trang 4

Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 1: Ôn lại các kiến thức cơ bản về máy tính trang 5

Trang 5

Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 1: Ôn lại các kiến thức cơ bản về máy tính trang 6

Trang 6

Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 1: Ôn lại các kiến thức cơ bản về máy tính trang 7

Trang 7

Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 1: Ôn lại các kiến thức cơ bản về máy tính trang 8

Trang 8

Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 1: Ôn lại các kiến thức cơ bản về máy tính trang 9

Trang 9

Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 1: Ôn lại các kiến thức cơ bản về máy tính trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 58 trang xuanhieu 6740
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 1: Ôn lại các kiến thức cơ bản về máy tính", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 1: Ôn lại các kiến thức cơ bản về máy tính

Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 1: Ôn lại các kiến thức cơ bản về máy tính
Ơ BẢN VỀ MÁY 
TÍNH
•Thường được viết thêm ký tự H hay h phía sau số đã 
có. 
1.1 CÁC HỆ ĐẾM
1.1.4 Hệ thập lục phân
Ví dụ 1.8: Một số hằng trong hệ hex:
12A H, 234.907 H, B800 h
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.1 CÁC HỆ ĐẾM
1.1.4 Hệ thập lục phân
Ví dụ 1.9:
F0 H = 15.16
1 
+ 0.16
0 
= 240 D
FF H = 15.16
1
+ 15.16
0
= 255 D
FFFF H= 15.16
3
+ 15.16
2
+ 15.16
1
+ 15.16
0 
= 65535 
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.1 CÁC HỆ ĐẾM
1.1.4 Hệ thập lục phân
Ký số hệ hex Tương ứng nhị
phân
Tương ứng
thập phân
0 0000 0
1 0001 1
2 0010 2
3 0011 3
4 0100 4
5 0101 5
6 0110 6
7 0111 7
8 1000 8
9 1001 9
A 1010 10
B 1011 11
C 1100 12
D 1101 13
E 1110 14
F 1111 15
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.1 CÁC HỆ ĐẾM
1.1.4 Hệ thập lục phân
Ví dụ1.10: Chuyển số từ hệ 16 qua hệ 2 và ngược lại
11 0101 1011 B = 35B H
3 5 B
3B H = 0011 1011 B = 111011 B
3 B
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.1 CÁC HỆ ĐẾM
1.1.5 Sự chuyển đổi qua lại giữa các hệ thống số
Hai nhóm chuyển đổi chính giữa các hệ thống số :
(1) Chuyển từ số hệ 10 sang các hệ còn lại.
(2) Ngược lại chuyển từ các hệ còn lại sang hệ 10.
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.1 CÁC HỆ ĐẾM
1.1.5 Sự chuyển đổi qua lại giữa các hệ thống số
Ví dụ 1.11: Chuyển số 27 trong hệ thập phân sang nhị 
phân ?
Ví dụ 1.12: Chuyển số 367 trong hệ thập phân sang hệ 
bát phân ?
Ví dụ 1.13: Chuyển số 367 trong hệ thập phân sang hệ 
thập lục phân ?
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.2 CÁC KHÁI NIỆM CƠ BẢN
1.2.1 Tin học 
Tin học là ngành khoa học xử lý thông tin tự động bằng 
máy tính điện tử. Ơû đây có ba khái niệm chính là xử lý, 
thông tin và máy tính.
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.2 CÁC KHÁI NIỆM CƠ BẢN
1.2.1 Tin học 
•Xử lý bao hàm khái niệm tính toán các dữ liệu mà
thông tin cung cấp.
•Thông tin là các dữ liệu đưa vào cho máy tính, đó chính
là các dữ liệu mà người sử dụng máy tính hoặc từ thiết
bị sử dụng ngoài nào đó đưa vào hay là dữ liệu do bản
thân máy tính tạo ra.
•Máy tính là thiết bị xử lý thông tin theo chương trình.
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.2 CÁC KHÁI NIỆM CƠ BẢN
1.2.2 Đơn vị tin học
1.2.2.1 Bit
•Bit là đơn vị cơ sở của thông tin. Một bit có thể có hai 
trạng thái. Đối với máy tính một bit có thể có hai trạng 
thái là 0 và 1.
•Nếu coi thông tin là một cái nhà thì bit có thể được coi 
như là “viên gạch” để tạo nên thông tin.
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.2 CÁC KHÁI NIỆM CƠ BẢN
1.2.2 Đơn vị tin học
1.2.2.2 Byte
•Byte là đơn vị thông tin nhỏ nhất, nó có thể được dùng 
để lưu mã của ký tự. 
•Một byte có 8 bit, do đó nó có thể biễu diễn được 256 
trạng thái số nhị phân khác nhau. 
•Hiện nay bộ nhớ máy tính cũng được tính theo đơn vị 
byte. 
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.2 CÁC KHÁI NIỆM CƠ BẢN
1.2.2 Đơn vị tin học
1.2.2.2 Byte
Các đơn vị bội của byte là KB (kilo byte), MB (mega 
byte), GB (giga byte) và TB (tera byte):
1KB = 2
10
byte = 1024 bytes
1 MB = 2
10
KB 
1 GB = 2
10
MB
1 TB = 2
10
GB 
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.2 CÁC KHÁI NIỆM CƠ BẢN
1.2.3 Máy tính
Máy tính là thiết bị hay công cụ dùng để lưu trữ và xử 
lý thông tin theo một chương trình định trước.
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.2 CÁC KHÁI NIỆM CƠ BẢN
1.2.3 Máy tính
Tùy theo tính năng và mục đích sử dụng người ta phân
ra bốn loại máy tính:
- Siêu máy tính (super computer): tốc độ tính từ
vài chục tới trăm Mips (Million instruction per second),
thường được sử dụng trong các trung tâm tính toán hay
mô phỏng lớn. Giá tiền của các máy tính này từ vài
triệu đô la Mỹ trở lên.
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.2 CÁC KHÁI NIỆM CƠ BẢN
1.2.3 Máy tính
Tùy theo tính năng và mục đích sử dụng người ta phân
ra bốn loại máy tính:
- Máy tính lớn (main frame): tốc độ tính từ vài
Mips tới vài chục Mips, trăm Mips, nhưng thường được
sử dụng làm máy tính chủ trong các hệ thống mạng lớn
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.2 CÁC KHÁI NIỆM CƠ BẢN
1.2.3 Máy tính
Tùy theo tính năng và mục đích sử dụng người ta phân
ra bốn loại máy tính:
- Máy tính trung (mini computer): có tốc độ
tính toán kém hơn máy tính lớn. Hiện nay do công nghệ
vi mạch ngày càng phát triển máy tính trung ngày càng
rẻ tiền, và có cấu hình ngày càng mạnh hơn trước.
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY
TÍNH
1.2 CÁC KHÁI NIỆM CƠ BẢN
1.2.3 Máy tính
Tùy theo tính năng và mục đích sử dụng người ta phân
ra bốn loại máy tính:
- Máy vi tính (micro computer), hay còn gọi là
máy tính cá nhân (personal computer) là máy tính được
sử dụng rộng rải trong gia đình hay công sở. Có hai họ
máy tính cá nhân phổ biến là PC (do hảng IBM thiết
kế) và Mac (do hảng Apple thiết kế).
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY
TÍNH
1.2 CÁC KHÁI NIỆM CƠ BẢN
1.2.4 Xử lý dữ liệu 
Dữ liệu nhập Tính toán Kết quả
Dữ liệu xuất
ĐẦU VÀO XỬ LÝ ĐẦU RA
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.2 CÁC KHÁI NIỆM CƠ BẢN
1.2.5 Bộ mã ký tự (tham khảo giáo trình)
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.3 LỊCH SỬ PHÁT TRIỂN CỦA MÁY TÍNH
(Tham khảo giáo trình )
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.4 CÁC THÀNH PHẦN CƠ BẢN CỦA MÁY TÍNH
ROM RAM I/O
Input device 
Output device
Address bus
Data bus
Control bus
Register
CU
ALU
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.5 PHẦN MỀM 
1.5.1 Định nghĩa
Phần mềm là toàn bộ các thủ tục đưa vào máy tính 
để máy thực hiện các chức năng xử lý theo mục tiêu của 
người lập trình.
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.5 PHẦN MỀM 
1.5.2 Ngôn ngữ cho máy tính
Ngôn ngữ dùng cho máy tính còn gọi là ngôn ngữ lập 
trình là toàn bộ các lệnh, các dữ liệu, các thủ tục được 
kết hợp lại với nhau theo nguyên tắc kết cấu mã tin và 
hệ lệnh mà ta gọi là cú pháp (syntax), đưa vào máy tính 
để máy thực hiện các chức năng xử lý theo mục tiêu của 
người lập trình.
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.5 PHẦN MỀM 
1.5.2 Ngôn ngữ cho máy tính
Có thể chia ngôn ngữ máy tính ra làm ba cấp một cách
tổng quát: cấp cao, cấp thấp và cấp máy
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.5 PHẦN MỀM 
1.5.2 Ngôn ngữ cho máy tính
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.5 PHẦN MỀM 
1.5.2 Ngôn ngữ cho máy tính
• Cấp cao nhất là ngôn ngữ tự nhiên của con người. 
• Các ngôn ngữ cấp cao cho phép người viết chương trình 
không cần phải hiểu hoạt động bên trong của máy tính. 
• Các lệnh của ngôn ngữ cấp cao sử dụng các từ tiếng Anh, 
các ký hiệu toán học thông thường do đó rất dễ sử dụng. Ví 
dụ cho các ngôn ngữ này là Pascal, Basic, Java, C/C++,  
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.5 PHẦN MỀM 
1.5.2 Ngôn ngữ cho máy tính
Đặc điểm của ngôn ngữ cấp cao là gần với con người, do 
đó chương trình viết bằng ngôn ngữ cấp cao có tính khả 
chuyển, tức có thể chạy trên nhiều hệ máy khác nhau, 
nhiều hệ điều hành khác nhau. 
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.5 PHẦN MỀM 
1.5.2 Ngôn ngữ cho máy tính
•Ngôn ngữ cấp thấp là trong đó mỗi lệnh tương ứng với
một lệnh của ngôn ngữ máy và tương ứng với tập lệnh
của CPU.
•Các lệnh và phép toán của ngôn ngữ cấp thấp thường có
tính gợi nhớ (menmonic) tới một từ tiếng Anh.
•Mỗi hãng thiết kế CPU khi thiết kế ra một CPU mới
đều quy định tập lệnh cho CPU. Hợp ngữ (Assembly
language) là một ví dụ cho ngôn ngữ này.
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.5 PHẦN MỀM 
1.5.2 Ngôn ngữ cho máy tính
Ngôn ngữ máy là ngôn ngữ trong đó mọi lệnh đều được 
viết dưới dạng mã nhị phân. Chương trình ở dạng này 
máy có thể thực thi được ngay.
Chương trình viết bằng ngôn ngữ cấp thấp và ngôn ngữ 
máy chỉ có thể chạy trên một hệ máy xác định nào đó mà 
thôi vì mỗi họ CPU chỉ có thể hiểu được mã máy mà 
hãng đã quy định cho nó.
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.5 PHẦN MỀM 
1.5.2 Ngôn ngữ cho máy tính
•Chương trình viết dưới dạng văn bản (ngôn ngữ cấp cao
hoặc cấp thấp) gọi là chương trình nguồn (source).
•Muốn đưa vào thực hiện trên máy, chương trình nguồn
phải được dịch sang ngôn ngữ máy.
•Có hai loại bộ dịch: chương trình biên dịch và chương
trình diễn dịch hay thông dịch.
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.5 PHẦN MỀM 
1.5.2 Ngôn ngữ cho máy tính
•Chương trình biên dịch (Compiler) dịch chương trình
nguồn một lần, thống kê và báo tất cả lỗi một lúc nếu có.
•Khó trong việc thống kê và sữa lỗi.
•Tiết kiệm nhiều thời gian.
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.5 PHẦN MỀM 
1.5.2 Ngôn ngữ cho máy tính
•Chương trình diễn dịch hay thông dịch xem từng lệnh
chương trình của nguồn là dữ kiện để thực thi. Thực hiện
xong một lệnh nếu có lỗi cú pháp (Syntax) thì báo, còn
không thì thực thi lệnh tiếp theo.
•Đơn giản dùng để lập và sửa chữa chương trình rất tiện
lợi.
•Tốn nhiềuthời gian.
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.5 PHẦN MỀM 
1.5.3 Chương trình
•Chương trình là tập hợp các lệnh được sắp xếp theo một
trình tự hợp logic để giải quyết một vấn đề nào đó trên
máy tính.
•Sản phẩm của chương trình đã được dịch gọi là phần
mềm (software).
•Có hai loại chương trình: chương trình phục vụ và 
chương trình ứng dụng.
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.5 PHẦN MỀM 
1.5.3 Chương trình
Chương trình phục vụ là chương trình bảo đảm cho máy
tính thực hiện các chức năng cơ bản.
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.5 PHẦN MỀM 
1.5.3 Chương trình
Chương trình ứng dụng là chương trình do người sử dụng 
khai thác sử dụng máy lập ra để giải quyết các yêu cầu xử 
lý cụ thể. Ngôn ngữ sử dụng chủ yếu là ngôn ngữ bậc cao 
như Pascal, C, Java, .
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.6 CÁC CẤP CHUYỂN ĐỔI 
Vấn đề (Problems) 
---------------------------------------------------------------------
Giải thuật (Algorithms)
---------------------------------------------------------------------
Ngôn ngữ (Language)
---------------------------------------------------------------------
Kiến trúc (ISA) máy (Machine Architecture) 
---------------------------------------------------------------------
Vi kiến trúc (Microarchitecture)
--------------------------------------------------------------------
Mạch (Circuits)
--------------------------------------------------------------------
Thiết bị (Devices)
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.6 CÁC CẤP CHUYỂN ĐỔI 
1.6.1 Đặt vấn đề
•Trước tiên, phải mô tả được vấn đề cần giải quyết bằng
ngôn ngữ tự nhiên như tiếng Việt, tiếng Anh, .
•Tuy nhiên, chúng ta không nên viết các lệnh đưa vào
máy tính bằng các ngôn ngữ tự nhiên này.
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.6 CÁC CẤP CHUYỂN ĐỔI 
1.6.2 Giải thuật 
•Ta cần chuyển các lệnh mô tả vấn đề sang dạng giải
thuật.
•Một giải thuật là một thủ tục theo trình tự từng bước từ
lúc bắt đầu cho tới lúc kết thúc.
•Mỗi bước đều được quy định trạng thái làm việc và được
máy tính thực thi.
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.6 CÁC CẤP CHUYỂN ĐỔI 
1.6.3 Chương trình
•Chuyển giải thuật thành chương trình máy tính bằng
một trong các ngôn ngữ lập trình đã biết.
•Các ngôn ngữ lập trình là các ngôn ngữ thuộc về máy,
mỗi câu đều có ý nghĩa, bắt máy tính thực thi một công
việc cụ thể.
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.6 CÁC CẤP CHUYỂN ĐỔI 
1.6.4 Kiến trúc ISA
•Chương trình ở ngôn ngữ cấp cao được dịch sang tập
lệnh của một máy tính.
•Kiến trúc tập lệnh (Instruction Set Architecture) là sự
quy định hoàn chỉnh cho sự tương tác giữa chương trình
đã được viết và phần cứng máy tính để thực thi tác vụ
của các chương trình.
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.6 CÁC CẤP CHUYỂN ĐỔI 
1.6.5 Vi kiến trúc 
•Chuyển lệnh ở kiến trúc tập lệnh sang dạng thực hiện. 
•Việc tổ chức chi tiết của quá trình thực hiện lệnh này 
được gọi vi kiến trúc (Microarchitecture). 
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.6 CÁC CẤP CHUYỂN ĐỔI 
1.6.5 Vi kiến trúc
Mô hình máy tính
Von Neuman 
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.6 CÁC CẤP CHUYỂN ĐỔI 
1.6.6 Mạch luận lý 
Bước này sẽ hiện thực mỗi phần tử của vi kiến trúc thành 
những mạch luận lý đơn giản. Ở bước này các nhà thiết 
kế sẽ phải lựa chọn để máy tính khi được thiết kế phải 
được thị trường chấp nhận, tức phải có sự phù hợp về giá 
cả và khả năng xử lý của máy tính.
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
1.6 CÁC CẤP 
CHUYỂN ĐỔI 
1.6.6 Mạch luận lý 
CHƯƠNG 1
ÔN LẠI CÁC KIẾN THỨC CƠ BẢN VỀ MÁY 
TÍNH
HỆ THỐNG MÁY TÍNH VÀ NGÔN NGỮ C
1.6 CÁC CẤP CHUYỂN ĐỔI 
1.6.7 Thiết bị 
Sau cùng, mỗi mạch luận lý cơ bản ở cấp luận lý sẽ được
hiện thực tương ứng bằng các mạch điện tử cụ thể. Với
các mạch cứng này, các lệnh cấp cao qua nhiều công đoạn
sẽ trở thành các bit 0 và 1, điều khiển các điện tử đóng
mở các thành phần mạch, từ đó quá trình thực hiện lệnh
sẽ diển ra.

File đính kèm:

  • pdfbai_giang_he_thong_may_tinh_va_ngon_ngu_c_chuong_1_on_lai_ca.pdf