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

1.11. Ngôn ngữ lập trình