TIN HỌC ĐẠI CƯƠNG
Nguyễn Duy Hiệp
hiepnd@soict.hust.edu.vn
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
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. Các khái niệm cơ bản
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
Thế hệ 1 (1951-1959):
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ệ
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ỗ
Tốc độ: 300 - 3.000 phép tính/s
Kích thước lớn, tiêu thụ năng lượng nhiều
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
IBM-1070 (Mỹ) hay MINSK (Liên Xô cũ),….
Tốc độ 10.000 -100.000 phép tính/s
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
IBM-360 (Mỹ)
Tốc độ 100.000 - 1 triệu phép tính/s
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
Máy tính thế hệ thứ 5?
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
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 kỳ
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ệnh biểu diễn bằng mã máy
Lập trình viên phải nhớ các
Việc lập trình rất tốn thời gian và có nhiều lỗi
cho các lệnh bằng mã máy
Ra đời ngôn ngữ assembly sử dụng các từ gợi nhớ thay
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ư
Người lập trình ứng dụng: là người sử dụng các công cụ
assembler và trình biên dịch
để 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
Người sử dụng máy tính không phải là lập trình viên
đời, Statistical Package for the Social Sciences (SPSS)
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
nghiệm lập trình có thể dùng
spreadsheets, word processors, và database
management systems Lotus 1-2-3, WordPerfect, dBase IV
Phần mềm phát triển mạnh, người dùng không có kinh
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
Tài liệu
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.
dụng trên những giá trị này.
Số biểu diễn một giá trị và các phép toán phù hợp có thể áp
Số tự nhiên: 0,1,…
Số âm: -1, -45
Số hữu tỉ: 1.03, 1.4, 1.0
Số nguyên: 1, 2, 4, -3
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ệ 10: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Hệ 8: 0, 1, 2, 3, 4, 5, 6, 7
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 kỳ
với cơ số x là :
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
dùng 2 số {0,1}
Hệ nhị phân: là hệ cơ số đếm quan trọng trong máy tính
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
Ký hiệu
Giá trị (trong hệ 10)
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
0101 010
+
0010 1010 ( 42) 0110 1011 (107)
1001 0101 (149)
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
Phép toán trên hệ nhị phân
Phép trừ:
-
11 113 57
056
-
0222 222 1111 11 1010 1001 (169) 0110 1011 (107)
0011 1110 ( 62)
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
Thay số cần đổi bằng phần nguyên của phép chia
Phần dư là số tiếp theo ở bên trái kết quả
Đổ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
Đổi số sau từ hệ 16 sang hệ nhị phân 12AC
c) 102 sang số trong hệ nhị phân
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.
nhiều byte tùy thuộc và từng máy)
Các bit được nhóm lại với nhau thành byte (8bit), word (1 hay
Máy IBM 370 (máy 32 bit) có half word (2 byte), full word
1001 0011 1010 0001
(4 byte) và double word(16 byte)
Byte 2
Byte 1
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
Màu sắc trong tự nhiên là liên tục
Trục số: các giá trị là vô hạn từ số nhỏ đến lớn
Máy tính là hữu hạn: không thể biểu diễn thế giới vô hạn
Thông tin biểu diễn dưới 2 dạng:
trong máy tính
Tương tự (analog) biểu diễn liên tục, theo đúng cái mà
Dạng số (digital) biểu diễn rời rạc, chia thông tin thành các
thông tin biểu diễn
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
Biểu diễn số nguyên không dấu
Dùng 8 bit (1 byte)
Trục số học máy tính:
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:
65
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ố khác dấu
Cộng hai số cùng dấu: thực hiện như bình thường.
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ó
Biểu diễn số âm
Cách biểu diễn số âm là :
Cách biểu diễn số âm trên là bù 10
(k là số lượng chữ số)
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
Biểu diễn số âm
Trong máy tính, số âm biểu diễn
bằng bù hai
với số âm bằng bù 10
Cách cộng và trừ hoàn toàn giống
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
+
101 ( 5) 1011 (-5)
Số âm của 101 = (1111-101) + 1
Tips: 10000 = 1111+1
1 0000 ( 0)
Tính 1111-101: chỉ cần đảo các bit
của 101 - Bit 0 thành 1 và 1 thành 0
Biểu diễn số âm
Chuyển đổi giá trị số về hệ 10 :
VD. 1011 (-5) = −𝟏 ∗ 𝟐𝟑 + 𝟎 ∗ 𝟐𝟐 + 𝟏 ∗ 𝟐𝟏 + 𝟏 ∗ 𝟐𝟎
𝐴 = 𝑎𝑛−1𝑎𝑛−2 … 𝑎1𝑎0 = −𝑎𝑛−1 ∗ 2𝑛−1 + 𝑎𝑛−2 ∗ 2𝑛−2+. . +𝑎0 ∗ 20
Tổng quát với số nguyên có dấu biểu diễn bằng n bit
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ố
+
+
0011 ( 3) 0111 ( 7)
1010 (-3) 1001 (-7)
1010 (-6)
1 0011 ( 3)
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!
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)
VD: Các số thực trong hệ 10 như 104.32 0.999999 357.0 và 3.14159
Số thực gồm 2 phần: phần nguyên và phần thập phân (phần lẻ)
Dấu ‘.’ được gọi là điểm ngăn cách giữa phần nguyên và phần lẻ
Giá trị được biểu diễn bởi số trong hệ cơ số x
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
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
12.125 = 1100.001(2)
0.250 2
1100
001
0.500 2
1.000
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
Dấu (chỉ ra số dương hay âm)
Một giá trị thực gồm 3 phần:
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
Số thực dấu phảy động trong hệ 10
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
Biểu diễn số thực
Để lưu trữ trong máy tính, ta lưu trữ cả 3 giá trị này
Biểu diễn số thực dấu phảy động bằng số nhị phân
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ũ
Dải giá trị từ 10-38 đến 10+38.
23 bit biểu diễn phần số
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ũ
Dải giá trị từ 10-308 đến 10+308
52 bit biểu diễn phần số
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
Trong nhiều ngôn ngữ, cách biểu diễn này là mặc định khi in ra số
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.
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
Mũ (Exponent)
Độ lệch mũ (Exponent Bias)
Dấu (sign)
Giá trị (fraction)
Tổng cộng (bit)
1
5
15
10
16
Half (IEEE 754-2008)
Single
1
8
127
23
32
Double
1
11
1023
52
64
Quad
1
15
16383
112
128
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ị:
Mũ = 127 + 3 = 130 (=1000 0010)
Dấu = 0 (vì số dương)
Giá trị = 01001
= 41 24 00 00(16)
A = 0100 0001 0010 0100 0000 0000 0000 0000
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
90
Một số giá trị đặc biệt
Số 0
+0: 0000 0000 0000 0000 0000 0000 0000 0000
±∞
−0: 1000 0000 0000 0000 0000 0000 0000 0000
+∞: 0111 1111 1000 0000 0000 0000 0000 0000
−∞: 1111 1111 1000 0000 0000 0000 0000 0000
NaN : không phải số
Bit dấu nhận giá trị bất kỳ, bit giá trị có thể là bất kỳ trừ tất cả là giá trị 0 (tránh trùng với số ±∞)
X111 1111 1YYY YYYY YYYY YYYY YYYY YYYY
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)
a) 17.625
2. Tìm biểu diễn của các số thực sau theo chuẩn IEEE754/85 (32 bit)
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ự
và lưu trữ các ký tự đó trong máy tính
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,
Phân biệt văn bản text và document
Text chỉ gồm các ký tự, không có bất kỳ định dạng nào
(notepad)
ảnh, âm thanh,… (MS Word, wordpad)
Document ngoài các ký tự có các định dạng còn có thể có
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.
tương ứng
Lưu trữ mỗi ký tự trên máy bằng cách lưu chuỗi số nhị phân
để biểu diễn cho ký tự đó. VD. Bảng mã ASCII và bảng mã Unicode
Bảng ký tự: là một danh sách ký tự và mã nhị phân tương ứng
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
keyword encoding
run-length encoding
Huffman encoding
3 phương pháp mã hóa văn bản hay dùng
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
Thay thế chuỗi ký tự lặp lại bằng ký tự cờ + ký tự được lặp và
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.
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ừ)
Ví dụ: mã hóa cho DOORBELL
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.
Huffman Code Character ta được chuỗi mà hóa nhị phân là
111 B
11000001001111010101
110
D
Nếu dùng từ mã độ dài 101 E
100 R cố định(VD 8bit) để mã hóa cho ký tự thì cần 8*8=64 bit
01
L
Tỉ lệ nén : 20/64=0.31 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 lại tín hiệu liên tục.
Để tạo ra âm thanh: từ các giá trị điện thế lưu trong máy, ta
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
dạng
Nếu tốc độ lấy mẫu thấp thì ta sẽ nghe thấy âm thanh bị biến
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 phương pháp nén được dùng
Bao gồm cả nén mất mát và không mất mát
Thông dụng nhất là MP3 (MPEG-2, audio layer 3 file)
Phân tích các tần số, loại bỏ các tần số mà tai người không
Mã hóa các chuỗi bit dùng Huffman
nghe được (20-20,000 Hz)
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 đó
RGB. Mỗi giá trị nằm trong khoảng từ 0-255
Màu sắc biểu diễn trên máy tính bằng một bộ 3 giá trị
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).
1 bit thừa biểu diễn trong suốt
HiColor: dùng 16 bit biểu diễn 1 màu: 5 bit/1 thành phần,
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).
(resolution)
Số lượng điểm ảnh biểu diễn một ảnh là độ phân giải
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 điểm ả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:
Một vector graphic là một chuỗi các lệnh mô tả các
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.
đường, độ dày, màu sắc và hướng
các ảnh trong thế giới thực !
Kích thước lưu trữ nhỏ nhưng không phù hợp để lưu trữ
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
nhiều khối hình chữ nhật)
Hầu hết sử dụng mã hóa theo khối (chia một khung hình thành
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:
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.
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
Các Video codec thông dụng: Sorenson, Cinepak, MPEG, và
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
Cổng có thể có 1 hoặc nhiều đầu vào nhưng chỉ có 1 đầu ra
hiệu điện.
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
Ký hiệu trên sơ đồ
Bảng chân lý
Cổng và mạch
Cổng AND
Cổng OR
Cổng và mạch
Cổng XOR
Cổng NAND
Cổng và mạch
Cổng NOR
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
nhau để giảm số lượng chân ở đầu ra của chip
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
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
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
chuyển thông tin này tới các khối khác để xử lý.
Khối đầu vào: là nơi nhận thông tin từ các thiết bị đầu vào, và
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
Bộ nhớ tạm thời
Physical RAM: RAM vật lý
Virtual memory: bộ nhớ ảo (thường dùng ổ cứng)
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à
thực hiện
Thanh ghi lệnh (instruction register): chứa lệnh đang được
Bộ đếm chương trình (program counter): chứa địa chỉ
Bus : đường truyền dữ liệu
lệnh tiếp theo sẽ được thực hiện
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)
Nhận lệnh
2. Giải mã lệnh (decode instruction)
3. Nhận dữ liệu nếu cần (get data)
Thực hiện lệnh
4. Thực hiện lệnh (execute the instruction)
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
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
ROM: Bộ nhớ chỉ đọc
Lưu trữ dữ liệu trong quá trình thực hiện
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
Cấu tạo ổ cứng
Tổ chức của máy tính
Tổ chức của máy tính
Băng từ
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
Email, chat, web … dựa trên trao đổi thông tin trong mạng
nhau theo một cách nào đó để có thể giao tiếp và chia sẻ thông tin
Chia sẻ tài nguyên : máy in, file, máy quét,…
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)
Kết nối giữa các máy tính trong mạng có thể thông qua 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
đề hiểu như là băng thông mạng
Tốc độ truyền dữ liệu là một vấn đề quan trọng của mạng, được
âm thanh và video chiếm nhiều băng thông của mạng
VD TCP/IP
Giao thức mạng: là tập các quy tắc mô tả cách thức giao tiếp.
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
LAN (Local Area Network) phạm vi hẹp(<500m)
Theo quy mô
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
gói tin trên mạng là router
Thiết bị dùng để điều hướng truyền
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.
web khác
Một trang web cũng chứa các đường link(kết nối) tới các trang
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)
internet. Máy tính đó được gọi là web server.
Trang web được lưu trữ trên một máy tính ở đâu đó trên mạng
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
Tán gẫu (Chat)
Thư điện tử (E-mail)
Giải trí (game, film, nhạc…)
……
Review
1. Mạng máy tính là gì?
2. Tác dụng của mạng máy tính
4. Phân loại mạng máy tính
3. Để kết nối mạng ta cần những thiết bị gì?
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
Cung cấp giao diện tương tác giữa người và máy
ra.
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ỗ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 hệ thống máy tính có thể có nhiều hơn một hệ điều hành,
MS-DOS, …
Một số hệ điều hành thông dụng: Windows, Unix, Linux, Mac OS,
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
nhớ và vị trí của chúng
Quản lý bộ nhớ: theo dõi các chương trình được nạp vào bộ
Tiến trình: là một chương trình đang được thực hiện (được
Quản lý tiến trình: theo dõi các tiến trình đang thực hiện và
nạp vào bộ nhớ)
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.
mình đang dùng 1 máy tính riêng.
Chia sẻ thời gian thực làm cho người dùng có cảm tưởng là
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ý vị trí và cách 1 chương trình nạp trong bộ nhớ
Quản lý bộ nhớ :
Chuyển đổi địa chỉ logic của chương trình thành địa chỉ vật
Bộ nhớ trong (RAM) được quản lý theo các ô nhớ, mỗi ô có
lý của bộ nhớ
kích thước là 1 Byte, và được đánh địa chỉ.
Địa chỉ ô nhớ
00000000
10010101
00000001
11010101
00000010
10010100
10000101
00010101
11111111
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
File ảnh JPG, GIF, BMP
Vd file nhạc MP3, WMA,
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 ?
6. Quản lý bộ nhớ máy tính là làm gì ?
5. Tiến trình ?
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
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
Bảng tính: là công cụ thuận tiện để phân tích 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.
toán giá trị.
Một ô có thể chứa dữ liệu hoặc các công thức sử dụng để tính
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.
trữ trong cơ sở dữ liệu.
Lược đồ dữ liệu: chỉ ra cấu trúc logic của dữ liệu được lư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.
chức dưới dạng bảng.
Các phần tử dữ liệu và mối quan hệ giữa chúng được tổ
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 …
SELECT * FROM user WHERE Username = 'Nguyen Van A';
VD.
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
Project 1: Cách mạng 4.0
1. Trình bày về khái niệm cách mạng công nghệ 4.0
+ Cách mạng 4.0 là gì, khác gì so với 3.0, 2.0 + Nền tảng của 4.0 dựa trên gì + Cách mạng 4.0 làm thay đổi việc sản xuất như thế nào? + Một số ví dụ của công nghệ 4.0 + Những vấn đề mà cách mạng 4.0 cần xử lý + Người dân bình thường được hưởng lợi thế nào? + Xu hướng nghề nghiệp sẽ thay đổi ra sạo?
Project 2: SmartHome
2. Công nghệ điều khiển, giao tiếp các thiết bị trong
smarthome - nhà thông mình + Nhà thông minh là gì? + Có các mô hình giao tiếp giữa các thiết bị trong smarthome nào? Đặc điểm của các mô hình đó ra sao? + Việc bảo mật như thế nào? + Hiện tại có các hãng nào đang dẫn đầu trong lĩnh vực này
Project 3: Năng lượng tái tạo
3. Năng lượng tái tạo
+ Năng lượng tái tạo là gì, có những nguồn nào? + Hiện tại năng lượng tái tạo đang được sử dụng tại dâu? + Có những vấn đề khó khăn gì với năng lượng tái tạo + với người dùng cá nhân thì có thể tham gia vào đâu trong sử dụng năng lượng tái tạo + kể tên những công ty lớn áp dụng năng lượng tái tạo trong sản xuất
Project 4: Trí tuệ nhân tạo
4. Trí tuệ nhân tạo - học máy
+ trí tuệ nhân tạo là gì ? + Trí tuệ nhân tạo đang được ứng dụng trong sản xuất thế nào? + Trong cuộc sông hàng này, trí tuệ nhân tạo đang được ứng dụng tại đâu + Những công ty nào đang dùng trí tuệ nhân tạo phục vụ sản xuất? + những vấn đề khó khăn mà trí tuệ nhân tạo đang gặp phải
5. Tìm hiểu về công nghệ Block chain
Block chain là gì ?
Cơ chế hoạt động của block chain ra sao
Ứng dụng của Block chain trong tiền ảo (bitcoin)?
Hợp đồng thông minh
Ứng dụng của block chain trong các lĩnh vực khác
Giám sát nguồn gốc thực phẩm
…..
6. Tìm hiểu về học sâu – Deep Learning
Học sâu là gì, khác gì so với học máy – Machine Learning
Có các mô hình học sâu phổ biến nào
Ứng dụng của mô hình học sâu
Ứng dụng trong thực tế? – trợ lý ảo,..
Nhận dạng, phân loại,…
7. Tìm hiểu về nhận dạng (dọng nói hoặc chữ viết)
Có các mô hình nào để nhận dạng chữ viết
Ưu nhược điểm của các mô hình ra sao
Demo một mô hình nhận dạng chữ viết cơ bản dùng mạng
neural (dùng ngôn ngữ bất kỳ)
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 3: Thực hiện phương á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 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
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 đề bằng máy tính
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
Phương pháp thiết kế hướng đối tượng: dữ liệu và các
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
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.
Mời mọi người
Chuẩn bị đồ ăn
Bài toán có thể chia nhỏ thành :
Mời mọi người: Chưa thể gọi điện để mời vì ta chưa biết cần
Lên danh sách khách
Gọi điện cho khách
mời những ai. Do đó thao tác này được chia tiếp
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
Lên 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
Chưa có thì lấy bút (mua bút)
Bạn có bút chưa?
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)
Phương pháp thiết kế top-down
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
Nhập vào thông tin khách Mức 1
Nhập vào từ bàn phím
Thêm vào danh sách
Kiểm tra đủ thông tin
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
read địachỉ
write “Nhập địa chỉ”
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)
read họtên
write “Nhập họ tên”
if (thiếu địachỉ)
write “Nhập địa chỉ”
read địachỉ
write “Nhập số điện thoại”
if (thiếu Sốđiệnthoạ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
5 7 9 8 3
2
max
3 max = 3
5 max<5
7
max<7
9
max<9
9 max>2
9 max>8
9 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, Chuyển qua bước 6
B5: Quay lên B2.
B3: Nếu ai > Max, gán Max bằng ai . B4: Tăng i lên 1 đơn vị.
B6: In ra Max (là giá trị lớn nhất cần tìm)
Giải quyết vấn đề và thiết kế thuật toán
Giải quyết vấn đề và thiết kế thuật toán
Một số khối trong sơ đồ khối dùng biểu diễn 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
Nối tiếp đoạn lệnh
Luồng thực hiệ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
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
Hướng mũi tên trong sơ đồ khối
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ước 2: in ra giá trị của Max
Biểu diễn thuật toán
Cấu trúc lặp
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
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
Dãy ban đầu
3
5
2
7
1
3
5
2
7
1
lần lặp 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
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
Lần lặp 3
2
3
1
5
7
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
Lần lặp 4
2
1
3
5
7
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
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ố
Số nguyên tố là số chỉ chia hết cho 1 và chính nó.
Ý tưởng:
Để 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 kỳ 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
Nếu sai thì chuyển sang Bước 6 Nếu đúng thì chuyển sang Bước 4
Bước 3: so sánh 𝑖 ≤ 𝑛.
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
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
5. Trình bày phương pháp thiết kế top-down
4. Thuật toán là gì
1.11. Ngôn ngữ lập trình
1.11. 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).
1.11. 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ể.
Dùng từ tiếng anh viết tắt để biểu diễn một số lệnh
Hợp ngữ (assembly)
Phải qua bộ dịch assembler
1.11. Ngôn ngữ lập trình
1.11. 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,
Phải có bộ dịch sang ngôn ngữ máy
có tính độc lập cao
1.11. Ngôn ngữ lập trình
#include
int main()
{
for(int i=0; i<10; i++)
printf("Hello world !\n");
return 0;
}
1.11. 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
1.11. Ngôn ngữ lập trình
1.11. 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ự
ngôn ngữ máy chuẩn). Máy ảo java (JVM) thực thi chương trình viết bằng Bytecode
Chương trình Java được dịch sang Bytecode (là một dạng của
Bất kỳ máy tính nào có JVM đều có thể chạy chương trình java
đã biên dịch