Professional Documents
Culture Documents
Bài giảng Tin học đại cương (Phần 1 - Tin học căn bản) - Nguyễn Duy Hiệp - 1521462
Bài giảng Tin học đại cương (Phần 1 - Tin học căn bản) - Nguyễn Duy Hiệp - 1521462
ĐẠI CƯƠNG
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ệ 2(1959-1965):
Transitor thay cho đèn chân
không
Bộ nhớ : dùng các hạt từ
(magnetic cores)
Lưu trữ: bằng đĩa từ
Kích thước vẫn lớn
Tốc độ 10.000 -100.000 phép tính/s
IBM-1070 (Mỹ) hay MINSK (Liên Xô cũ),….
Máy tính thế hệ 2
MINSK-2
Lịch sử phát triển của máy tính
Thế hệ 3(1965-1971):
Sử dụng các mạch tích hợp (IC), nhỏ, rẻ và nhanh hơn
Bộ nhớ dùng transitor
Đã có bàn phím và màn hình
Tốc độ 100.000 - 1 triệu phép tính/s
IBM-360 (Mỹ)
hay EC (Liên Xô cũ),...
Máy tính thế hệ 3
Máy IBM-360
Lịch sử phát triển của máy tính
Thế hệ 4(1971-?)
Máy tính sử dụng các mạch tích hợp cỡ lớn
Ra đời máy tính cá nhân (PC-Personal Computer)
Máy trạm workstations, khả năng tính toán mạnh hơn PC,
sử dụng trong thương mại
Tốc độ hàng chục triệu đến hàng tỷ phép tính/s
Pentium I, Pentium II …
Định luật Moore: “Máy tính sẽ tăng gấp đôi khả năng tính toán
với cùng mức giá hoặc giảm giá chỉ còn một nửa với cùng khả
năng tính toán cứ sau 18 tháng”
Máy tính thế hệ 4
Desktop PC
Laptop
Tablet PC
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ập trình viên phải nhớ các
lệnh biểu diễn bằng mã máy
Việc lập trình rất tốn thời gian và có nhiều lỗi
Ra đời ngôn ngữ assembly sử dụng các từ gợi nhớ thay
cho các lệnh bằng mã máy
Chương trình assembler dịch các từ gợi nhớ thành mã
máy.
Lịch sử phát triển của phần mềm
Thế hệ 2(1959-1965):
Sự ra đời của các
ngôn ngữ lập trình
bậc cao
FORTRAN, COBOL, Lisp
Mỗi ngôn ngữ có chương trình dịch sang ngôn ngữ máy
riêng gọi là compiler.
Người lập trình hệ thống: người viết những công cụ như
assembler và trình biên dịch
Người lập trình ứng dụng: là người sử dụng các công cụ
để viết các chương trình
Lịch sử phát triển của phần mềm
Thế hệ 3 (1965-1971)
Sự ra đời của hệ điều hành để điều khiển máy tính
Hệ điều hành, chương trình dịch và các chương trình tiện
ích được gọi là phần mềm hệ thống
Các chương trình ứng dụng với mục đích chung được ra
đời,
Statistical Package for the Social Sciences (SPSS)
Người sử dụng máy tính không phải là lập trình viên
Lịch sử phát triển của phần mềm
Khoảng cách giữa người dùng và phần cứng ngày càng trở nên
rộng
Lịch sử phát triển của phần mềm
Thế hệ 4(1971-1989):
Kỹ thuật lập trình cấu trúc ra đời
Pascal và Modula-2, BASIC, C và C++
Hệ điều hành tốt hơn, mạnh hơn
UNIX, PCDOS,MS-DOS
Phần mềm phát triển mạnh, người dùng không có kinh
nghiệm lập trình có thể dùng
spreadsheets, word processors, và database
management systems
Lotus 1-2-3, WordPerfect, dBase IV
Lịch sử phát triển của phần mềm
Thế hệ 5 (1990-nay)
ảnh hưởng của Microsoft, lập trình hướng đối tượng và
World Wide Web
Lịch sử phát triển của phần mềm
Web application
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 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ố tự nhiên: 0,1,…
Số âm: -1, -45
Số nguyên: 1, 2, 4, -3
Số hữu tỉ: 1.03, 1.4, 1.0
Số tự nhiên
934 = 900 + 30 + 4 ?
an an 1..a1a0
với cơ số x là :
n 1
an * x an 1 * x
n
.. a1 * x a0 * x
1 0
Số tự nhiên
Biểu diễn số hệ 10
A(16) = 11FF
A(16) = 2A0D
A(2) = 1101
A(2) = 1100 0011
A(2) = 1000 0010
Số tự nhiên
0101 010
0010 1010 ( 42)
+ 0110 1011 (107)
Phép trừ:
11
113
- 57
0222 222
056 1111 11
1010 1001 (169)
- 0110 1011 (107)
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
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
Các máy tính đầu tiên là máy thập phân, các máy tính hiện đại
ngày nay đều là máy nhị phân – dùng hệ nhị phân để biểu diễn
số.
Thực tế không chỉ có số mà các dữ liệu và câu lệnh đều được
biểu diễn bằng số nhị phân trong máy tính.
Mỗi đơn vị nhớ trong máy tính chứa tín hiệu điện thế thấp
hoặc điện thế cao, tương ứng với giá trị 0 hoặc 1.
Các đơn vị nhớ này không thể có trạng thái trống mà chỉ có
thể hoặc là 0 hoặc là 1.
Giá trị nhị phân và máy tính
Mỗi đơn vị nhớ trong máy tính gọi là 1 binary digit, viết tắt là
bit.
Các bit được nhóm lại với nhau thành byte (8bit), word (1 hay
nhiều byte tùy thuộc và từng máy)
Máy IBM 370 (máy 32 bit) có half word (2 byte), full word
(4 byte) và double word(16 byte)
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)
Nén mất mát thông tin (lossy) và nén không mất mát thông tin
(lossless): cho biết dữ liệu sau khi khôi phục có đúng như trước khi
nén hay không.
Dữ liệu và máy tính
Thông tin tương tự và thông tin số:
Trong tự nhiên hầu hết là liên tục và vô hạn
Trục số: các giá trị là vô hạn từ số nhỏ đến lớn
Màu sắc trong tự nhiên là liên tục
Máy tính là hữu hạn: không thể biểu diễn thế giới vô hạn
trong máy tính
Thông tin biểu diễn dưới 2 dạng:
Tương tự (analog) biểu diễn liên tục, theo đúng cái mà
thông tin biểu diễn
Dạng số (digital) biểu diễn rời rạc, chia thông tin thành các
phần tách rời
Dữ liệu và máy tính
Để 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
0000 0001 = 1
0000 0010 = 2
0000 0011 = 3
.....
1111 1111 = 255
Trục số học:
0 1 2 255
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.
Cộng hai số: thực hiện cộng như bình thường, nhưng loại bỏ
những phần vượt quá (vd bỏ các chữ số hàng trăm).
Cộng hai số cùng dấu: thực hiện như bình thường.
Cộng hai số khác dấu
Chuyển về số dương
tương ứng, rồi cộng
sau đó chuyển đổi
kết quả nếu cần
Biểu diễn số âm
So am( x) 10 x k
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
+ 101 ( 5)
Tips: 10000 = 1111+1 1011 (-5)
Số âm của 101 = (1111-101) + 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
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
Tràn số
0011 ( 3)
+ + 1010 (-3)
0111 ( 7) 1001 (-7)
1010 (-6) 1 0011 ( 3)
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)
Số thực gồm 2 phần: phần nguyên và phần thập phân (phần lẻ)
VD: Các số thực trong hệ 10 như 104.32 0.999999 357.0 và
3.14159
Giá trị được biểu diễn bởi số trong hệ cơ số x
Dấu ‘.’ được gọi là điểm ngăn cách giữa phần nguyên và phần
lẻ
Biểu diễn số thực
1 3 4
1101.1011(2) 2 2 2 2 2 2 11.6875(10)
3 2 0
Cách biểu diễn số thực trên có nhiều hạn chế khi áp dụng trên
máy tính trên máy tính ta áp dụng cách biểu diễn bằng số
thực dấu phảy động.
Số thực dấu phảy động : ta lưu trữ giá trị thực như một giá trị
nguyên
Một giá trị thực gồm 3 phần:
Dấu (chỉ ra số dương hay âm)
Số (chỉ ra các chữ số trong số thực)
Mũ (chỉ ra dấu ‘.’ phải dịch như thế nào trong phần số)
Biểu diễn số thực
Số thực dấu
phảy động
trong hệ 10
mu
dau * giatri *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
mu
dau * giatri * 2
Để 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.
Biểu diễn số thực
Biểu diễn số thực dấu phảy động khoa học (Scientific notation) :
dấu phảy luôn nằm bên phải chữ số ngoài cùng bên trái nhất.
Trong nhiều ngôn ngữ, cách biểu diễn này là mặc định khi in ra số
thực
VD. 12001.32708 sẽ được in ra là 1.200132708E+4
Chuẩn IEEE754/85 : quy định thống nhất việc biểu diễn số thực
trên máy tính
Biểu diễn số thực
VD. 10.25
Chuyển về nhị phân : 1010.01
Chuyển về dạng ±1. 𝑎𝑎𝑎𝑎 × 2𝑏 :1.01001 × 23
Các giá trị:
Dấu = 0 (vì số dương)
Mũ = 127 + 3 = 130 (=1000 0010)
Giá trị = 01001
A = 0100 0001 0010 0100 0000 0000 0000 0000
= 41 24 00 00(16)
Trục số biểu diễn
underflow
overflow overflow
¥ -b -a -0 +0 a b ¥
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ố
X111 1111 1YYY 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ố ±∞)
Biểu diễn số thực
1. Xác định giá trị của các số thực biểu diễn bởi IEEE754/85 (32 bit) sau
a) 41 75 00 00(16)
b) EC 12 A0 00(16)
2. Tìm biểu diễn của các số thực sau theo chuẩn IEEE754/85 (32 bit)
a) 17.625
b) 61.3125
c) -27.0625
d) -100.125
1.4.5 Biểu diễn văn bản (text)
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
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
Dàn âm thanh gửi tín hiệu điện tới loa để tạo ra âm thanh.
Tín hiệu điện là tín hiệu tương tự (là các dao động điện).
Loa sẽ chuyển dao động này thành dao động của không khí,
tạo ra âm thanh.
Biểu diễn âm thanh trên máy, ta phải rời rạc hóa nó thành các
phần mà ta có thể biểu diễn được.
Biểu diễn âm thanh
Chuyển đổi tính hiệu điện liên tục của điện thế thành chuỗi
các giá trị rời rạc (quá trình lấy mẫu)
Biểu diễn âm thanh
Để tạo ra âm thanh: từ các giá trị điện thế lưu trong máy, ta
tạo lại tín hiệu liên tục.
Nếu tốc độ lấy mẫu đủ lớn thì ta sẽ tạo ra được âm thanh
giống với âm thanh thực
Tốc độ lấy mẫu 40,000 lần/s là đủ để tạo âm thanh với chất
lượng tin cậy
Nếu tốc độ lấy mẫu thấp thì ta sẽ nghe thấy âm thanh bị biến
dạng
Tốc độ lấy mẫu cao thì chất lượng âm thanh tốt, nhưng dung
lượng lưu trữ lớn.
Tốc độ lấy mẫu lớn đến một mức nào đó tai người không phân
biệt được sự khác biệt.
Biểu diễn âm thanh
Đĩa CD là một cách lưu trữ âm thanh: rãnh đĩa biểu diễn các giá
trị nhị phân
Đọc bằng tia laser
Biểu diễn âm thanh
Lượng dữ liệu (số bit) dùng để biểu diễn 1 màu gọi là độ sâu
màu (color depth).
HiColor: dùng 16 bit biểu diễn 1 màu: 5 bit/1 thành phần,
1 bit thừa biểu diễn trong suốt
TrueColor: dùng 24 bit biểu diễn: 8bit/1 thành phần màu
Biểu diễn hình ảnh và đồ họa
Ảnh số và đồ họa
Ảnh (chụp bằng máy ảnh cơ, lưu bằng film) là biểu diễn
tương tự của một cảnh.
Số hóa ảnh là biểu diễn nó bằng một tập các điểm riêng
biệt gọi là điểm ảnh (pixel).
Số lượng điểm ảnh biểu diễn một ảnh là độ phân giải
(resolution)
Nếu độ phân giải đủ lớn thì mắt người sẽ cảm nhận thấy
ảnh là liên tục
Biểu diễn hình ảnh và đồ họa
Biểu diễn hình ảnh và đồ họa
Lưu trữ ảnh:
Cách lưu trữ ảnh theo từng pixel liên tiếp gọi là raster-
graphics format (định dạng ảnh theo đường quét)
Những phương pháp lưu trữ ảnh theo đường quét thông
dụng: BMP, JPEG, GIF
BMP (bitmap): cách lưu trữ đơn giản nhất, mỗi đ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
Video là một trong những dữ liệu phức tạp nhất để biểu diễn
và nén
Một video clip tương đương với nhiều ảnh tĩnh liên tục
Nhiều kỹ thuật nén video (CODEC) được ra đời trong những
năm gần đây
CODEC : COmpressor/DECompressor (nén và giải nén)
Video codec chỉ phương pháp làm giảm kích thước của video
để có thể xem và truyền trên mạng.
Hầu hết các phương pháp nén video là mất mát (lossy)
Biểu diễn video
Hầu hết sử dụng mã hóa theo khối (chia một khung hình thành
nhiều khối hình chữ nhật)
Các cách mã hóa khác nhau ở cách mã hóa khối này.
Các video codec áp dụng 2 kiểu mã hóa:
Temporal (theo thời gian) xem xét sự khác biệt giữa 2
khung hình liên tiếp, chỉ mã hóa những phân khác nhau
Spatial (theo không gian) giảm sự dư thừa thông tin trong
một khung hình. Nhóm các khối pixel có cùng màu với
nhau và lưu trữ thông tin về màu và vị trí của khối.
Các Video codec thông dụng: Sorenson, Cinepak, MPEG, và
Real Video
1.5 Cổng và mạch
(Gates and circuits)
Các tín hiệu trong máy tính biểu diễn bằng hiệu điện thế
Hiệu điện thế 0-2V: mức thấp, biểu diễn giá trị nhị phân là
0
Hiệu điện thế 2-5V: mức cao, biểu diễn giá trị nhị phân là 1
Cổng(gate) là thiết bị thực hiện các thao tác cơ bản trên tính
hiệu điện.
Cổng có thể có 1 hoặc nhiều đầu vào nhưng chỉ có 1 đầu ra
Các cổng được kết hợp với nhau tạo thành các mạch (circuits),
thực hiện các thao tác phức tạp. VD. Cộng hai giá trị nhị phân
Cổng và mạch
Cổng NOT
X A
X A
Ký hiệu trên sơ đồ Bảng chân lý
Cổng và mạch
Cổng AND
X A B
Cổng OR
X A B
Cổng và mạch
Cổng XOR
X A B
Cổng NAND
X A B
Cổng và mạch
Cổng NOR
X A B
Cổng và mạch
Mạch tạo thành từ việc kết hợp các cổng, để thực hiện các
thao tác phức tạp.
VD. Bộ cộng 2 bit không nhớ
Cổng và mạch
Bộ cộng có nhớ
Cổng và mạch
Mạch tích hợp (chip): là một mẩu silicon trên đó được tích hợp
nhiều cổng. Miếng silicon được gắn trên một vỏ nhựa hoặc sứ
với các chân dọc theo các cạnh
Mỗi chân kết nối với đầu vào, đầu ra của cổng hoặc là nguồn và
đất
Cổng và mạch
Với các mạch tích hợp cỡ lớn ta phải kết hợp nhiều chân với
nhau để giảm số lượng chân ở đầu ra của chip
CPU chỉ đơn thuần là một mạch nâng cao với đầu vào và đầu
ra.
1.6 Tổ chức của máy tính
Tổ chức của máy tính
Tổ chức của máy tính
Tổ chức của máy tính
Tổ chức của
máy tính
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)
Bộ nhớ
dài hạn
Tổ chức của máy tính
Khối điều khiển (control unit): Điều khiển hoạt động của máy
tính. Có 2 thanh ghi là
Thanh ghi lệnh (instruction register): chứa lệnh đang được
thực hiện
Bộ đếm chương trình (program counter): chứa địa chỉ
lệnh tiếp theo sẽ được thực hiện
Bus : đường truyền dữ liệu
Tổ chức của máy tính
Băng từ
Tổ chức của máy tính
Mạng máy tính là tập hợp các thiết bị tính toán được nối với
nhau theo một cách nào đó để có thể giao tiếp và chia sẻ thông
tin
Email, chat, web … dựa trên trao đổi thông tin trong mạng
Chia sẻ tài nguyên : máy in, file, máy quét,…
Kết nối giữa các máy tính trong mạng có thể thông qua dây,
cáp (mạng có dây) hoặc thông qua sóng radio hoặc hồng ngoại
(mạng không dây)
Mạng – Network
Mạng máy tính có thể có các thiết bị khác ngoài máy tính (máy
in, máy quét). Ta gọi các thiết bị trên một mạng là nút mạng
Tốc độ truyền dữ liệu là một vấn đề quan trọng của mạng, được
đề hiểu như là băng thông mạng
âm thanh và video chiếm nhiều băng thông của mạng
Giao thức mạng: là tập các quy tắc mô tả cách thức giao tiếp.
VD TCP/IP
Mạng – Network
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
Trang Web: là văn bản chứa, hoặc chỉ tới nhiều loại dữ liệu
khác nhau như text, ảnh, video, và chương trình.
Một trang web cũng chứa các đường link(kết nối) tới các trang
web khác
Web site là tập hợp các trang web có mối quan hệ với nhau,
thường được thiết kế và điều khiển bởi 1 người hoặc một công
ty.
Internet làm cho việc truyền thông có thể thực hiện được.
Web làm cho việc truyền thông trở nên dễ dàng và hiệu quả
hơn
Mạng – Network
Chúng ta giao tiếp với web thông qua một trình duyệt web
(web browser)
Trang web được lưu trữ trên một máy tính ở đâu đó trên mạng
internet. Máy tính đó được gọi là web server.
Ta chỉ ra trang web cần duyệt trong browser thông qua địa chỉ
Mạng – Network
Chia sẻ thời gian thực – time sharing: Cho phép nhiều người
sử dụng có thể tương tác với hệ thống cùng thời điểm.
Chia sẻ thời gian thực làm cho người dùng có cảm tưởng là
mình đang dùng 1 máy tính riêng.
Hệ thống thời gian thực - real-time system: Là hệ thống đảm
bảo rằng sẽ phản hồi lại người dùng trong khoảng thời gian
nhỏ nhất.
Trễ giữa nhận kích thích và tạo ra phản ứng lại phải được điều
khiển cẩn thận.
Hệ điều hành
Quản lý bộ nhớ :
Quản lý vị trí và cách 1 chương trình nạp trong bộ nhớ
Chuyển đổi địa chỉ logic của chương trình thành địa chỉ vật
lý của bộ nhớ
Bộ nhớ trong (RAM) được quản lý theo các ô nhớ, mỗi ô có
kích thước là 1 Byte, và được đánh địa chỉ.
11111111 00010101
Hệ điều hành
Bảng tính là phần mềm cho phép người dùng quản lý và phân
tích dữ liệu dựa trên lưới các ô đã được gán nhãn.
Một ô có thể chứa dữ liệu hoặc các công thức sử dụng để tính
toán giá trị.
Dữ liệu của ô có thể là text, số hoặc các dữ liệu đặc biệt như
ngày tháng, …
Ngôn ngữ truy vấn cấu trúc - Structured Query Language (SQL) là
ngôn ngữ cho cơ sở dữ liệu phức tạp để quản lý các cơ sở dữ liệu
quan hệ.
Bao gồm các câu lệnh xác định lược đồ dữ liệu cũng như thêm,
xóa, cập nhật …
VD.
SELECT * FROM user WHERE Username = 'Nguyen Van A';
UPDATE user SET Username = 'AAA' WHERE Username = 'vui'
DELETE * FROM user WHERE Username='vui';
INSERT INTO user(Username, Password)
VALUES(‘Nguyen Van B‘, 'aaa');
Hệ quản trị cơ sở dữ liệu
VD, Với bài toán con là viết tên khách mời (write down name):
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
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
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
max 3 5 7 9 2 8
max = 3 3
max<5 5
max<7 7
max<9 9
max>2 9
max>8 9
Kết quả 9
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
B3: Nếu ai > Max, gán Max bằng ai .
B4: Tăng i lên 1 đơn vị.
B5: Quay lên B2.
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
Bắt đầu
· Nhập N
· Nhập a1,..,aN
· Maxßa1
· iß2
Đúng
Hiển thị giá
i>N Kết thúc
trị Max
Sai
Đúng
ai>Max Maxßai
Sai
i=i+1
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
Thao tác xử lý
x ß5
Bước 1: gán x = 5
Bước 3: In ra y
In ra y
Biểu diễn thuật toán
Đúng
a<b Max=b
Sai
Đúng
In ra i
i=i+1
i=i+1
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
lần lặp 1 3 5 2 7 1
3 5 2 7 1 3 2 5 7 1
3 2 5 7 1
3 2 5 7 1 3 2 5 1 7
Lần lặp 2 3 2 5 1 7
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
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
Lần lặp 4 2 1 3 5 7
2 1 3 5 7 1 2 3 5 7
Bắt đầu
· Nhập N
· Nhập a1,..,aN
iß N
Sai
i>1 Kết thúc
Đúng
j=2
j=j+1
Sai
j≤ i aj-1 > aj Đổi chỗ aj và aj-1
Đúng Đúng
Sai
i=i-1
Một số thuật toán thông dụng
Bước 1: Nhập n
Bước 2: i=2
Bước 3: so sánh 𝑖 ≤ 𝑛.
Nếu sai thì chuyển sang Bước 6
Nếu đúng thì chuyển sang Bước 4
Bước 4: Kiểm tra n có chia hết cho i
Nếu đúng thì chuyển sang Bước 5
Nếu sai thì tăng i lên 1 và quay lại Bước 3
Bước 5: In thông báo n không phải số nguyên tố và kết thúc
Bước 6: In thông báo n là số nguyên tố và kết thúc
Một số thuật toán thông dụng
Bắt đầu
Nhập N
i=2
Sai
N là số
i ≤ căn bậc hai của n
nguyên tố
Đúng
N không phải là
N chia hết cho i
Đúng số nguyên tố
Sai
i=i+1
Kết thúc
Review
#include <stdio.h>
int main()
{
for(int i=0; i<10; i++)
printf("Hello world !\n");
return 0;
}
1.11. Ngôn ngữ lập trình