3. Phần 1. Tin học căn bản
Các khái niệm cơ bản
Lịch sử phát triển của máy tính
Lịch sử phát triển của phần mềm
Tổ chức của máy tính
Biểu diễn dữ liệu trong máy tính
Mạng máy tính
Hệ điều hành
Giải quyết vấn đề bằng máy tính
5. 1. Các khái niệm cơ bản
Máy tính (thường được hiểu là phần cứng)được điều khiển
bởi phần mềm (ví dụ, là các lệnh bạn viết để ra lệnh cho
máy tính thực hiện hành động và tạo quyết định).
Máy tính là thiết bị điện tử có khả năng lập trình được mà
có thể lưu trữ, tìm kiếm và xử l{ dữ liệu.
Máy tính là một thiết bị có khả năng thực hiện tính toán và
tạo quyết định với tốc độ nhanh hơn con người hàng
triệu(thậm chí hàng tỉ) lần.
6. 1. Các khái niệm cơ bản
Máy tính xử lý dữ liệu dưới sự điều khiển của các tập các
lệnh được gọi là chương trình máy tính.
Những chương trình này điều khiển máy tính thực hiện
theo một tập các hành động được chỉ ra bởi người lập
trình (lập trình viên).
Máy tính bao gồm các thiết bị khác nhau gọi là phần cứng
(ví dụ., bàn phím, màn hình, chuột, ổ cứng, bộ nhớ,
CD/DVDs và bộ xử lý).
Các chương trình mà chạy trên máy tính được gọi là phần
mềm
8. Lịch sử phát triển của máy tính
ENIAC, một trong hai chiếc máy tính điện tử đầu tiên
9. Lịch sử phát triển của
máy tính
Lịch sử phát triển của máy tính điện tử thực sự
bắt đầu từ 1951, cho tới này đã trải qua 4 thế
hệ
Thế hệ 1 (1951-1959):
Sử dụng đèn chân không để lưu thông tin
Bộ nhớ : trống từ
Đầu vào: bìa đục lỗ
Kích thước lớn, tiêu thụ năng lượng nhiều
Tốc độ: 300 - 3.000 phép tính/s
EDVAC (Mỹ), BESEM (Liên Xô cũ) …
11. Lịch sử phát triển của máy tính
Thế hệ 2(1959-1965):
Transitor thay cho đèn chân
không
Bộ nhớ : dùng các hạt từ
(magnetic cores)
Lưu trữ: bằng đĩa từ
Kích thước vẫn lớn
Tốc độ 10.000 -100.000 phép tính/s
IBM-1070 (Mỹ) hay MINSK (Liên Xô cũ),….
13. Lịch sử phát triển của máy tính
Thế hệ 3(1965-1971):
Sử dụng các mạch tích hợp (IC), nhỏ, rẻ và nhanh hơn
Bộ nhớ dùng transitor
Đã có bàn phím và màn hình
Tốc độ 100.000 - 1 triệu phép tính/s
IBM-360 (Mỹ)
hay EC (Liên Xô cũ),...
15. Lịch sử phát triển của máy tính
Thế hệ 4(1971-?)
Máy tính sử dụng các mạch tích hợp cỡ lớn
Ra đời máy tính cá nhân (PC-Personal Computer)
Máy trạm workstations, khả năng tính toán mạnh hơn PC,
sử dụng trong thương mại
Tốc độ hàng chục triệu đến hàng tỷ phép tính/s
Pentium I, Pentium II …
Định luật Moore: “Máy tính sẽ tăng gấp đôi khả năng tính toán
với cùng mức giá hoặc giảm giá chỉ còn một nửa với cùng khả
năng tính toán cứ sau 18 tháng”
18. Lịch sử phát triển của phần mềm
Bắt đầu cùng với sự phát triển của máy tính điện tử đầu tiên,
cho đến nay đã trải qua 5 thời kz
Thế hệ 1(1951-1959)
Chương trình đầu tiên được viết
bằng ngôn ngữ máy (mã 0,1)
Lập trình viên phải nhớ các
lệnh biểu diễn bằng mã máy
Việc lập trình rất tốn thời gian và có nhiều lỗi
Ra đời ngôn ngữ assembly sử dụng các từ gợi nhớ thay
cho các lệnh bằng mã máy
Chương trình assembler dịch các từ gợi nhớ thành mã
máy.
19. Lịch sử phát triển của phần mềm
Thế hệ 2(1959-1965):
Sự ra đời của các
ngôn ngữ lập trình
bậc cao
FORTRAN, COBOL, Lisp
Mỗi ngôn ngữ có chương trình dịch sang ngôn ngữ máy
riêng gọi là compiler.
Người lập trình hệ thống: người viết những công cụ như
assembler và trình biên dịch
Người lập trình ứng dụng: là người sử dụng các công cụ
để viết các chương trình
20. Lịch sử phát triển của phần mềm
Thế hệ 3 (1965-1971)
Sự ra đời của hệ điều hành để điều khiển máy tính
Hệ điều hành, chương trình dịch và các chương trình tiện
ích được gọi là phần mềm hệ thống
Các chương trình ứng dụng với mục đích chung được ra
đời,
Statistical Package for the Social Sciences (SPSS)
Người sử dụng máy tính không phải là lập trình viên
21. Lịch sử phát triển của phần mềm
Khoảng cách giữa người dùng và phần cứng ngày càng trở nên
rộng
22. Lịch sử phát triển của phần mềm
Thế hệ 4(1971-1989):
Kỹ thuật lập trình cấu trúc ra đời
Pascal và Modula-2, BASIC, C và C++
Hệ điều hành tốt hơn, mạnh hơn
UNIX, PCDOS,MS-DOS
Phần mềm phát triển mạnh, người dùng không có kinh
nghiệm lập trình có thể dùng
spreadsheets, word processors, và database
management systems
Lotus 1-2-3, WordPerfect, dBase IV
23. Lịch sử phát triển của phần mềm
Thế hệ 5 (1990-nay)
ảnh hưởng của Microsoft, lập trình hướng đối tượng và
World Wide Web
26. Nội dung
Các loại hệ thống số
Dữ liệu và máy tính
Biểu diễn số nguyên
Biểu diễn số thực
Biểu diễn văn bản (text)
Biểu diễn âm thanh
Biểu diễn hình ảnh
Biểu diễn video
27. 1.4.1 Các hệ thống số
•Các loại số
•Số tự nhiên
•Hệ nhị phân
•Chuyển đổi số giữa các hệ cơ số
•Giá trị nhị phân và máy tính
28. Các loại số
Số là một đơn vị thuộc hệ thống toán học cơ bản, là đối tượng
của luật liên tiếp, cộng, và nhân.
Số biểu diễn một giá trị và các phép toán phù hợp có thể áp
dụng trên những giá trị này.
Số tự nhiên: 0,1,…
Số âm: -1, -45
Số nguyên: 1, 2, 4, -3
Số hữu tỉ: 1.03, 1.4, 1.0
29. Số tự nhiên
Số 934 biểu diễn giá trị bao nhiêu ?
934 = 900 + 30 + 4 ?
Cơ số của một hệ đếm biểu diễn số lượng số được dùng trong
hệ đếm
Hệ 2: 0,1
Hệ 8: 0, 1, 2, 3, 4, 5, 6, 7
Hệ 10: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
30. Số tự nhiên
Vị trí ký hiệu(positional notation):
Ký hiệu phải nhất biểu diễn giá trị của nó nhân với hệ số cơ
sở mũ 0
Ký hiệu trái nhất biểu diễn giá trị của nó nhân với số lần hệ
số cơ sở từ vị trí đó tới mũ đầu tiên.
Giá trị 943 trong hệ cơ số 10
31. Số tự nhiên
Giá trị của một số bất kz
với cơ số x là :
1 1 0
..
n n
a a a a
1 1 0
1 1 0
* * .. * *
n n
n n
a x a x a x a x
34. Số tự nhiên
Hệ nhị phân: là hệ cơ số đếm quan trọng trong máy tính
dùng 2 số {0,1}
Hệ cơ số 8 (hệ octa) và 16 (hệ hexadecimal) là các hệ cơ số
giúp chúng ta viết gọn hệ nhị phân
Hệ cơ số 8: dùng các chữ số 0,1,2,3,4,5,6,7
Hệ cơ số 16: dùng các chữ số 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
Ký hiệu Giá trị
(trong hệ 10)
Ký hiệu Giá trị
(trong hệ 10)
A 10 D 13
B 11 E 14
C 12 F 15
35. Số tự nhiên
Tính giá trị của các số sau trong hệ cơ số 10
A(8) = 1234
A(8) = 12001
A(16) = 11FF
A(16) = 2A0D
A(2) = 1101
A(2) = 1100 0011
A(2) = 1000 0010
36. Số tự nhiên
Các phép toán trên các hệ cơ số đếm
Các phép toán trên hệ cơ số 10:
3+2, 1+9, 5-3, …
Các phép toán trên hệ cơ số đếm khác cũng dựa trên ý
tưởng tương tự như trên hệ cơ số 10
Các phép toán trên hệ nhị phân
0+1 là 1
1+1 là 0 nhớ 1
37. Phép toán trên hệ nhị phân
Thực hiện cộng các số nhị phân sau:
a) 1010 1000 và 0101 0010
b) 1010 và 1010 0001
c) 101 và 10 110
0010 1010 ( 42)
0110 1011 (107)
1001 0101 (149)
+
0101 010
38. Phép toán trên hệ nhị phân
Phép trừ:
1010 1001 (169)
0110 1011 (107)
0011 1110 ( 62)
-
0222 222
1111 11
113
57
056
-
11
39. Phép toán trên hệ nhị phân
Thực hiện trừ các số nhị phân sau
a) 1001 0011 và 1000 1101
b) 1010 1010 và 1110
c) 1110 1110 và 1000 1000
d) 1000 0000 và 0111 0111
40. Phép toán trên hệ nhị phân
Phép nhân
1011 (11)
1101 (13)
1011
0000
1011
1011
10001111 (143)
41. Phép toán trên hệ nhị phân
Phép chia
1001 0011 1011
101 1 00001101
11 1
11 10
10 11
0 11
0 111
0 1111
1011
100
-
-
-
147/11 = 13 và dư 4
42. Hệ nhị phân
(hệ 2)
Hệ bát phân
(hệ 8)
Hệ thập lục phân
(hệ 16)
Hệ thập phân
(hệ 10)
000 0 0 0
001 1 1 1
010 2 2 2
011 3 3 3
100 4 4 4
101 5 5 5
110 6 6 6
111 7 7 7
1000 10 8 8
1001 11 9 9
1010 12 A 10
1011 13 B 11
1100 14 C 12
1101 15 D 13
1110 16 E 14
1111 17 F 15
43. Số tự nhiên
Chuyển đổi số hệ 10 sang các hệ khác:
Trong khi số cần đổi còn khác 0
Chia số cần đổi cho hệ cơ số cần đổi
Phần dư là số tiếp theo ở bên trái kết quả
Thay số cần đổi bằng phần nguyên của phép chia
44. Đổi số sang hệ cơ số mới
2748 16
12 171 16
11 10 16
10 0
Kết quả: 10 11 12
chuyển thành các số tương ứng trong hệ 16 là ABC
45. Đổi số sang hệ cơ số mới
Hãy đổi các số hệ 10 sau
a) 1023 sang số trong hệ 16
b) 1034 sang số trong hệ 8
c) 102 sang số trong hệ nhị phân
Đổi số sau từ hệ 16 sang hệ nhị phân 12AC
46. Giá trị nhị phân và máy tính
Các máy tính đầu tiên là máy thập phân, các máy tính hiện đại
ngày nay đều là máy nhị phân – dùng hệ nhị phân để biểu diễn
số.
Thực tế không chỉ có số mà các dữ liệu và câu lệnh đều được
biểu diễn bằng số nhị phân trong máy tính.
Mỗi đơn vị nhớ trong máy tính chứa tín hiệu điện thế thấp
hoặc điện thế cao, tương ứng với giá trị 0 hoặc 1.
Các đơn vị nhớ này không thể có trạng thái trống mà chỉ có
thể hoặc là 0 hoặc là 1.
47. Giá trị nhị phân và máy tính
Mỗi đơn vị nhớ trong máy tính gọi là 1 binary digit, viết tắt là
bit.
Các bit được nhóm lại với nhau thành byte (8bit), word (1 hay
nhiều byte tùy thuộc và từng máy)
Máy IBM 370 (máy 32 bit) có half word (2 byte), full word
(4 byte) và double word(16 byte)
1001 0011 1010 0001
Byte 1 Byte 2
Word
49. Dữ liệu và máy tính
Dữ liệu (data): Là biểu diễn của thông tin bằng các tín hiệu vật l{.
Không có dữ liệu thì máy tính là vô dụng!
Mỗi thao tác của máy tính đều là xử lý dữ liệu theo một cách nào
đó.
Trong quá khứ máy tính xử lý với 2 loại dữ liệu là số và văn bản
(text). Ngày nay máy tính thực sự là thiết bị đa phương diện
(multimedia) xử lý một số lượng lớn các loại dữ liệu khác nhau
Số
Văn bản (text)
Âm thanh
Hình ảnh
Video
50. Dữ liệu và máy tính
Dữ liệu trong máy tính còn được nén (giảm không gian cần thiết
để lưu trữ dữ liệu), mã hóa (bảo vệ dữ liệu khỏi sự truy nhập bất
hợp pháp)
Tỉ lệ nén: chỉ ra lượng dữ liệu được giảm bao nhiêu
Tỉ lệ nén = kích thước dữ liệu được nén/ kích thước ban đầu
Nén mất mát thông tin (lossy) và nén không mất mát thông tin
(lossless): cho biết dữ liệu sau khi khôi phục có đúng như trước khi
nén hay không.
51. Dữ liệu và máy tính
Thông tin tương tự và thông tin số:
Trong tự nhiên hầu hết là liên tục và vô hạn
Trục số: các giá trị là vô hạn từ số nhỏ đến lớn
Màu sắc trong tự nhiên là liên tục
Máy tính là hữu hạn: không thể biểu diễn thế giới vô hạn
trong máy tính
Thông tin biểu diễn dưới 2 dạng:
Tương tự (analog) biểu diễn liên tục, theo đúng cái mà
thông tin biểu diễn
Dạng số (digital) biểu diễn rời rạc, chia thông tin thành các
phần tách rời
52. Dữ liệu và máy tính
Thông tin tương tự và thông tin số
Nhiệt kế là một thiết bị tương tự
Để biểu diễn thông tin từ thế giới ngoài vào máy tính thì
trước hết chúng ta phải rời rạc hóa!
Những phần tử rời rạc sau đó sẽ được biểu diễn bằng số
nhị phân trong máy tính
53. Biểu diễn bằng giá trị nhị phân
Một bit có 2 giá trị nên chỉ có thể biểu diễn được 2 trạng thái.
Vd. Biểu diễn nóng, lạnh chỉ cần 1 bit là đủ
Để biểu diễn nhiều hơn 2 trạng thái thì ta cần nhiều bit
Vd. Biểu diễn 4 trạng thái: rất cao, cao, trung bình, thấp ta
cần 2 bit
Quy ước giá trị các bit nào biểu diễn trạng thái nào là do ta tùy
ý chọn.
55. 1.4.3 Biểu diễn số nguyên
•Biểu diễn số âm
•Mã bù 2
•Tràn số
56. Biểu diễn số nguyên
Biểu diễn số:
Số là kiểu dữ liệu hay gặp nhất trong máy tính
Thường không cần sự ánh xạ rõ ràng giữa giá trị nhị phân
và giá trị số.
Biểu diễn số âm
57. 57
Biểu diễn số nguyên không dấu
Dùng 8 bit (1 byte)
Dải biểu diễn là [0, 255]
0000 0000 = 0
0000 0001 = 1
0000 0010 = 2
0000 0011 = 3
.....
1111 1111 = 255
Trục số học:
0 1
2
3
255
254
Trục số học máy tính:
0 1 2 255
58. Biểu diễn số âm
Thực hiện cộng hoặc trừ với một số có dấu có thể mô tả giống
như là dịch đi trên trục số một số lần nút đơn vị, theo chiều
tăng hoặc chiều ngược lại.
Vấn đề với biểu diễn số có dấu:
Tồn tại 2 số 0 là +0 và -0.
cần một phương pháp biểu diễn số có dấu khác
59. Biểu diễn số âm
Nếu số lượng số là cố định(VD 100): ta chia trục số làm 2 phần
Từ 0-49 biểu diễn số dương
Từ 50-99 biểu diễn số âm
60. Biểu diễn số âm
Cộng hai số: thực hiện cộng như bình thường, nhưng loại bỏ
những phần vượt quá (vd bỏ các chữ số hàng trăm).
Cộng hai số cùng dấu: thực hiện như bình thường.
Cộng hai số khác dấu
Chuyển về số dương
tương ứng, rồi cộng
sau đó chuyển đổi
kết quả nếu cần
61. Biểu diễn số âm
Trừ hai số:
Trừ hai số bằng cách cộng với giá trị âm của nó
( )
A B A B
62. Biểu diễn số âm
Cách biểu diễn số âm là :
(k là số lượng chữ số)
Cách biểu diễn số âm trên là bù 10
Cách biểu diễn trên làm việc tính toán với máy tính dễ dàng
hơn
( ) 10k
So am x x
63. Biểu diễn số âm
Trong máy tính, số âm biểu diễn
bằng bù hai
Cách cộng và trừ hoàn toàn giống
với số âm bằng bù 10
64. Biểu diễn số âm
Cách tìm số âm của 1 số nhị phân :
VD: 101, với số lượng chữ số (số bit) là 4
Số âm của 101 = 10000 – 101 = 1011
Tips: 10000 = 1111+1
Số âm của 101 = (1111-101) + 1
Tính 1111-101: chỉ cần đảo các bit
của 101 - Bit 0 thành 1 và 1 thành 0
101 ( 5)
1011 (-5)
1 0000 ( 0)
+
65. Biểu diễn số âm
Chuyển đổi giá trị số về hệ 10 :
VD. 1011 (-5) = −𝟏 ∗ 𝟐𝟑 + 𝟎 ∗ 𝟐𝟐 + 𝟏 ∗ 𝟐𝟏 + 𝟏 ∗ 𝟐𝟎
Tổng quát với số nguyên có dấu biểu diễn bằng n bit
𝐴 = 𝑎𝑛−1𝑎𝑛−2 … 𝑎1𝑎0 = −𝑎𝑛−1 ∗ 2𝑛−1
+ 𝑎𝑛−2 ∗ 2𝑛−2
+. . +𝑎0 ∗ 20
66. Biểu diễn số âm
Ví dụ: Tìm số âm của các số sau (sử dụng mã bù 2)
a) 100 số chữ số là 4
b) 1011 số chữ số là 8
c) 11000 số chữ số là 8
d) 111111 số chữ số là 8
67. Biểu diễn số âm
Nhận xét:
Biểu diễn số âm bằng mã bù 2: bit đầu tiên của số âm luôn
là 1, số dương là 0
Nếu sử dụng k chữ số (k bit) để biểu diễn số có dấu thì
biểu diễn được các số dương từ 0 ÷ (2k-1 -1) và số âm
trong khoảng -1 ÷ -2k-1
68. Biểu diễn số âm
Tràn số
Tổng hai số cùng dấu lại là một số khác dấu !
Tràn số là ví dụ của vấn đề chuyển thế giới vô hạn vào máy hữu
hạn!
0011 ( 3)
0111 ( 7)
1010 (-6)
1010 (-3)
1001 (-7)
1 0011 ( 3)
+ +
70. Biểu diễn số thực
Trong tin học ta gọi giá trị thực là các giá trị không nguyên (mà có
thể biểu diễn được)
Số thực gồm 2 phần: phần nguyên và phần thập phân (phần lẻ)
VD: Các số thực trong hệ 10 như 104.32 0.999999 357.0 và
3.14159
Giá trị được biểu diễn bởi số trong hệ cơ số x
1 2
1 1 0 1 2 1 0 1 2
.. . .. .. ..
n m
n m n m
n
a a a a bb b a x a x a b x b x b x
Dấu ‘.’ được gọi là điểm ngăn cách giữa phần nguyên và phần
lẻ
71. Biểu diễn số thực
Biểu diễn số thực trong hệ nhị phân
Ví dụ: Tìm giá trị của các số thực sau
1000.101
1010 0100.0011
3 2 0 1 3 4
(2) (10)
1101.1011 2 2 2 2 2 2 11.6875
72. Biểu diễn số thực
Chuyển số thực từ hệ 10 sang hệ nhị phân:
Tách số thành phần nguyên và phần thập phân
Phần nguyên chuyển sang hệ nhị phân bằng cách chia liên
tiếp cho 2
Phần thập phân chuyển sang bằng cách nhân liên tiếp với 2
0.125
2
0.250
2
0.500
2
1.000
12.125 = 1100.001(2)
1100 001
73. Biểu diễn số thực
Cách biểu diễn số thực trên có nhiều hạn chế khi áp dụng trên
máy tính trên máy tính ta áp dụng cách biểu diễn bằng số
thực dấu phảy động.
Số thực dấu phảy động : ta lưu trữ giá trị thực như một giá trị
nguyên
Một giá trị thực gồm 3 phần:
Dấu (chỉ ra số dương hay âm)
Số (chỉ ra các chữ số trong số thực)
Mũ (chỉ ra dấu ‘.’ phải dịch như thế nào trong phần số)
74. Biểu diễn số thực
Nếu mũ có giá trị dương thì dịch ‘.’ sang phải, nếu giá trị âm thì
dịch sang trái
Số thực dấu
phảy động
trong hệ 10
* *10mu
dau giatri
75. Biểu diễn số thực
Biểu diễn số thực dấu phảy động bằng số nhị phân
Để lưu trữ trong máy tính, ta lưu trữ cả 3 giá trị này
VD. Dùng 32 bit (4 byte) để lưu trữ 1 số thực thì
1 bit biểu diễn dấu (0 là dấu +, 1 là dấu -)
8 bit biểu diễn phần mũ
23 bit biểu diễn phần số
Dải giá trị từ 10-38 đến 10+38.
* *2mu
dau giatri
76. Biểu diễn số thực
Dùng 64 bit (8 byte) để lưu trữ 1 số thực thì
1 bit biểu diễn dấu (0 là dấu +, 1 là dấu -)
11 bit biểu diễn phần mũ
52 bit biểu diễn phần số
Dải giá trị từ 10-308 đến 10+308
77. Biểu diễn số thực
Các phép toán với số thực dấu phảy động
N1 ± N2 = (M1 x RE1-E2 ± M2) x RE2
N1 x N2 = (M1x M2) x RE1+E2
N1 /N2 = (M1 / M2) / RE1-E2
78. Biểu diễn số thực
Biểu diễn số thực dấu phảy động khoa học (Scientific notation) :
dấu phảy luôn nằm bên phải chữ số ngoài cùng bên trái nhất.
Trong nhiều ngôn ngữ, cách biểu diễn này là mặc định khi in ra số
thực
VD. 12001.32708 sẽ được in ra là 1.200132708E+4
Chuẩn IEEE754/85 : quy định thống nhất việc biểu diễn số thực
trên máy tính
79. Biểu diễn số thực
Chuẩn IEEE 754/85:
Type
Dấu
(sign)
Mũ
(Exponent)
Độ lệch mũ
(Exponent Bias)
Giá trị
(fraction)
Tổng
cộng
(bit)
Half (IEEE
754-2008)
1 5 15 10 16
Single 1 8 127 23 32
Double 1 11 1023 52 64
Quad 1 15 16383 112 128
( 1) 2 (1 )
sign exponent exponentbias
v fraction
80. Biểu diễn số thực
Chuyển đổi số thực biểu diễn theo chuẩn IEEE 754/85
Chuyển đổi số thực đó về dạng nhị phân
Chuyển số đó về dạng ±1. 𝑎𝑎𝑎𝑎 × 2𝑏
Xác định các giá trị : dấu, số mũ và phần giá trị
81. Biểu diễn số thực
VD. 10.25
Chuyển về nhị phân : 1010.01
Chuyển về dạng ±1. 𝑎𝑎𝑎𝑎 × 2𝑏
:1.01001 × 23
Các giá trị:
Dấu = 0 (vì số dương)
Mũ = 127 + 3 = 130 (=1000 0010)
Giá trị = 01001
A = 0100 0001 0010 0100 0000 0000 0000 0000
= 41 24 00 00(16)
82. 82
Trục số biểu diễn
Dạng 32 bit: a = 2-127 ≈ 10-38 b = 2+127 ≈ 10+38
Dạng 64 bit: a = 2-1023 ≈ 10-308 b = 2+1023 ≈ 10+308
Dạng 80 bit: a = 2-16383 ≈ 10-4932 b = 2+16383 ≈ 10+4932
-0 +0
-a b
-b a
underflow
overflow overflow
¥
¥
83. Biểu diễn số thực
1. Xác định giá trị của các số thực biểu diễn bởi IEEE754/85 (32 bit) sau
a) 41 75 00 00(16)
b) EC 12 A0 00(16)
2. Tìm biểu diễn của các số thực sau theo chuẩn IEEE754/85 (32 bit)
a) 17.625
b) 61.3125
c) -27.0625
d) -100.125
84. 1.4.5 Biểu diễn văn bản (text)
•Biểu diễn văn bản
•Nén văn bản
85. Biểu diễn văn bản – text
Văn bản (text): có thể chia thành các đoạn văn, câu, từ và các
ký tự
Biểu diễn văn bản: biểu diễn các ký tự xuất hiện trong văn bản,
và lưu trữ các ký tự đó trong máy tính
Phân biệt văn bản text và document
Text chỉ gồm các ký tự, không có bất kz định dạng nào
(notepad)
Document ngoài các ký tự có các định dạng còn có thể có
ảnh, âm thanh,… (MS Word, wordpad)
86. Biểu diễn văn bản – text
Biểu diễn ký tự: số lượng ký tự là hữu hạn. Biểu diễn mỗi ký tự
bằng một chuỗi số nhị phân.
Lưu trữ mỗi ký tự trên máy bằng cách lưu chuỗi số nhị phân
tương ứng
Bảng ký tự: là một danh sách ký tự và mã nhị phân tương ứng
để biểu diễn cho ký tự đó.
VD. Bảng mã ASCII và bảng mã Unicode
87. Biểu diễn văn bản – text
Nửa đầu bảng mã ASCII (0-127)
88. Biểu diễn văn bản – text
Một vài ký tự trong bảng mã Unicode-16
89. Biểu diễn văn bản – text
Nén văn bản để lưu trữ và truyền văn bản một cách hiệu quả
trong máy, và giữa các máy khác nhau trên mạng
3 phương pháp mã hóa văn bản hay dùng
keyword encoding
run-length encoding
Huffman encoding
90. Biểu diễn văn bản – text
keyword encoding – mã hóa từ khóa
Là phương pháp mã hóa từ khóa
Mã hóa những từ thường xuyên xuất hiện bằng một ký tự
đặc biệt
91. Biểu diễn văn bản – text
Văn bản ban đầu: 349 ký tự (kể cả các dấu)
The human body is composed of many independent systems, such as
the circulatory system, the respiratory system, and the reproductive
system. Not only must all systems work independently, they must
interact and cooperate as well. Overall health is a function of the
well-being of separate systems, as well as how these separate systems
work in concert.
Văn bản sau mã hóa: 314 ký tự
The human body is composed of many independent systems, such
^ ~ circulatory system, ~ respiratory system, + ~ reproductive system.
Not only & each system work independently, they & interact +
cooperate ^ %. Overall health is a function of ~ %-being of separate
systems, ^ % ^ how # separate systems work in concert.
Tỉ lệ nén : 314/349 = 0.9
92. Biểu diễn văn bản – text
run-length encoding – mã hóa loạt dài
Sử dụng trong trường hợp một ký tự được lặp đi lặp lại liên
tiếp nhiều lần, VD trong chuỗi ADN, hoặc luồng dữ liệu lớn.
Thay thế chuỗi ký tự lặp lại bằng ký tự cờ + ký tự được lặp và
theo sau là số lần lặp
Ví dụ : AAAAAA được mã hóa là *A6
*n5*x9ccc*h6 some other text *k8eee
Là mã hóa của
nnnnnxxxxxxxxxccchhhhhh some other text kkkkkkkkeee
Tỉ lệ mã hóa 35/51=0.68
93. Biểu diễn văn bản – text
Huffman Encoding – mã hóa Huffman
Mã hóa dựa trên tần suất xuất hiện của ký tự(hoặc từ)
trong văn bản. Ký tự (hoặc từ) nào xuất hiện thường xuyên
thì được mã hóa bằng chuỗi mã ngắn và ngược lại.
Ví dụ: mã hóa cho DOORBELL
ta được chuỗi mà hóa nhị phân là
11000001001111010101
Nếu dùng từ mã độ dài
cố định(VD 8bit) để mã hóa
cho ký tự thì cần 8*8=64 bit
Tỉ lệ nén : 20/64=0.31
Huffman Code Character
111 B
110 D
101 E
100 R
01 L
00 O
94. 1.4.6 Biểu diễn âm thanh (audio)
•Biểu diễn âm thanh
•Các chuẩn nén âm thanh
95. Biểu diễn âm thanh
Âm thanh trong tự nhiên là do sóng trong không khí tác động
tới màng nhĩ
96. Biểu diễn âm thanh
Dàn âm thanh gửi tín hiệu điện tới loa để tạo ra âm thanh.
Tín hiệu điện là tín hiệu tương tự (là các dao động điện).
Loa sẽ chuyển dao động này thành dao động của không khí,
tạo ra âm thanh.
Biểu diễn âm thanh trên máy, ta phải rời rạc hóa nó thành các
phần mà ta có thể biểu diễn được.
97. Biểu diễn âm thanh
Chuyển đổi tính hiệu điện liên tục của điện thế thành chuỗi
các giá trị rời rạc (quá trình lấy mẫu)
98. Biểu diễn âm thanh
Để tạo ra âm thanh: từ các giá trị điện thế lưu trong máy, ta
tạo lại tín hiệu liên tục.
Nếu tốc độ lấy mẫu đủ lớn thì ta sẽ tạo ra được âm thanh
giống với âm thanh thực
Tốc độ lấy mẫu 40,000 lần/s là đủ để tạo âm thanh với chất
lượng tin cậy
Nếu tốc độ lấy mẫu thấp thì ta sẽ nghe thấy âm thanh bị biến
dạng
Tốc độ lấy mẫu cao thì chất lượng âm thanh tốt, nhưng dung
lượng lưu trữ lớn.
Tốc độ lấy mẫu lớn đến một mức nào đó tai người không phân
biệt được sự khác biệt.
99. Biểu diễn âm thanh
Đĩa CD là một cách lưu trữ âm thanh: rãnh đĩa biểu diễn các giá
trị nhị phân
Đọc bằng tia laser
100. Biểu diễn âm thanh
Các định dạng lưu trữ âm thanh phổ biến là
WAV, AU, AIFF, VQF, MP3, WMA
Đều dựa trên việc lưu trữ giá trị điện thế
Khác nhau ở cách lưu trữ và các phuuwong pháp nén được
dùng
Thông dụng nhất là MP3 (MPEG-2, audio layer 3 file)
Bao gồm cả nén mất mát và không mất mát
Phân tích các tần số, loại bỏ các tần số mà tai người không
nghe được (20-20,000 Hz)
Mã hóa các chuỗi bit dùng Huffman
101. 1.4.7 Biểu diễn hình ảnh và đồ
họa(image & graphic)
•Biểu diễn màu sắc
•Ảnh số và đồ họa
•Các định dạng lưu trữ ảnh
102. Biểu diễn hình ảnh và đồ họa
Biểu diễn màu sắc:
Màu sắc là cảm nhận về sự biến đổi tần số của ánh sáng
tới võng mạc
Võng mạc có 3 loại tế bào cảm nhận màu sắc tương ứng
với 3 tần số khác nhau, các loại tế bào quang đó tương
ứng với các màu đỏ, xanh lá cây và xanh nước biển
(R,G,B).
Các màu sắc khác là sự tổ hợp của 3 màu sắc cơ bản đó
Màu sắc biểu diễn trên máy tính bằng một bộ 3 giá trị
RGB. Mỗi giá trị nằm trong khoảng từ 0-255
103. Biểu diễn hình ảnh và đồ họa
Lượng dữ liệu (số bit) dùng để biểu diễn 1 màu gọi là độ sâu
màu (color depth).
HiColor: dùng 16 bit biểu diễn 1 màu: 5 bit/1 thành phần,
1 bit thừa biểu diễn trong suốt
TrueColor: dùng 24 bit biểu diễn: 8bit/1 thành phần màu
104. Biểu diễn hình ảnh và đồ họa
Ảnh số và đồ họa
Ảnh (chụp bằng máy ảnh cơ, lưu bằng film) là biểu diễn
tương tự của một cảnh.
Số hóa ảnh là biểu diễn nó bằng một tập các điểm riêng
biệt gọi là điểm ảnh (pixel).
Số lượng điểm ảnh biểu diễn một ảnh là độ phân giải
(resolution)
Nếu độ phân giải đủ lớn thì mắt người sẽ cảm nhận thấy
ảnh là liên tục
106. Biểu diễn hình ảnh và đồ họa
Lưu trữ ảnh:
Cách lưu trữ ảnh theo từng pixel liên tiếp gọi là raster-
graphics format (định dạng ảnh theo đường quét)
Những phương pháp lưu trữ ảnh theo đường quét thông
dụng: BMP, JPEG, GIF
BMP (bitmap): cách lưu trữ đơn giản nhất, mỗi bit ảnh được
biểu diễn bằng một giá trị màu (theo bộ 3 giá trị RGB)
GIF : sử dụng bảng màu để biểu diễn các màu (tối đa 256 màu)
JPEG : lưu trữ ảnh dựa trên đặc điểm cảm nhận màu sắc của
mắt người
107. Biểu diễn hình ảnh và đồ họa
Lưu trữ ảnh:
Vector graphic: thay vì lưu trữ từng điểm ảnh thì ta biểu
diễn ảnh thông qua các đường và các hình dáng hình học.
Một vector graphic là một chuỗi các lệnh mô tả các
đường, độ dày, màu sắc và hướng
Kích thước lưu trữ nhỏ nhưng không phù hợp để lưu trữ
các ảnh trong thế giới thực !
Dùng lưu trữ các ảnh vẽ bằng các nét và ảnh hoạt hình
Ảnh vector phổ biến nhất ngày này là Flash
109. Biểu diễn video
Video là một trong những dữ liệu phức tạp nhất để biểu diễn
và nén
Một video clip tương đương với nhiều ảnh tĩnh liên tục
Nhiều kỹ thuật nén video (CODEC) được ra đời trong những
năm gần đây
CODEC : COmpressor/DECompressor (nén và giải nén)
Video codec chỉ phương pháp làm giảm kích thước của video
để có thể xem và truyền trên mạng.
Hầu hết các phương pháp nén video là mất mát (lossy)
110. Biểu diễn video
Hầu hết sử dụng mã hóa theo khối (chia một khung hình thành
nhiều khối hình chữ nhật)
Các cách mã hóa khác nhau ở cách mã hóa khối này.
Các video codec áp dụng 2 kiểu mã hóa:
Temporal (theo thời gian) xem xét sự khác biệt giữa 2
khung hình liên tiếp, chỉ mã hóa những phân khác nhau
Spatial (theo không gian) giảm sự dư thừa thông tin trong
một khung hình. Nhóm các khối pixel có cùng màu với
nhau và lưu trữ thông tin về màu và vị trí của khối.
Các Video codec thông dụng: Sorenson, Cinepak, MPEG, and
Real Video
111. 1.5 Cổng và mạch
(Gates and circuits)
•Khái niệm cơ bản
•6 loại cổng phổ biến
•Mạch
112. Cổng và mạch
Các tín hiệu trong máy tính biểu diễn bằng hiệu điện thế
Hiệu điện thế 0-2V: mức thấp, biểu diễn giá trị nhị phân là
0
Hiệu điện thế 2-5V: mức cao, biểu diễn giá trị nhị phân là 1
Cổng(gate) là thiết bị thực hiện các thao tác cơ bản trên tính
hiệu điện.
Cổng có thể có 1 hoặc nhiều đầu vào nhưng chỉ có 1 đầu ra
Các cổng được kết hợp với nhau tạo thành các mạch (circuits),
thực hiện các thao tác phức tạp. VD. Cộng hai giá trị nhị phân
113. Cổng và mạch
6 loại cổng phổ biến :
NOT
AND
OR
XOR
NAND
NOR
Cổng NOT
X A
X A
Ký hiệu trên sơ đồ Bảng chân lý
117. Cổng và mạch
Xây dựng các cổng logic bằng transitor
Transitor là thiết bị hoạt động dựa trên mức điện thế của tín
hiệu đầu vào, nó sẽ cho điện đi qua hay như một điện trở chặn
dòng điện lại.
Transitor làm việc giống một công tắc, transitor làm từ vật liệu
bán dẫn, thường làm từ silicon
118. Cổng và mạch
Transitor có 3 đầu kết nối:
Source, base và emitor
Source tạo mức cao: mức gần +5V
Base quyết định khi nào kết nối giữa
Source và Ground được tạo ra.
Khi có kết nối giữa Source và Ground thì điện thế trên Source
bị kéo xuống 0.
Nếu Base ở mức cao thì Source ở mức thấp (mức 0), còn nếu
Base ở mức thấp thì Source ở mức cao (mức 1)
122. Cổng và mạch
Mạch tích hợp (chip): là một mẩu silicon trên đó được tích hợp
nhiều cổng. Miếng silicon được gắn trên một vỏ nhựa hoặc sứ
với các chân dọc theo các cạnh
Mỗi chân kết nối với đầu vào, đầu ra của cổng hoặc là nguồn và
đất
123. Cổng và mạch
Với các mạch tích hợp cỡ lớn ta phải kết hợp nhiều chân với
nhau để giảm số lượng chân ở đầu ra của chip
CPU chỉ đơn thuần là một mạch nâng cao với đầu vào và đầu
ra.
130. Tổ chức của máy tính
Kiến trúc của Von Neumann
131. Tổ chức của máy tính
Khối đầu vào: là nơi nhận thông tin từ các thiết bị đầu vào, và
chuyển thông tin này tới các khối khác để xử lý.
Thiết bị đầu vào thông dụng nhất: chuột và bàn phím, ngoài ra
còn có micro và máy quét , camera …
Khối đầu ra: nhận thông tin máy tính đã xử lý và đưa ra thiết bị
đầu ra để thế giới bên ngoài máy tính có thể sử dụng được
thông tin.
Thiết bị đầu ra thông dụng nhất: màn hình, máy in, ngoài ra
còn có loa, mạng internet …
132. Tổ chức của máy tính
Bộ nhớ: lưu trữ dữ liệu
và lệnh (chương trình)
Cache: bộ nhớ đệm
Physical RAM: RAM vật l{
Virtual memory: bộ nhớ ảo
(thường dùng ổ cứng)
Bộ nhớ tạm thời
Bộ nhớ
dài hạn
133. Tổ chức của máy tính
Bộ xử lý trung tâm – Central Processing Unit:
134. Tổ chức của máy tính
Khối điều khiển (control unit): Điều khiển hoạt động của máy
tính. Có 2 thanh ghi là
Thanh ghi lệnh (instruction register): chứa lệnh đang được
thực hiện
Bộ đếm chương trình (program counter): chứa địa chỉ
lệnh tiếp theo sẽ được thực hiện
Bus : đường truyền dữ liệu
135. Tổ chức của máy tính
Các bước xử lý theo trình tự:
1. Nhận lệnh tiếp theo (fetch instruction)
2. Giải mã lệnh (decode instruction)
3. Nhận dữ liệu nếu cần (get data)
4. Thực hiện lệnh (execute the instruction)
Nhận lệnh
Thực hiện lệnh
136. Tổ chức của máy tính
Chu trình nhận và thực hiện lệnh
138. Tổ chức của máy tính
RAM và ROM (bộ nhớ trong):
RAM : bộ nhớ truy cập ngẫu nhiên, các ô nhớ có tốc độ
truy cập như nhau.
Dữ liệu trong RAM có thể thay đổi được
Lưu trữ dữ liệu trong quá trình thực hiện
ROM: Bộ nhớ chỉ đọc
Dữ liệu lưu trữ không thể thay đổi được
Lưu trữ các dữ liệu mà máy tính cần khi khởi động
139. Tổ chức của máy tính
Bộ nhớ thứ cấp (bộ nhớ phụ):
Có dung lượng lớn
Tốc độ truy cập chậm hơn bộ nhớ trong (RAM)
Ví dụ:
băng từ, đĩa từ (ổ cứng, đĩa mềm), đĩa quang
144. 1. Kể tên các thành phần cơ bản của một hệ thống máy tính
2. Lệnh đang thực hiện của CPU được lưu trữ ở đâu?
3. Tại sao dung lượng của bộ nhớ thứ cấp lại lớn hơn bộ nhớ trong ?
4. Kể tên các thành phần của bộ nhớ trong máy tính
5. Thế nào là bộ nhớ ngắn hạn, dài hạn? Cho ví dụ.
6. Tốc độ CPU 3.2Ghz nghĩa là gì?
7. Ổ cứng ghi SAMSUNG SATA 500GB 5400 rpm nghĩa là gì ?
8. Nói bộ xử l{ 32 bit, 64 bit có nghĩa là gì ?
9. Thanh ghi lệnh và bộ đếm chương trình trong CPU dùng để làm gì ?
10. So sánh RAM và ROM
146. Mạng – Network
Mạng máy tính là tập hợp các thiết bị tính toán được nối với
nhau theo một cách nào đó để có thể giao tiếp và chia sẻ thông
tin
Email, chat, web … dựa trên trao đổi thông tin trong mạng
Chia sẻ tài nguyên : máy in, file, máy quét,…
Kết nối giữa các máy tính trong mạng có thể thông qua dây,
cáp (mạng có dây) hoặc thông qua sóng radio hoặc hồng ngoại
(mạng không dây)
147. Mạng – Network
Mạng máy tính có thể có các thiết bị khác ngoài máy tính (máy
in, máy quét). Ta gọi các thiết bị trên một mạng là nút mạng
Tốc độ truyền dữ liệu là một vấn đề quan trọng của mạng, được
đề hiểu như là băng thông mạng
âm thanh và video chiếm nhiều băng thông của mạng
Giao thức mạng: là tập các quy tắc mô tả cách thức giao tiếp.
VD TCP/IP
148. Mạng – Network
Phân loại mạng:
Theo quan hệ của các máy:
Mô hình client/server : máy chủ/khách
Mô hình peer-to-peer: ngang hàng
Theo quy mô
LAN (Local Area Network) phạm vi hẹp(<500m)
WAN (Wide Area Network) diện rộng (100-200km)
MAN (Metropolitan-Area Network): phạm vi thành phố lớn
GAN (Global Area Network) mạng toàn cầu (internet)
150. Mạng – Network
Kiến trúc mạng : mô tả cách kết nối các nút mạng (topology)
và phương thức truyền dữ liệu (protocol)
151. Mạng – Network
Chuyển gói tin
Nhằm nâng cao hiệu quả đường truyền, các thông tin truyền
trên mạng được chia nhỏ thành các gói tin có kích thước cố
định.
Các gói tin được truyền độc lập đến đích sau đó sẽ được lắp
ghép lại để thu được bản tin gốc.
Các gói tin có thể đi theo nhiều đường khác nhau để tới đích
152. Chuyển gói tin
Thiết bị dùng để điều hướng truyền
gói tin trên mạng là router
Tín hiệu truyền trên đoạn đường dài sẽ
bị suy hao. Thiết bị dùng để tăng cường
tín hiệu và lan truyền là repeater
153. Mạng – Network
Internet: xuất phát từ dự án ARPANET của bộ quốc phòng Mỹ,
kết nối máy tính của một số phòng thí nghiệm của trường đại
học phục vụ nghiên cứu (1969)
Internet backbone (mạng sương sống): là tập các mạng kết nối
tốc độ cao đảm nhận các lưu thông trên internet (1.5Mbps tới
600Mbps thông qua cáp quang)
Nhà cung cấp dịch vụ internet (ISP) là công ty cung cấp các kết
nối internet cho các công ty hoặc tổ chức khác.
ISP kết nối trực tiếp vào Internet backbone hoặc tới một ISP
lớn hơn có kết nối Internet backbone
154. Mạng – Network
Ba loại kết internet thông dụng trong gia đình là :
Phone modem
digital subscriber line (DSL)
cable modem (VD. Cable TV)
World wide web (web): là nền tảng của việc phân bố thông tin
kết hợp với phần mềm sử dụng mạng như là phương tiện để
vận chuyển thông tin đó
World wide web khác với khái niệm internet
155. Mạng – Network
Trang Web: là văn bản chứa, hoặc chỉ tới nhiều loại dữ liệu
khác nhau như text, ảnh, video, và chương trình.
Một trang web cũng chứa các đường link(kết nối) tới các trang
web khác
Web site là tập hợp các trang web có mối quan hệ với nhau,
thường được thiết kế và điều khiển bởi 1 người hoặc một công
ty.
Internet làm cho việc truyền thông có thể thực hiện được.
Web làm cho việc truyền thông trở nên dễ dàng và hiệu quả
hơn
156. Mạng – Network
Chúng ta giao tiếp với web thông qua một trình duyệt web
(web browser)
Trang web được lưu trữ trên một máy tính ở đâu đó trên mạng
internet. Máy tính đó được gọi là web server.
Ta chỉ ra trang web cần duyệt trong browser thông qua địa chỉ
157. Mạng – Network
Các dịch vụ trên internet
Truyền thông tin (FTP, File Transfer Protocol)
Truy nhập máy tính từ xa (telnet)
Web (WWW) để tìm kiếm và khai thác thông tin trên mạng
Thư điện tử (E-mail)
Tán gẫu (Chat)
Giải trí (game, film, nhạc…)
……
162. Review
1. Mạng máy tính là gì?
2. Tác dụng của mạng máy tính
3. Để kết nối mạng ta cần những thiết bị gì?
4. Phân loại mạng máy tính
5. Phân biệt giữa mô hình client/server và peer-to-peer
6. Dữ liệu được truyền trên mạng từ nơi gửi đến nơi nhận như
thế nào?
7. Router, repeater là gì ?
8. Phân biệt giữa internet và world wide web (WWW, hoặc web)
9. Web page và website
10. Kể tên một số dịch vụ trên mạng
164. Hệ điều hành
Phần mềm ứng dụng: giải quyết các vấn đề cụ thể
Xử lý văn bản, game, quản lý khách hàng, phân tích tự động …
Phần mềm hệ thống: quản lý máy tính ở mức thấp, cung cấp môi
trường và công cụ cho các phần mềm ứng dụng có thể được tạo
ra và thực hiện
Hệ điều hành: là phần nhân của một hệ thống phần mềm trên
máy tính.
Quản lý các tài nguyên của máy tính như : bộ nhớ, thiết bị vào
ra.
Cung cấp giao diện tương tác giữa người và máy
166. Hệ điều hành
Thông thường 1 máy tính chỉ có 1 hệ điều hành, nó sẽ quản lý hệ
thống máy tính khi máy tính được bật lên.
Quá trình khởi động (boot), ban đầu hệ thống máy tính nạp các
chỉ lệnh lưu trong ROM, những chỉ lệnh này sẽ nạp phần lớn hơn
của hệ thống phần mềm từ bộ nhớ phụ, thường là từ đĩa từ.
Một hệ thống máy tính có thể có nhiều hơn một hệ điều hành,
mỗi khi khởi động người dùng chọn một hệ điều hành (dual-boot
hoặc multi-boot)
Một số hệ điều hành thông dụng: Windows, Unix, Linux, Mac OS,
MS-DOS, …
167. Hệ điều hành
Đa nhiệm - Multiprogramming: hệ điều hành có khả năng lưu
trữ nhiều chương trình trong bộ nhớ chính tại một thời điểm
Quản lý bộ nhớ: theo dõi các chương trình được nạp vào bộ
nhớ và vị trí của chúng
Tiến trình: là một chương trình đang được thực hiện (được
nạp vào bộ nhớ)
Quản lý tiến trình: theo dõi các tiến trình đang thực hiện và
trạng thái của chúng
Phân phối tài nguyên CPU - CPU scheduling: Xác định xem tiến
trình nào trong bộ nhớ sẽ được thực hiện bởi CPU tại một thời
điểm xác định.
169. Hệ điều hành
Chia sẻ thời gian thực – time sharing: Cho phép nhiều người
sử dụng có thể tương tác với hệ thống cùng thời điểm.
Chia sẻ thời gian thực làm cho người dùng có cảm tưởng là
mình đang dùng 1 máy tính riêng.
Hệ thống thời gian thực - real-time system: Là hệ thống đảm
bảo rằng sẽ phản hồi lại người dùng trong khoảng thời gian
nhỏ nhất.
Trễ giữa nhận kích thích và tạo ra phản ứng lại phải được điều
khiển cẩn thận.
170. Hệ điều hành
Quản lý bộ nhớ :
Quản l{ vị trí và cách 1 chương trình nạp trong bộ nhớ
Chuyển đổi địa chỉ logic của chương trình thành địa chỉ vật
l{ của bộ nhớ
Bộ nhớ trong (RAM) được quản l{ theo các ô nhớ, mỗi ô có
kích thước là 1 Byte, và được đánh địa chỉ.
10010101
11010101
10010100
10000101
00000000
00000001
00000010
00010101
11111111
Địa chỉ ô nhớ
171. Hệ điều hành
Địa chỉ logic (logical
address, virtual address): là
địa chỉ chỉ ra 1 vùng nhớ
tổng quát nào đó mà liên
quan đến chương trình
nhưng không liên quan đến
địa chỉ vật l{ của bộ nhớ
chính.
Địa chỉ vật lý (physical
address) địa chỉ vật l{ thực
sự trong bộ nhớ.
172. Hệ điều hành
Hệ thống file và thư mục
Lưu trữ thông tin trên đĩa từ trong các file
File là tập hợp các dữ liệu có quan hệ với nhau
Hệ thống file là góc nhìn logic mà hệ điều hành cung cấp
để người sử dụng có thể quản lý thông tin thông như một
tập hợp các file
Một hệ thống file thường được tổ chức bằng cách nhóm
các file lại thành một thư mục
173. Hệ điều hành
Nội dung của file có thể là chương trình, văn bản,…
File được biểu diễn bằng tên
Tên file có 2 phần: phần tên và phần mở rộng
Các hệ điều hành khác nhau có quy định về đặt tên file
khác nhau
VD: hello.exe, class.cpp
Nội dung chứa trong file gọi là kiểu file
Vd file nhạc MP3, WMA,
File ảnh JPG, GIF, BMP
File văn bản: TXT, DOC, XLS
176. Review
1. Phân biệt phần mềm ứng dụng và phần mềm hệ thống
2. Vai trò của hệ điều hành
3. Mô tả quá trình khởi động máy tính (boot)
4. Tài nguyên trong máy tính ?
5. Tiến trình ?
6. Quản l{ bộ nhớ máy tính là làm gì ?
7. Phân biệt địa chỉ logic và địa chỉ vật l{
8. File được quản l{ như thế nào trên máy tính
178. Hệ thống thông tin – information system
Máy tính tồn tại để quản l{ và phân tích dữ liệu.
Hệ thống thông tin: là các phần mềm giúp chúng ta lưu trữ và
quản l{ dữ liệu.
Phần mềm bảng tính và hệ quản trị cơ sở dữ liệu là hai phần
mềm hệ thống thông tin thông dụng
Bảng tính: là công cụ thuận tiện để phân tích dữ liệu ở
mức cơ bản dựa trên các công thức có thể mở rộng định
nghĩa mối quan hệ giữa các dữ liệu
Hệ quản trị cơ sở dữ liệu: hướng vào các dữ liệu kích
thước lớn, chủ yếu phục vụ cho mục đích tìm kiếm và
quản l{
179. Bảng tính - spreadsheet
Bảng tính là phần mềm cho phép người dùng quản l{ và phân
tích dữ liệu dựa trên lưới các ô đã được gán nhãn.
Một ô có thể chứa dữ liệu hoặc các công thức sử dụng để tính
toán giá trị.
Dữ liệu của ô có thể là text, số hoặc các dữ liệu đặc biệt như
ngày tháng, …
Một số phần mềm bảng tính thông dụng : Microsoft Office
Excel, OpenOffice.org Calc, Google spreadsheets, Gnumeric,..
180. Bảng tính - spreadsheet
Microsoft Office Excel
181. Bảng tính - spreadsheet
Bảng tính với dữ liệu và công thức
185. Hệ quản trị cơ sở dữ liệu
Cơ sở dữ liệu: là một tập dữ liệu có cấu trúc
Hệ quản trị cơ sở dữ liệu: dựa trên cơ sở dữ liệu và các cấu
trúc để cho phép người dùng tương tác với nó.
Hệ quản trị cơ sở dữ liệu là sự kết hợp của phần mềm và dữ
liệu để tạo ra :
Cơ sở dữ liệu vật lý: các file mà chứa dữ liệu
database engine: phần mềm hỗ trợ truy cập và sửa đổi nội
dung dữ liệu.
Lược đồ dữ liệu: chỉ ra cấu trúc logic của dữ liệu được lưu
trữ trong cơ sở dữ liệu.
186. Hệ quản trị cơ sở dữ liệu
Sơ đồ các thành phần của hệ
quản trị cơ sở dữ liệu
187. Hệ quản trị cơ sở dữ liệu
Mô hình cơ sở dữ liệu quan hệ: là mô hình CSDL phổ biến nhất
trong những năm gần đây.
Các phần tử dữ liệu và mối quan hệ giữa chúng được tổ
chức dưới dạng bảng.
Bảng là tập hợp của các bản ghi
Mỗi bản ghi là một nhóm các trường có quan hệ với nhau.
Mỗi trường của bản ghi chứa 1 giá trị dữ liệu đơn
Các bản ghi trong cùng 1 bảng có số trường giống nhau.
188. Hệ quản trị cơ sở dữ liệu
Một bảng trong cơ sở dữ liệu về học sinh
189. Hệ quản trị cơ sở dữ liệu
Ngôn ngữ truy vấn cấu trúc - Structured Query Language (SQL) là
ngôn ngữ cho cơ sở dữ liệu phức tạp để quản l{ các cơ sở dữ liệu
quan hệ.
Bao gồm các câu lệnh xác định lược đồ dữ liệu cũng như thêm,
xóa, cập nhật …
VD.
SELECT * FROM user WHERE Username = 'Nguyen Van A';
UPDATE user SET Username = 'AAA' WHERE Username = 'vui'
DELETE * FROM user WHERE Username='vui';
INSERT INTO user(Username, Password)
VALUES(‘Nguyen Van B‘, 'aaa');
190. Hệ quản trị cơ sở dữ liệu
Thiết kế cơ sở dữ liệu: Một CSDL phải được thiết kế từ đầu
nếu muốn nó đáp ứng đầy đủ yêu cầu.
Một mô hình thiết kế thông dụng là mô hình thực thể liên kết
(entity-relationship (ER) modeling). Mô hình thực thể liên kết
nắm bắt các bản ghi, các thuộc tính và các quan hệ quan trọng
dưới dạng đồ thị.
Từ mô hình thực thể liên kết có thể định nghĩa các lược đồ cần
thiết và tạo ra các bảng phù hợp cho cơ sở dữ liệu được chỉ ra
bởi đồ thị.
191. Hệ quản trị cơ sở dữ liệu
Mô hình cơ sở dữ liệu cho thuê phim
192. Review
1. Hệ thống thông tin là gì?
2. Phần mềm bảng tính dùng để làm gì?
3. Phần mềm quản trị cơ sở dữ liệu dùng để làm gì?
194. 1.10 Giải quyết vấn đề
và thiết kế thuật toán
•Những vấn đề nào được giải quyết bằng máy tính ?
•Cách giải quyết vấn đề bằng máy tính
195. Nội dung
1.10.1 Các khái niệm cơ bản
1.10.2 Các phương pháp xây dựng thuật toán
1.10.3 Biểu diễn thuật toán
1.10.4 Một số thuật toán cơ bản
196. Giải quyết vấn đề và thiết kế thuật toán
Vấn đề ? Một khó khăn cần được giải quyết.
Giải quyết vấn đề: là việc tìm ra một giải pháp cho câu hỏi rắc
rối, phức tạp, khó hiểu
Máy tính không thể dùng để giải quyết các vấn đề liên quan
đến hành động vật lý hoặc biểu thị cảm xúc
Máy tính chỉ làm được những gì mà nó được bảo phải làm.
Máy tính không thông minh, nó không thể tự phân tích vấn đề
và đưa ra giải pháp.
Lập trình viên là người phân tích vấn đề, tạo ra các chỉ dẫn để
giải quyết vấn đề (chương trình), và máy tính sẽ thực hiện các
chỉ dẫn đó.
197. Giải quyết vấn đề và thiết kế thuật toán
Phương pháp giải quyết vấn đề thông thường: 4 bước
Bước 1: Hiểu vấn đề: cái gì chưa biết, cái gì là dữ liệu, cái
gì là điều kiện
Bước 2: Đưa ra một phương án: tìm mối quan hệ giữa dữ
liệu và những thứ chưa biết, có thể tham khảo từ cách giải
quyết các vấn đề tương tự
Bước 3: Thực hiện phương án
Bước 4: Kiểm tra lại lời giải thu được
198. Giải quyết vấn đề và thiết kế thuật toán
Phương án được gọi là thuật toán trong tính toán
Một thuật toán là:
Một dãy hữu hạn các thao tác và trình tự thực hiện các
thao tác đó sao cho sau khi thực hiện dãy thao tác này
theo trình tự đã chỉ ra, với đầu vào (input) ta thu được
kết quả đầu ra (output) mong muốn.
199. Giải quyết vấn đề và thiết kế thuật toán
Giải quyết vấn đề bằng máy tính
Giai đoạn phát triển thuật toán
Phân tích: hiểu vấn đề
Đề xuất thuật toán: đưa ra các bước tuần tự giải bài toán
Kiểm tra thuật toán: theo các bước để kiểm tra lại thuật toán
Giai đoạn triển khai
Code: chuyển thuật toán thành chương trình
Kiểm tra: thực hiện trên máy tính, kiểm tra kết quả và sửa đổi nếu cần
Giai đoạn bảo trì
Sử dụng:Dùng chương trình
Bảo trì: sửa đổi chương trình cho phù hợp yêu cầu mới hoặc để sửa lỗi.
200. Giải quyết vấn đề và thiết kế thuật toán
Pha giải quyết vấn đề Pha triển khai, cài đặt
201. Giải quyết vấn đề và thiết kế thuật toán
Xây dựng thuật toán:
Phương pháp thiết kế top-down (phân rã hàm - functional
decomposition): chia vấn đề thành các vấn đề nhỏ
hơn(module), các vấn đề nhỏ lại được chia tiếp cho đến khi
nó đủ nhỏ để có thể xử lý trực tiếp
Phương pháp thiết kế hướng đối tượng: dữ liệu và các
thuật toán xử lý dữ liệu được kết hợp với nhau trong một
lớp (class) hoặc đối tượng (object)
203. Phương pháp thiết kế top-down
VD. Bài toán tổ chức 1 buổi tiệc lớn.
Bài toán có thể chia nhỏ thành :
Mời mọi người
Chuẩn bị đồ ăn
Mời mọi người: Chưa thể gọi điện để mời vì ta chưa biết cần
mời những ai. Do đó thao tác này được chia tiếp
Lên danh sách khách
Gọi điện cho khách
Lên danh sách:
Ghi tên bạn bè
Chờ 1 ngày để xem còn quên ai
Kiểm tra và bổ sung vào danh sách
205. Phương pháp thiết kế top-down
VD, Với bài toán con là viết tên khách mời (write down name):
Bạn có giấy chưa ?
Chưa có thì lấy giấy
Bạn có bút chưa?
Chưa có thì lấy bút (mua bút)
Cầm bút và viết tên khách mời lên giấy
206. Phương pháp thiết kế top-down
Trong máy tính cũng tương tự, ta có thể dùng ngôn ngữ tự
nhiên hoặc giả mã để biểu diễn thuật toán.
Nếu dùng mã giả (pseudocode)
Dùng while, repeat để biểu diễn các thao tác lặp đi lặp lại
Dùng if để biểu diễn khi phải lựa chọn 1 trong 2 các thao
tác để thực hiện.
Dùng write để biểu diễn việc hiển thị ra (màn hình)
Dùng read để biểu diễn việc đọc vào (từ bàn phím)
207. VD. Bài toán lên và in ra danh sách khách mời theo thứ tự chữ
cái.
Bài toán chia thành 3 module:
Mức 0
Nhập vào thông tin khách
Sắp xếp danh sách theo thứ tự chữ cái
In ra danh sách
Phương pháp thiết kế top-down
208. Phương pháp thiết kế top-down
Nhập vào thông tin khách Mức 1
Nhập vào từ bàn phím
Kiểm tra đủ thông tin
Thêm vào danh sách
209. Phương pháp thiết kế top-down
Nhập vào từ bàn phím Mức 2
write “Nhập vào thông tin khách”
write “Nhập tên”
read họtên
write “Nhập địa chỉ”
read địachỉ
write “Nhập số điện thoại”
read sốđiệnthoại
210. Phương pháp thiết kế top-down
Kiểm tra đủ thông tin Mức 2
if (thiếu họtên)
write “Nhập họ tên”
read họtên
if (thiếu địachỉ)
write “Nhập địa chỉ”
read địachỉ
if (thiếu Sốđiệnthoại)
write “Nhập số điện thoại”
read Sốđiệnthoại
211. Phương pháp thiết kế hướng đối tượng
Phương pháp thiết kế hướng đối tượng: Xây dựng lời giải của
bài toán theo các thực thể nội tại được gọi là các đối tượng.
Mỗi đối tượng bao gồm cả dữ liệu và các thao tác để xử l{ dữ
liệu đó
Các đối tượng tương tự nhau được mô tả bằng 1 lớp – class.
VD. Mặc dù 2 sinh viên khác nhau nhưng có các đặc điểm và
hành vi chung: đều là người và cùng tham gia khóa học tại
trường.
212. Phương pháp thiết kế hướng đối tượng
Quan hệ giữa các lớp có thể là
Chứa đựng – containment: lớp này nằm trong lớp khác.
VD đối tượng lốp xe nằm trong đối tượng ô tô
Kế thừa – Inheritance: lớp này có thể kế thừa dữ liệu và
cách ứng xử của lớp khác. VD lớp sinh viên kế thừa từ lớp
người.
213. Phương pháp thiết kế hướng đối tượng
Quan hệ giữa các lớp có thể là
Quan hệ cộng tác – collaboration: Một lớp có thể gọi 1
lớp khác để cung cấp thông tin. VD Lớp sinh viên có thể gọi
dịch vụ của lớp thư viện – library để mượn sách.
214. Giải quyết vấn đề và thiết kế thuật toán
Biểu diễn thuật toán:
Dùng ngôn ngữ tự nhiên
Dùng giả ngôn ngữ
Dùng sơ đồ khối
Dùng ngôn ngữ lập trình
VD. Bài toán tìm giá trị lớn nhất của một dãy N số nguyên
Đầu vào: N và giá trị của N số nguyên a1, a2,…, aN
Đầu ra: số nguyên lớn nhất của dãy
215. Giải quyết vấn đề và thiết kế thuật toán
3 5 7 9 2
max
3
5
max<5
max = 3
7
9
9
8
9
9
max<7
max<9
max>2
max>8
Kết quả
216. Giải quyết vấn đề và thiết kế thuật toán
Thuật toán: Tìm giá trị lớn nhất trong dãy số nguyên
B1: Max a1, i 2.
B2: Nếu i > N, thuật toán kết thúc và Max là giá trị lớn nhất
của dãy cần tìm
B3: Nếu ai > Max, gán ai cho Max.
B4: Tăng i lên 1 đơn vị.
B5: Quay lên B2.
B6: In ra Max
217. Giải quyết vấn đề và thiết kế thuật toán
Bắt đầu
Kết thúc
· Nhập N
· Nhập a1,..,aN
· Maxßa1
· iß2
i>N
ai>Max Maxßai
i=i+1
Hiển thị giá
trị Max
Đúng
Sai
Đúng
Sai
218. Giải quyết vấn đề và thiết kế thuật toán
Bắt đầu hoặc kết thúc
Thao tác xử lý
Lệnh vào, ra dữ liệu(read hoặc write)
Kiểm tra điều kiện
Luồng thực hiện
Nối tiếp đoạn lệnh
Một số khối trong sơ đồ khối dùng biểu diễn thuật toán
219. Biểu diễn thuật toán
Cấu trúc tuần tự
Xác định bởi thứ tự các bước trong mã giả hoặc
Hướng mũi tên trong sơ đồ khối
x ß5
y = x % 2
In ra y
Bước 1: gán x = 5
Bước 2: gán y là dư của phép chia
module x cho 2
Bước 3: In ra y
220. Biểu diễn thuật toán
Cấu trúc rẽ nhánh
Bước 1: So sánh giá trị a và b,
nếu a<b thì Max=b
Ngược lại Max=a
Bước 2: in ra giá trị của Max
a<b
Max=a
Max=b
In ra Max
Đúng
Sai
221. Biểu diễn thuật toán
Cấu trúc lặp
i<10
i=1
i=i+1
In ra i
In thông báo hoàn
thành công việc
Sai
Đúng
Bước 1: Gán i=1
Bước 2: kiểm tra i<10
Nếu đúng thì sang Bước 3
Nếu sai thì sang Bước 5
Bước 3: In ra i
Bước 4: tăng i thêm 1, quay lại Bước 2
Bước 5: in thông báo hoàn thành
222. Biểu diễn thuật toán
Cấu trúc lặp (tiếp)
Bước 1: Gán i=1
Bước 2: In ra i
Bước 3: tăng i thêm 1
Bước 4: kiểm tra i<10
Nếu đúng thì quay lại bước 2
Nếu sai thì sang bước 5
Bước 5: in thông báo hoàn thành
i<10
i=1
i=i+1
In ra i
In thông báo hoàn
thành công việc
Sai
Đúng
223. Một số thuật toán thông dụng
Thuật toán sắp xếp dãy số theo thứ tự tăng dần
Đầu vào: Dãy A gồm N số a1, a2,…, aN
Đầu ra: Dãy A dược sắp lại theo thứ tự không giảm
VD.
Dãy ban đầu: 1, 6, 3, 9, 5, 6, 7
Dãy kết quả: 1, 3, 5, 6, 6, 7, 9
224. Một số thuật toán thông dụng
Ý tưởng: Dựa trên { tưởng trong tuyển quặng: "Quặng nặng thì
chìm xuống dưới còn tạp chất nhẹ thì nổi lên trên"
Thực hiện so sánh lần lượt các phần tử nằm kề nhau, nếu
chúng không đúng thứ tự thì ta đổi chỗ chúng cho nhau.
Các phần tử có giá trị khóa lớn sẽ bị đẩy về cuối và khóa nhỏ sẽ
bị đẩy lên trên (trong trường hợp sắp xếp tăng dần)
225. Sắp xếp nổi bọt
3 5 2 7 1
Dãy ban đầu
3 5 2 7 1
3 5 2 7 1 3 2 5 7 1
3 2 5 7 1
3 2 5 7 1 3 2 5 1 7
3 2 5 1 7
kết thúc lần lặp 1
lần lặp 1
227. Sắp xếp nổi bọt
2 3 1 5 7
Lần lặp 3
2 3 1 5 7
2 3 1 5 7 2 1 3 5 7
2 1 3 5 7
kết thúc lần lặp 3
228. Sắp xếp nổi bọt
2 1 3 5 7
Lần lặp 4
2 1 3 5 7 1 2 3 5 7
1 2 3 5 7
kết thúc lần lặp 4
Dãy đã được sắp xếp !
229. Sắp xếp nổi bọt
B1: Nhập số N và dãy số a1,a2,…,aN
B2: i ß N
B3: Nếu i < 2 thì chuyển tới bước 9.
B4: j ß 2
B5: Kiểm tra j ≤ i
Nếu đúng chuyển sang bước 6
Nếu sai chuyển sang bước 8
B6: so sánh aj-1 và aj
Nếu aj-1>aj thì hoán đổi vị trí 2 phần tử
B7: Tăng j và quay lại bước 5
B8: giảm i và quay lại bước 3
B9: Kết thúc
230. Sắp xếp nổi bọt
i ß N
i > 1
j≤ i Đổi chỗ aj và aj-1
j=2
aj-1 > aj
Bắt đầu
· Nhập N
· Nhập a1,..,aN
Kết thúc
j=j+1
i=i-1
Đúng
Sai
Sai
Đúng Đúng
Sai
231. Một số thuật toán thông dụng
Thuật toán kiểm tra số nguyên tố
Đầu vào: số nguyên dương n
Đầu ra: trả lời n có phải số nguyên tố hay không
VD. 19, 57 là số nguyên tố
Ý tưởng:
Số nguyên tố là số chỉ chia hết cho 1 và chính nó.
Để kiểm tra số nguyên tố ta sẽ thử chia số đó với các số từ 2
đến 𝑛. Nếu chia hết cho bất kz 1 số nào thì không phải số
nguyên tố.
232. Một số thuật toán thông dụng
Bước 1: Nhập n
Bước 2: i=2
Bước 3: so sánh 𝑖 ≤ 𝑛.
Nếu sai thì chuyển sang Bước 6
Nếu đúng thì chuyển sang Bước 4
Bước 4: Kiểm tra n có chia hết cho i
Nếu đúng thì chuyển sang Bước 5
Nếu sai thì tăng i lên 1 và quay lại Bước 3
Bước 5: In thông báo n không phải số nguyên tố và kết thúc
Bước 6: In thông báo n là số nguyên tố và kết thúc
233. Một số thuật toán thông dụng
Bắt đầu
Nhập N
i=2
i ≤ căn bậc hai của n
N chia hết cho i
i=i+1
N là số
nguyên tố
N không phải là
số nguyên tố
Kết thúc
Đúng
Sai
Sai
Đúng
234. Review
1. Nêu các bước giải quyết vấn đề
2. Giải quyết vấn đề bằng máy tính có đặc điểm gì
3. Các bước để giải quyết vấn đề bằng máy tính
4. Thuật toán là gì
5. Trình bày phương pháp thiết kế top-down
236. Ngôn ngữ lập trình
Máy tính là thiết bị điện tử có khả năng lập trình được mà có
thể lưu trữ, tìm kiếm và xử l{ dữ liệu.
Dữ liệu và các câu lệnh xử l{ dữ liệu về mặt logic là như nhau
và có thể được lưu trữ tại cùng một vị trí.
Thay đổi cách máy tính xử l{ dữ liệu bằng cách thay đổi các câu
lệnh.
Dữ liệu và câu lệnh trong máy được biểu diễn bằng mã máy
(mã nhị phân).
237. Ngôn ngữ lập trình
Ngôn ngữ lập trình : 3 nhóm
Ngôn ngữ máy:
lệnh(chỉ thị) được viết bằng mã nhị phân,
phụ thuộc vào từng loại máy cụ thể.
Hợp ngữ (assembly)
Dùng từ tiếng anh viết tắt để biểu diễn một số lệnh
Phải qua bộ dịch assembler
239. Ngôn ngữ lập trình
Ngôn ngữ lập trình
Ngôn ngữ lập trình bậc cao:
ít phụ thuộc vào kiến trúc phần cứng máy tính,
gần với tiếng Anh tự nhiên,
có tính độc lập cao
Phải có bộ dịch sang ngôn ngữ máy
240. Ngôn ngữ lập trình
#include <stdio.h>
int main()
{
for(int i=0; i<10; i++)
printf("Hello world !n");
return 0;
}
241. Ngôn ngữ lập trình
Hai hình thức dịch :
Biên dịch (compiler): dịch toàn bộ chương trình từ ngôn
ngữ bậc cao, hoặc hợp ngữ sang ngôn ngữ máy
243. Ngôn ngữ lập trình
Thông dịch (interpreter): là chương trình dịch mà dịch và thực
hiện câu lệnh một cách tuần tự
Chương trình Java được dịch sang Bytecode (là một dạng của
ngôn ngữ máy chuẩn). Máy ảo java (JVM) thực thi chương trình
viết bằng Bytecode
Bất kz máy tính nào có JVM đều có thể chạy chương trình java
đã biên dịch