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ệ 11951-1959 Chương trình đầu tiên được viết bằng ngôn ngữ máy mã 0,1 Lập trình
Trang 1Nguyễn Duy Hiệp
hiepnd@soict.hust.edu.vn
TIN HỌC ĐẠI CƯƠNG
Trang 2Phần 1
Tin học căn bản
Giới thiệu tổng quan về máy tính
Trang 3Phầ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
Trang 41.1 Các khái niệm cơ bản
Trang 51 Các khái niệm cơ bản
Trang 61 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.
Trang 71 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
Trang 81 Các khái niệm cơ bản
Trang 91.2 Lịch sử phát triển của máy tính
Trang 10Lị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
Trang 11Lịch sử phát triển của
máy tính
Lịch sử phát triển của máy tính điện tử thực sự
bắt đầu từ 1951, cho tới này đã trải qua 4 thế hệ
Thế hệ 1 (1951-1959):
Sử dụng đèn chân không để lưu thông tin
Bộ nhớ : trống từ
Đầu vào: bìa đục lỗ
Kích thước lớn, tiêu thụ năng lượng nhiều
Tốc độ: 300 - 3.000 phép tính/s
EDVAC (Mỹ), BESEM (Liên Xô cũ) …
Trang 12Máy tính thế hệ 1
Máy tính EDIVAC
Trang 13Lịch sử phát triển của máy tính
Trang 14Máy tính thế hệ 2
MINSK-2
Trang 15Lịch sử phát triển của máy tính
Trang 16Máy tính thế hệ 3
Máy IBM-360
Trang 17Lị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”
Trang 18Máy tính thế hệ 4
Desktop PC
Laptop
Tablet PC
Trang 19Máy tính thế hệ thứ 5?
Trang 211.3 Lịch sử phát triển của phần mềm
Trang 22Lịch sử phát triển của phần mềm
Trang 23 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ập trình viên phải nhớ các
lệnh biểu diễn bằng mã máy
Việc lập trình rất tốn thời gian và có nhiều lỗi
Ra đời ngôn ngữ assembly sử dụng các từ gợi nhớ thay
cho các lệnh bằng mã máy
Chương trình assembler dịch các từ gợi nhớ thành mã
máy
Trang 24Lị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ìnhbậc cao
FORTRAN, COBOL, Lisp
Mỗi ngôn ngữ có chương trình dịch sang ngôn ngữ máyriêng gọi là compiler.
Người lập trình hệ thống: người viết những công cụ như
assembler và trình biên dịch
Người lập trình ứng dụng: là người sử dụng các công cụ
để viết các chương trình
Trang 25Lịch sử phát triển của phần mềm
Thế hệ 3 (1965-1971)
Sự ra đời của hệ điều hành để điều khiển máy tính
Hệ điều hành, chương trình dịch và các chương trình tiệních được gọi là phần mềm hệ thống
Các chương trình ứng dụng với mục đích chung được rađời,
Statistical Package for the Social Sciences (SPSS)
Người sử dụng máy tính không phải là lập trình viên
Trang 26Lị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ênrộng
Trang 27Lị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
Trang 28Lị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
Trang 29Lịch sử phát triển của phần mềm
Web application
Trang 32Tài liệu
Trang 331.4 Biểu diễn dữ liệu trong máy tính
Trang 34 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
Trang 351.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
Trang 36Các loại số
Số là một đơn vị thuộc hệ thống toán học cơ bản, là đối tượng
của luật liên tiếp, cộng, và nhân
Số biểu diễn một giá trị và các phép toán phù hợp có thể ápdụng trên những giá trị này
Số tự nhiên: 0,1,…
Số âm: -1, -45
Số nguyên: 1, 2, 4, -3
Số hữu tỉ: 1.03, 1.4, 1.0
Trang 38Số 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
Trang 40Số tự nhiên
Giá trị của 943 trong hệ cơ số đếm 13
Trang 41Số tự nhiên
Biểu diễn số hệ 10
Máy IBM 650
Trang 42Số tự nhiên
Hệ nhị phân: là hệ cơ số đếm quan trọng trong máy tính
dùng 2 số {0,1}
Hệ cơ số 8 (hệ octa) và 16 (hệ hexadecimal) là các hệ cơ số
giúp chúng ta viết gọn hệ nhị phân
Trang 44Số 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:
Trang 45Phép toán trên hệ nhị phân
Thực hiện cộng các số nhị phân sau:
0101 010
Trang 46Phép toán trên hệ nhị phân
Phép trừ:
1010 1001 (169)
0110 1011 (107)
0011 1110 ( 62) -
Trang 47Phé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
Trang 48Phép toán trên hệ nhị phân
Phép nhân
1011 (11)
1101 (13)
1011 0000
1011
1011
Trang 49Phép toán trên hệ nhị phân
-
-147/11 = 13 và dư 4
Trang 51Số tự nhiên
Chuyển đổi số hệ 10 sang các hệ khác:
Trong khi số cần đổi còn khác 0
Chia số cần đổi cho hệ cơ số cần đổi
Phần dư là số tiếp theo ở bên trái kết quả
Thay số cần đổi bằng phần nguyên của phép chia
Trang 52Đổi số sang hệ cơ số mới
Trang 53Đổi số sang hệ cơ số mới
Hãy đổi các số hệ 10 sau
a) 1023 sang số trong hệ 16
b) 1034 sang số trong hệ 8
c) 102 sang số trong hệ nhị phân
Đổi số sau từ hệ 16 sang hệ nhị phân 12AC
Trang 54Giá 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 đạingày nay đều là máy nhị phân – dùng hệ nhị phân để biểu diễnsố
Thực tế không chỉ có số mà các dữ liệu và câu lệnh đều đượcbiể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
Trang 55Giá trị nhị phân và máy tính
Mỗi đơn vị nhớ trong máy tính gọi là 1 binary digit, viết tắt làbit
Các bit được nhóm lại với nhau thành byte (8bit), word (1 hay
nhiều byte tùy thuộc và từng máy)
Máy IBM 370 (máy 32 bit) có half word (2 byte), full word (4 byte) và double word(16 byte)
1001 0011 1010 0001
Byte 1 Byte 2
Word
Trang 561.4.2 Dữ liệu và máy tính
Trang 57Dữ 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
Trang 58Dữ 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 khinén hay không
Trang 59Dữ liệu và máy tính
Thông tin tương tự và thông tin số:
Trong tự nhiên hầu hết là liên tục và vô hạn
Trục số: các giá trị là vô hạn từ số nhỏ đến lớn
Màu sắc trong tự nhiên là liên tục
Máy tính là hữu hạn: không thể biểu diễn thế giới vô hạn
trong máy tính
Thông tin biểu diễn dưới 2 dạng:
Tương tự (analog) biểu diễn liên tục, theo đúng cái mà
thông tin biểu diễn
Dạng số (digital) biểu diễn rời rạc, chia thông tin thành các
phần tách rời
Trang 60Dữ 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
Trang 61Biể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 tacầ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
Trang 62Biểu diễn bằng giá trị nhị phân
Trang 631.4.3 Biểu diễn số nguyên
•Biểu diễn số âm
•Mã bù 2
•Tràn số
Trang 64Biể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
Trang 65255 254
Trục số học máy tính:
Trang 66Biể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ốngnhư là dịch đi trên trục số một số lần nút đơn vị, theo chiềută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
Trang 67Biể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
Trang 68Biểu diễn số âm
Cộng hai số: thực hiện cộng như bình thường, nhưng loại bỏ
những phần vượt quá (vd bỏ các chữ số hàng trăm)
Cộng hai số cùng dấu: thực hiện như bình thường
Cộng hai số khác dấu
Chuyển về số dươngtương ứng, rồi cộng sau đó chuyển đổi kết quả nếu cần
Trang 69Biểu diễn số âm
Trừ hai số:
Trừ hai số bằng cách cộng với giá trị âm của nó
A B A B
Trang 70Biểu diễn số âm
Cách biểu diễn số âm là :
(k là số lượng chữ số)
Cách biểu diễn số âm trên là bù 10
Cách biểu diễn trên làm việc tính toán với máy tính dễ dàng hơn
So am x x
Trang 71Biểu diễn số âm
Trong máy tính, số âm biểu diễnbằng bù hai
Cách cộng và trừ hoàn toàn giốngvới số âm bằng bù 10
Trang 72Biể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
Trang 73Biểu diễn số âm
Chuyển đổi giá trị số về hệ 10 :
VD 1011 (-5) = −𝟏 ∗ 𝟐𝟑 + 𝟎 ∗ 𝟐𝟐 + 𝟏 ∗ 𝟐𝟏 + 𝟏 ∗ 𝟐𝟎Tổng quát với số nguyên có dấu biểu diễn bằng n bit
𝐴 = 𝑎𝑛−1𝑎𝑛−2 … 𝑎1𝑎0 = −𝑎𝑛−1 ∗ 2𝑛−1 + 𝑎𝑛−2 ∗ 2𝑛−2+ +𝑎0 ∗ 20
Trang 74Biể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
Trang 75Biể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 ÷ (2 k-1 -1) và số âmtrong khoảng -1 ÷ -2 k-1
Trang 76Biểu diễn số âm
Tràn số
Tổng hai số cùng dấu lại là một số khác dấu !
Tràn số là ví dụ của vấn đề chuyển thế giới vô hạn vào máy hữuhạn!
Trang 771.4.4 Biểu diễn số thực
Trang 78 Giá trị được biểu diễn bởi số trong hệ cơ số x
Trang 79Biể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
Trang 800 250 2
0 500 2
1 000 12.125 = 1100.001(2)
Trang 81Biể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ênmá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ị
Trang 82Biểu diễn số thực
Nếu mũ có giá trị dương thì dịch ‘.’ sang phải, nếu giá trị âm thìdịch sang trái
Số thực dấu phảy động trong hệ 10
* *10 mu
dau giatri
Trang 83Biểu diễn số thực
Biểu diễn số thực dấu phảy động bằng số nhị phân
Để lưu trữ trong máy tính, ta lưu trữ cả 3 giá trị này
VD Dùng 32 bit (4 byte) để lưu trữ 1 số thực thì
1 bit biểu diễn dấu (0 là dấu +, 1 là dấu -)
8 bit biểu diễn phần mũ
23 bit biểu diễn phần sốDải giá trị từ 10-38 đến 10+38
* * 2 mu
dau giatri
Trang 84Biểu diễn số thực
Dùng 64 bit (8 byte) để lưu trữ 1 số thực thì
1 bit biểu diễn dấu (0 là dấu +, 1 là dấu -)
11 bit biểu diễn phần mũ
52 bit biểu diễn phần số
Dải giá trị từ 10-308 đến 10+308
Trang 87Độ lệch mũ (Exponent Bias)
Giá trị (fraction)
Tổng cộng (bit)
Trang 88Biể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ị
Trang 91 NaN : không phải số
X 111 1111 1 YYY YYYY YYYY YYYY YYYY YYYY
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ố ±∞)
Trang 931.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
Trang 94Biểu diễn văn bản – text
Văn bản (text): có thể chia thành các đoạn văn, câu, từ và các
ký tự
Biểu diễn văn bản: biểu diễn các ký tự xuất hiện trong văn bản,
và lưu trữ các ký tự đó trong máy tính
Phân biệt văn bản text và document
Text chỉ gồm các ký tự, không có bất kỳ định dạng nào
(notepad)
Document ngoài các ký tự có các định dạng còn có thể cóảnh, âm thanh,… (MS Word, wordpad)
Trang 95Biểu diễn văn bản – text
Biểu diễn ký tự: số lượng ký tự là hữu hạn Biểu diễn mỗi ký tự
bằng một chuỗi số nhị phân
Lưu trữ mỗi ký tự trên máy bằng cách lưu chuỗi số nhị phântương ứng
Bảng ký tự: là một danh sách ký tự và mã nhị phân tương ứng
để biểu diễn cho ký tự đó
VD Bảng mã ASCII và bảng mã Unicode
Trang 96Biểu diễn văn bản – text
Nửa đầu bảng mã ASCII (0-127)
Trang 97Biểu diễn văn bản – text
Một vài ký tự trong bảng mã Unicode-16
Trang 99Biểu diễn văn bản – text
Nén văn bản để lưu trữ và truyền văn bản một cách hiệu quả
trong máy, và giữa các máy khác nhau trên mạng
3 phương pháp mã hóa văn bản hay dùng
keyword encoding
run-length encoding
Huffman encoding
Trang 100Biể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
Trang 101Biể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
Trang 102Biểu diễn văn bản – text
run-length encoding – mã hóa loạt dài
Sử dụng trong trường hợp một ký tự được lặp đi lặp lại liêntiếp nhiều lần, VD trong chuỗi ADN, hoặc luồng dữ liệu lớn
Thay thế chuỗi ký tự lặp lại bằng ký tự cờ + ký tự được lặp vàtheo sau là số lần lặp
Ví dụ : AAAAAA được mã hóa là *A6
*n5*x9ccc*h6 some other text *k8eee
Là mã hóa của
nnnnnxxxxxxxxxccchhhhhh some other text kkkkkkkkeee
Tỉ lệ mã hóa 35/51=0.68
Trang 103Biểu diễn văn bản – text
Huffman Encoding – mã hóa Huffman
Mã hóa dựa trên tần suất xuất hiện của ký tự(hoặc từ)
trong văn bản Ký tự (hoặc từ) nào xuất hiện thường xuyênthì được mã hóa bằng chuỗi mã ngắn và ngược lại
Ví dụ: mã hóa cho DOORBELL
ta được chuỗi mà hóa nhị phân là