SlideShare a Scribd company logo
1 of 244
Download to read offline
Nguyễn Duy Hiệp
hiepnd@soict.hut.edu.vn
TIN HỌC
ĐẠI CƯƠNG
Phần 1
Tin học căn bản
Giới thiệu tổng quan về máy tính
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
1.1 Các khái niệm cơ bản
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.
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
1.2 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
ENIAC, một trong hai chiếc máy tính điện tử đầu tiên
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ũ) …
Máy tính thế hệ 1
Máy tính EDIVAC
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ũ),….
Máy tính thế hệ 2
MINSK-2
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ũ),...
Máy tính thế hệ 3
Máy IBM-360
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”
Máy tính thế hệ 4
Desktop PC
Laptop
Tablet PC
1.3 Lịch sử phát triển của phần
mềm
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.
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
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
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
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
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
Lịch sử phát triển của phần mềm
Web application
1.4 Biểu diễn dữ liệu trong máy
tính
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
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
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
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
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
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


   
Số tự nhiên
 Giá trị của 943 trong hệ cơ số đếm 13
Số tự nhiên
 Biểu diễn số hệ 10
Máy IBM 650
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
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
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
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
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
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
Phép toán trên hệ nhị phân
 Phép nhân
1011 (11)
1101 (13)
1011
0000
1011
1011
10001111 (143)
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
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
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
Đổ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
Đổ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
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.
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
1.4.2 Dữ liệu và máy tính
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
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.
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
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
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.
Biểu diễn bằng giá trị nhị phân
1.4.3 Biểu diễn số nguyên
•Biểu diễn số âm
•Mã bù 2
•Tràn số
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
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
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
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
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
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
   
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
 
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
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)
+
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
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
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
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)
+ +
1.4.4 Biểu diễn số thực
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ẻ
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
  
      
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
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ố)
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
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
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
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
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
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

    
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ị
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
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
¥
¥
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
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
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)
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
Biểu diễn văn bản – text
 Nửa đầu bảng mã ASCII (0-127)
Biểu diễn văn bản – text
 Một vài ký tự trong bảng mã Unicode-16
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
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
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
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
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
1.4.6 Biểu diễn âm thanh (audio)
•Biểu diễn âm thanh
•Các chuẩn nén âm thanh
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ĩ
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.
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)
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.
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
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
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
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
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
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
Biểu diễn hình ảnh và đồ họa
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
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
1.4.8 Biểu diễn video
•Biểu diễn video
•Các chuẩn mã hóa
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)
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
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
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
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ý
Cổng và mạch
 Cổng AND
 Cổng OR
X A B
 
X A B
 
Cổng và mạch
 Cổng XOR
 Cổng NAND
X A B
 
X A B
 
Cổng và mạch
 Cổng NOR
X A B
 
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
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)
Cổng và mạch
Cổng và mạch
 Mạch tạo thành từ việc kết hợp các cổng, để thực hiện các
thao tác phức tạp.
VD. Bộ cộng 2 bit không nhớ
Cổng và mạch
 Bộ cộng có nhớ
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
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.
1.6 Tổ chức của máy tính
Tổ chức của máy tính
Tổ chức của máy tính
Tổ chức của máy tính
Tổ chức của máy tính
Tổ chức của
máy tính
Các bộ phận cơ bản
của máy tính
Tổ chức của máy tính
Kiến trúc của Von Neumann
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 …
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
Tổ chức của máy tính
 Bộ xử lý trung tâm – Central Processing Unit:
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
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
Tổ chức của máy tính
 Chu trình nhận và thực hiện lệnh
Tổ chức của máy tính
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
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
Tổ chức của máy tính
Băng từ
Cấu tạo ổ cứng
Tổ chức của máy tính
Tổ chức của máy tính
Đĩa quang (CD/DVD)
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
1.7 Mạng – Network
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)
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
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)
Mạng – Network
 Kết nối giữa nhiều mạng
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)
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
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
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
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
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
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ỉ
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…)
……
Mạng – Network
 Tỉ lệ dùng internet tại VietNam
Mạng – Network
Network
Mạng – Network
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
1.8 Hệ điều hành
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
Hệ điều hành
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, …
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.
Hệ điều hành
 Các trạng thái của tiến trình
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.
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ớ
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ớ.
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
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
Hệ điều hành
 Cây thư mục
Hệ điều hành
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
1.9 Các hệ thống ứng dụng
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{
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,..
Bảng tính - spreadsheet
 Microsoft Office Excel
Bảng tính - spreadsheet
 Bảng tính với dữ liệu và công thức
Bảng tính - spreadsheet
Bảng tính - spreadsheet
Bảng tính - spreadsheet
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.
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
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.
Hệ quản trị cơ sở dữ liệu
 Một bảng trong cơ sở dữ liệu về học sinh
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');
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ị.
Hệ quản trị cơ sở dữ liệu
 Mô hình cơ sở dữ liệu cho thuê phim
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ì?
1.XX Trí tuệ nhân tạo
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
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
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 đó.
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
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.
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.
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
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)
Phương pháp thiết kế top-down
 Phương pháp thiết kế top-down
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
Phương pháp thiết kế top-down
 Chia nhỏ bài toán
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
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)
 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
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
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
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
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.
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.
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.
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
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ả
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
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
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
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
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
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
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
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
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)
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
Sắp xếp nổi bọt
3 2 5 1 7
Lần lặp 2
3 2 5 1 7 2 3 5 1 7
2 3 5 1 7
2 3 5 1 7 2 3 1 5 7
2 3 1 5 7
kết thúc lần lặp 2
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
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 !
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
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
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ố.
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
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
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
1.11. Ngôn ngữ lập trình
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).
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
Ngôn ngữ lập trình
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
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;
}
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
Ngôn ngữ lập trình
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
Ngôn ngữ lập trình

More Related Content

Similar to chapter1.xx.IntroductionToComputer.pdf

Lớp 10: Bai2 thong tinvadulieu1
Lớp 10: Bai2 thong tinvadulieu1Lớp 10: Bai2 thong tinvadulieu1
Lớp 10: Bai2 thong tinvadulieu1Heo_Con049
 
TÀI LIỆU ĐÁP ÁN VÀ CÂU HỎI KIỂM TRA, SÁT HẠCH KIẾN THỨC CHUYÊN NGÀNH.Tuyển dụ...
TÀI LIỆU ĐÁP ÁN VÀ CÂU HỎI KIỂM TRA, SÁT HẠCH KIẾN THỨC CHUYÊN NGÀNH.Tuyển dụ...TÀI LIỆU ĐÁP ÁN VÀ CÂU HỎI KIỂM TRA, SÁT HẠCH KIẾN THỨC CHUYÊN NGÀNH.Tuyển dụ...
TÀI LIỆU ĐÁP ÁN VÀ CÂU HỎI KIỂM TRA, SÁT HẠCH KIẾN THỨC CHUYÊN NGÀNH.Tuyển dụ...nataliej4
 
Giao trinh tin dai cuong kiem phan i
Giao trinh tin dai cuong kiem phan iGiao trinh tin dai cuong kiem phan i
Giao trinh tin dai cuong kiem phan iPhi Phi
 
Giao trinh ctmt
Giao trinh ctmtGiao trinh ctmt
Giao trinh ctmtcanh071179
 
Bai thuyettrinh2tin10
Bai thuyettrinh2tin10Bai thuyettrinh2tin10
Bai thuyettrinh2tin10indochinasp
 
đồ áN nhóm 18. nguyễn hoàng hải nguyễn hoàng minh đạo văn ty.
đồ áN nhóm 18. nguyễn hoàng hải nguyễn hoàng minh đạo văn ty.đồ áN nhóm 18. nguyễn hoàng hải nguyễn hoàng minh đạo văn ty.
đồ áN nhóm 18. nguyễn hoàng hải nguyễn hoàng minh đạo văn ty.kingsea1981
 
250 CÂU TN TIN.doc
250 CÂU TN TIN.doc250 CÂU TN TIN.doc
250 CÂU TN TIN.docPhanKimNgn6
 
Baigiang bai2c1lop10
Baigiang bai2c1lop10Baigiang bai2c1lop10
Baigiang bai2c1lop10Sunkute
 
Tailieu.vncty.com he dieu hanh
Tailieu.vncty.com   he dieu hanhTailieu.vncty.com   he dieu hanh
Tailieu.vncty.com he dieu hanhTrần Đức Anh
 
CHƯƠNG I_Lop10 bai2_THÔNG TIN VÀ DỮ LIỆU
CHƯƠNG I_Lop10  bai2_THÔNG TIN VÀ DỮ LIỆUCHƯƠNG I_Lop10  bai2_THÔNG TIN VÀ DỮ LIỆU
CHƯƠNG I_Lop10 bai2_THÔNG TIN VÀ DỮ LIỆUSP Tin K34
 
Lop10 _Chương1_ Bài 2 : Thông Tin Và Dữ Liệu
Lop10 _Chương1_ Bài 2 : Thông Tin Và Dữ Liệu Lop10 _Chương1_ Bài 2 : Thông Tin Và Dữ Liệu
Lop10 _Chương1_ Bài 2 : Thông Tin Và Dữ Liệu SP Tin K34
 
250 câu TN có đáp án.pdf
250 câu TN có đáp án.pdf250 câu TN có đáp án.pdf
250 câu TN có đáp án.pdfLinhLinh232341
 
De kiem tra tin hoc 10 lan 1
De kiem tra tin hoc 10 lan 1De kiem tra tin hoc 10 lan 1
De kiem tra tin hoc 10 lan 1Bich Tuyen
 
Bai 1 Gioi Thieu Cntt
Bai 1   Gioi Thieu CnttBai 1   Gioi Thieu Cntt
Bai 1 Gioi Thieu Cntthunglt
 
Bai giang tin_hoc_co_ban
Bai giang tin_hoc_co_banBai giang tin_hoc_co_ban
Bai giang tin_hoc_co_banHải Nguyễn
 

Similar to chapter1.xx.IntroductionToComputer.pdf (20)

Lớp 10: Bai2 thong tinvadulieu1
Lớp 10: Bai2 thong tinvadulieu1Lớp 10: Bai2 thong tinvadulieu1
Lớp 10: Bai2 thong tinvadulieu1
 
TÀI LIỆU ĐÁP ÁN VÀ CÂU HỎI KIỂM TRA, SÁT HẠCH KIẾN THỨC CHUYÊN NGÀNH.Tuyển dụ...
TÀI LIỆU ĐÁP ÁN VÀ CÂU HỎI KIỂM TRA, SÁT HẠCH KIẾN THỨC CHUYÊN NGÀNH.Tuyển dụ...TÀI LIỆU ĐÁP ÁN VÀ CÂU HỎI KIỂM TRA, SÁT HẠCH KIẾN THỨC CHUYÊN NGÀNH.Tuyển dụ...
TÀI LIỆU ĐÁP ÁN VÀ CÂU HỎI KIỂM TRA, SÁT HẠCH KIẾN THỨC CHUYÊN NGÀNH.Tuyển dụ...
 
Giao trinh tin dai cuong kiem phan i
Giao trinh tin dai cuong kiem phan iGiao trinh tin dai cuong kiem phan i
Giao trinh tin dai cuong kiem phan i
 
Giao trinh ctmt
Giao trinh ctmtGiao trinh ctmt
Giao trinh ctmt
 
Bai thuyettrinh2tin10
Bai thuyettrinh2tin10Bai thuyettrinh2tin10
Bai thuyettrinh2tin10
 
Bai2_TIN10
Bai2_TIN10Bai2_TIN10
Bai2_TIN10
 
Dien tu so
Dien tu soDien tu so
Dien tu so
 
Kỹ thuật số
Kỹ thuật sốKỹ thuật số
Kỹ thuật số
 
đồ áN nhóm 18. nguyễn hoàng hải nguyễn hoàng minh đạo văn ty.
đồ áN nhóm 18. nguyễn hoàng hải nguyễn hoàng minh đạo văn ty.đồ áN nhóm 18. nguyễn hoàng hải nguyễn hoàng minh đạo văn ty.
đồ áN nhóm 18. nguyễn hoàng hải nguyễn hoàng minh đạo văn ty.
 
250 CÂU TN TIN.doc
250 CÂU TN TIN.doc250 CÂU TN TIN.doc
250 CÂU TN TIN.doc
 
Baigiang bai2c1lop10
Baigiang bai2c1lop10Baigiang bai2c1lop10
Baigiang bai2c1lop10
 
Tailieu.vncty.com he dieu hanh
Tailieu.vncty.com   he dieu hanhTailieu.vncty.com   he dieu hanh
Tailieu.vncty.com he dieu hanh
 
Bai 2-t tva-dl-k10
Bai 2-t tva-dl-k10Bai 2-t tva-dl-k10
Bai 2-t tva-dl-k10
 
CHƯƠNG I_Lop10 bai2_THÔNG TIN VÀ DỮ LIỆU
CHƯƠNG I_Lop10  bai2_THÔNG TIN VÀ DỮ LIỆUCHƯƠNG I_Lop10  bai2_THÔNG TIN VÀ DỮ LIỆU
CHƯƠNG I_Lop10 bai2_THÔNG TIN VÀ DỮ LIỆU
 
Lop10 _Chương1_ Bài 2 : Thông Tin Và Dữ Liệu
Lop10 _Chương1_ Bài 2 : Thông Tin Và Dữ Liệu Lop10 _Chương1_ Bài 2 : Thông Tin Và Dữ Liệu
Lop10 _Chương1_ Bài 2 : Thông Tin Và Dữ Liệu
 
250 câu TN có đáp án.pdf
250 câu TN có đáp án.pdf250 câu TN có đáp án.pdf
250 câu TN có đáp án.pdf
 
De kiem tra tin hoc 10 lan 1
De kiem tra tin hoc 10 lan 1De kiem tra tin hoc 10 lan 1
De kiem tra tin hoc 10 lan 1
 
Tin hoc dai cuong
Tin hoc dai cuongTin hoc dai cuong
Tin hoc dai cuong
 
Bai 1 Gioi Thieu Cntt
Bai 1   Gioi Thieu CnttBai 1   Gioi Thieu Cntt
Bai 1 Gioi Thieu Cntt
 
Bai giang tin_hoc_co_ban
Bai giang tin_hoc_co_banBai giang tin_hoc_co_ban
Bai giang tin_hoc_co_ban
 

chapter1.xx.IntroductionToComputer.pdf

  • 2. Phần 1 Tin học căn bản Giới thiệu tổng quan về máy tính
  • 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
  • 4. 1.1 Các khái niệm cơ bản
  • 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
  • 7. 1.2 Lịch sử phát triển của máy tính
  • 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ũ) …
  • 10. Máy tính thế hệ 1 Máy tính EDIVAC
  • 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ũ),….
  • 12. Máy tính thế hệ 2 MINSK-2
  • 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ũ),...
  • 14. Máy tính thế hệ 3 Máy IBM-360
  • 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”
  • 16. Máy tính thế hệ 4 Desktop PC Laptop Tablet PC
  • 17. 1.3 Lịch sử phát triển của phần mềm
  • 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
  • 24. Lịch sử phát triển của phần mềm Web application
  • 25. 1.4 Biểu diễn dữ liệu trong máy tính
  • 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      
  • 32. Số tự nhiên  Giá trị của 943 trong hệ cơ số đếm 13
  • 33. Số tự nhiên  Biểu diễn số hệ 10 Máy IBM 650
  • 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
  • 48. 1.4.2 Dữ liệu và máy tính
  • 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.
  • 54. Biểu diễn bằng giá trị nhị phâ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) + +
  • 69. 1.4.4 Biểu diễn số thực
  • 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
  • 105. Biểu diễn hình ảnh và đồ họa
  • 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
  • 108. 1.4.8 Biểu diễn video •Biểu diễn video •Các chuẩn mã hóa
  • 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ý
  • 114. Cổng và mạch  Cổng AND  Cổng OR X A B   X A B  
  • 115. Cổng và mạch  Cổng XOR  Cổng NAND X A B   X A B  
  • 116. Cổng và mạch  Cổng NOR X A B  
  • 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)
  • 120. Cổng và mạch  Mạch tạo thành từ việc kết hợp các cổng, để thực hiện các thao tác phức tạp. VD. Bộ cộng 2 bit không nhớ
  • 121. Cổng và mạch  Bộ cộng có nhớ
  • 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.
  • 124. 1.6 Tổ chức của máy tính
  • 125. Tổ chức của máy tính
  • 126. Tổ chức của máy tính
  • 127. Tổ chức của máy tính
  • 128. Tổ chức của máy tính
  • 129. Tổ chức của máy tính Các bộ phận cơ bản của máy tính
  • 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
  • 137. Tổ chức của máy tí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
  • 140. Tổ chức của máy tính Băng từ
  • 141. Cấu tạo ổ cứng
  • 142. Tổ chức của máy tính
  • 143. Tổ chức của máy tính Đĩa quang (CD/DVD)
  • 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
  • 145. 1.7 Mạng – Network
  • 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)
  • 149. Mạng – Network  Kết nối giữa nhiều mạng
  • 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…) ……
  • 158. Mạng – Network  Tỉ lệ dùng internet tại VietNam
  • 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.
  • 168. Hệ điều hành  Các trạng thái của tiến trì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
  • 174. Hệ điều hành  Cây thư mục
  • 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
  • 177. 1.9 Các hệ thống ứng dụng
  • 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
  • 182. Bảng tính - spreadsheet
  • 183. Bảng tính - spreadsheet
  • 184. Bảng tính - spreadsheet
  • 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ì?
  • 193. 1.XX Trí tuệ nhân tạo
  • 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)
  • 202. Phương pháp thiết kế top-down  Phương pháp thiết kế top-down
  • 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
  • 204. Phương pháp thiết kế top-down  Chia nhỏ bài toán
  • 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
  • 226. Sắp xếp nổi bọt 3 2 5 1 7 Lần lặp 2 3 2 5 1 7 2 3 5 1 7 2 3 5 1 7 2 3 5 1 7 2 3 1 5 7 2 3 1 5 7 kết thúc lần lặp 2
  • 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
  • 235. 1.11. Ngôn ngữ lập trình
  • 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
  • 238. Ngôn ngữ lập trình
  • 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
  • 242. Ngôn ngữ lập trình
  • 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
  • 244. Ngôn ngữ lập trình