Professional Documents
Culture Documents
H C PH N
TIN HOÏC ÑAÏI CÖÔNG
TIN HỌC
ĐẠI CƯƠNG
1
Mục tiêu môn học
2
Đề cương môn học
3
Phương thức tiến hành
z Lý thuyết: 30 tiết
z Th c hành: 30 tiết
z Tự học: 90 tiết
4
Tài liệu tham khảo
5
Phương thức đánh giá
6
Chương 1:
Thông tin & Xử lý thông tin
7
Chương 1 - Thông tin & Xử lý thông tin
z Thông tin
z Xử lý thông tin
z Tin học
8
Thông tin (Information)
z Là một khái niệm trừu tượng
z Tin tức
z Mang lại sự hiểu biết, nhận thức
• Ví dụ: Thông tin về khí tượng
z Được phát sinh, được lưu trữ, được truyền,
được tìm kiếm, được sao chép, được xử lý,
nhân bản.
z Có thể biến dạng, sai lệch hoặc bị phá hủy.
• Ví dụ: thông tin di truyền
9
Phân biệt Thông tin & Dữ liệu
z Dữ liệu (data) là biểu diễn của thông tin và được
thể hiện bằng các tín hiệu (signal) vật lý.
z Thông tin chứa đựng ý nghĩa.
z Dữ liệu là các dữ kiện không có cấu trúc và
không có ý nghĩa rõ ràng nếu nó không được tổ
chức và xử lý.
z Cùng một thông tin, có thể được biểu diễn bằng
những dữ liệu khác nhau.
• Ví dụ: biểu diễn một đơn vị (1 & I)
z Mỗi dữ liệu lại có thể được thể hiện bằng những
ký hiệu vật lý khác nhau.
• Ví dụ: ký hiệu I (Tôi (tiếng Anh) & giá trị một)
10
Xử lý thông tin
11
Xử lý thông tin trong máy tính
12
Tin học
13
Công nghệ thông tin
z Information Technology
z Công nghệ thông tin: là ngành nghiên
cứu, thiết kế, phát triển, xây dựng, hỗ trợ
và quản lý các hệ thống thông tin với sự
trợ giúp của máy tính.
14
Một số từ khóa tiếng Anh
15
CHƯƠNG 2:
MÁY TÍNH ĐIỆN TỬ
16
Chương 2: Máy tính điện tử
17
Những nguyên lý máy tính cơ bản
18
Kiến trúc Von Neumann
z Gồm có:
• Bộ nhớ & Bus để chuyển dữ liệu vào & ra đơn vị xử lý
trung tâm (CPU)
• CPU chỉ có thể đọc lệnh, hay đọc/ghi dữ liệu từ bộ nhớ.
z Cả hai quá trình tương tác với lệnh hoặc với dữ liệu không
thể thực hiện cùng lúc. Æ thực hiện tuần tự
19
Kiến trúc Harvard
z Được nghiên cứu tại Harvard, dưới sự
lãnh đạo của Howard Aiken
(1900-1973)
z Bộ nhớ dữ liệu và bộ nhớ chương trình
sử dụng các bus riêng rẽ Æ thực hiện
song song Æ cải thiện tốc độ.
20
Kiến trúc SHARC
z Nhận thông tin: từ thế giới bên ngoài vào máy tính
z Xử lý thông tin: biến đổi, phân tích, tổng hợp, tra cứu...
những thông tin ban đầu Æ thông tin mong muốn
z Xuất thông tin: đưa kết quả ra thế giới bên ngoài
z Lưu trữ thông tin: lưu lại kết quả để sử dụng trong các
lần sau
22
Các thành phần chính trong máy tính
23
Đơn vị xử lý trung tâm (1)
z CPU – central processing unit
• Mạch xử lý dữ liệu
• theo chương trình thiết lập trước
• tích hợp phức tạp hàng triệu transitor trên bảng
mạch
• Có thể thi hành hàng triệu lệnh mỗi giây
• Bao gồm nhiều thành phần phức tạp với các
chức năng khác nhau
24
Đơn vị xử lý trung tâm (2)
25
Đơn vị xử lý trung tâm (3)
26
Đơn vị xử lý trung tâm (4)
27
Đơn vị xử lý trung tâm (5)
28
Bộ nhớ máy tính (1)
29
Bộ nhớ máy tính (2)
30
Bộ nhớ máy tính (3)
z RAM - Random Access Memory
• Bộ nhớ truy cập ngẫu nhiên
• Gồm nhiều chip RAM
• Vị trí lưu trữ trong RAM có thể truy cập trực
tiếp
ÎThao tác truy tìm và cất trữ có thể thực hiện rất
nhanh.
• không cố định - volatile memory
• SRAM - RAM tĩnh, DRAM - RAM động
• 8405010
31
Bộ nhớ máy tính (4)
32
Bộ nhớ máy tính (5)
z Hoạt động khởi động máy tính:
• CPU tự động (đã qui định trước) đọc thông tin lưu
trong ROM và thi hành, chương trình BIOS - hệ
thống xuất nhập cơ sở
• Sau đó đọc thông tin trên đĩa khởi động và nạp
các thông tin hệ điều hành trên đĩa vào bộ nhớ
RAM.
• CPU có thể thực hiện các tác vụ từ các thông tin
lưu trên RAM
33
Hoạt động khởi động máy tính
34
Thiết bị nhập (1)
35
Thiết bị nhập (2)
z Bàn phím:
• Ký tự
• Điều khiển
• Cấu trúc QWERT
36
Thiết bị nhập (3)
z Pointing Device
• Chuột: Mouse
• Ball, optical, trackball
• Phiến nhấn: Touch Pad
• Cần điều khiển: Joy Stick
• Màn hình cảm ứng: Touch Screen
• Bàn vẽ: Graphic Table
37
Pointing Device
38
Thiết bị nhập (4)
z Thiết bị đọc:
• Thiết bị đọc đánh dấu quang học
• Optical-mark readder
• Thiết bị đọc mã vạch - Barcode reader
• dùng ánh sáng để đọc mã sản phẩm, mã kiểm tra
• Cây đũa thần - wand reader
• Cây viết máy tính
• pen-based computer
39
Thiết bị nhập (5)
40
Thiết bị số hóa thế giới thực
41
Thiết bị xuất (1)
42
Thiết bị xuất (2)
43
Thiết bị xuất (3)
44
Thiết bị xuất (4)
z Xuất ra giấy
• Máy in gõ - impact printer
• In theo dòng hay theo ma trận điểm.
• Tốc độ in chậm, ồn ào, độ phân giải thấp
• Ấn các kim qua lớp băng mực theo tín hiệu điểu khiển
• Số đầu kim qui định độ phân giải đạt
• In trên khổ giấy lớn mà giá máy rẻ
• Nhân thành nhiều bản bằng giấy than do sự gõ truyền lực
• Máy in không gõ - nonimpact printer
• Kỹ thuật hiện đại khác
45
Thiết bị xuất (5)
z Máy in nhiệt
• Dùng các xung điện từ làm cho đầu kim ma
trận điểm nóng lên và nguội đi rất nhanh Æ
làm đổi màu các điểm trên loại giấy đặc biệt
• Tốc độ máy in tương đối nhanh và ít tốn điện
• Dùng giấy in nhiệt - thermal paper
• Công nghệ máy in truyền mực bằng nhiệt -
thermal fusion printer
• Phổ biến trong máy in xách tay
46
Thiết bị xuất (6)
47
Thiết bị xuất (7)
z Máy in laser :
• Công nghệ in tĩnh điện
• Electrostatic - ES
• Điện tích tĩnh điện làm chảy mực lên giấy
• Hệ thống tạo hình
• image formation system (IFS)
• Máy in di-ốt phát quang
• Light emitting diede printer
• Máy in cửa sập tinh thể lỏng
• Liquid crystal shutter printer.
48
Thiết bị xuất (8)
z Máy in màu
• Kiểu RGB - tức là Red-Green-Blue
• Cách tạo màu của tivi và màn hình máy tính
• Kiểu HSB - Hue-Saturation-Brightness
• Sắc màu, lượng màu, độ sáng
• Kiểu CMYK Cyan, Magenta, Yellow, black
• I n ấn chế bản: C -cyan là xanh, M - magenta là đỏ,
Y - yellow là vàng, K - black là đen.
• Hệ thống hợp màu pantone
• Pantone color matching system – CMYK
49
Thiết bị xuất (9)
z Xuất ra âm thanh
• Bo mạch xử lý âm
thanh - sound card
• Midi
• Bảng mã qui định sẵn -
các nhạc cụ điện tử
• Wave
• Mọi thứ âm nghe và
tổng hợp
50
Thiết bị xuất (10)
51
Thiết bị lưu trữ (1)
z Đĩa từ tính
z Đĩa từ quang
z Đĩa quang
52
Thiết bị lưu trữ (2)
z Ðĩa từ tính
• Ðĩa mềm - floppy disk
• Vỏ bảo vệ & đĩa plastic nhỏ có phủ vật liệu từ
• Thông tin dạng số: hạt từ tính
• 3.5 inch - đĩa 1.44Mb
• Hạn chế về dung lượng nhớ, tốc độ chậm
• Sao lưu dữ liệu , tính cơ động cao, giá rẻ
53
Thiết bị lưu trữ (3)
54
Thiết bị lưu trữ (4)
z Ðĩa từ quang
• Magneto optical drive – MO
• Ánh sáng laser
• Dung lượng
• 5.25 inch là 1.3Gb,
• 3.5inch là 230 Mb.
• Bảo đảm dữ liệu 50 năm
55
Thiết bị lưu trữ (5)
56
Thiết bị lưu trữ (6)
z CD-ROM
• Compact Disc Read Only Memory
• Đường kính 12cm, dày 1,2mm
• Dung lượng ~ 680Mb
z DVD
• Digital Video Disc, Digital Versatile Disc
• nhiều lớp trên một mặt
• Dung lượng 3.8 Gb Æ 17 Gb
57
Đường truyền – Cổng thiết bị ngoại vi
58
Sự phát triển của máy tính điện tử (1)
z 1946-1948:
• Sự ra đời của các máy tính điện tử đầu tiên.
• Tiếp đó là việc sản xuất hàng loạt máy tính
điện tử thế hệ thứ nhất và thứ hai trong thập
kỷ 50
• Chủ yếu được sử dụng trong tính toán khoa
học-kỹ thuật.
59
Sự phát triển của máy tính điện tử (2)
60
Sự phát triển của máy tính điện tử (3)
61
Sự phát triển của máy tính điện tử (4)
62
Tốc độ xử lý của máy tính tăng rất nhanh
63
Định luật Moore
z Cứ sau mỗi 18 tháng, Bộ xử lý Năm sản Số bóng
xuất bán dẫn
khả năng xử lý của máy 4004 1971 2.250
tính tăng gấp đôi.
8008 1972 2.500
z Tương ứng với mật độ 8080 1974 5.000
của bóng bán dẫn 8086 1978 29.000
(transitor) trên một bảng 286 1982 120.000
mạch (chip). 386 1985 275.000
486DX 1989 1.180.000
Pentium 1993 3.100.000
Pentium II 1997 7.500.000
Pentium III 1997 24.000.000
Pentium IV 2000 42.000.000
64
CHƯƠNG 3:
BIỂU DIỄN THÔNG TIN
TRONG MÁY TÍNH ĐIỆN TỬ
65
Chương 3: Biểu diễn thông tin
trong máy tính điện tử
66
Máy tính lưu trữ thông tin như thế nào?
67
Các hệ đếm
z Hệ thập phân
z Hệ nhị phân
z Hệ bát phân
z Hệ thập lục phân
68
Hệ thập phân (Số tự nhiên)
z Sử dụng hằng ngày
z 10 chữ số: 0Æ9
z Qui tắc: học từ lớp 1
69
Hệ cơ số (1)
70
Hệ cơ số (2)
71
Chuyển đổi giữa các hệ đếm
z Qui tắc 1
z Qui tắc 2
z Qui tắc 3
z Qui tắc 4
72
Qui tắc 1 - Chuyển đổi từ hệ thập phân
sang hệ cơ số b
110
73
Ví dụ: 199010=?16
1990 16
6 124 16 7C6
C 7 16
7 0
74
Qui tắc 2 – Chuyển đổi từ hệ cơ số b
về hệ thập phân
X = an an-1 ... a1 a0
= anbn + an-1bn-1 +... + a1b1 + a0b0 (*)
Ví dụ:
• X = 1102 thì X= 1*22 + 1*21 + 0*20 = 6.
• X = 7C616 thì X= 7*162 + 12*161 + 6*160 = 1990.
75
Qui tắc 3 - Chuyển từ hệ nhị phân về hệ
thập lục phân
76
Thập phân Nhị phân Thập lục phân
0 0 0
1 1 1
2 10 2
3 11 3
4 100 4
5 101 5
6 110 6
7 111 7
8 1000 8
9 1001 9
10 1010 A
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F
77
Qui tắc 4 - Chuyển từ hệ thập lục phân
về hệ nhị phân
78
Bài tập 1
1. 45310=?16 5. 29110=?16
2. A35D16=?8 6. EF1716=?8
3. 24568=?2 7. 27138=?2
4. 23E16=?10 8. A3116=?10
9. 50710=?16
10. 6F0A16=?8
11. 32478= ?2
12. D2A16=?10
79
Phép cộng
z Qui tắc:
• Thực hiện theo thứ tự từ phải sang trái
• Cộng hai chữ số cùng cột
• Nếu tổng của hai chữ số lớn hơn cơ số thì
phần lớn hơn được nhớ chuyển sang cột tiếp
theo.
z Ví dụ:
1001012 14658
+ 001011 + 407
2 8
1100002 20748
80
Phép trừ
z Qui tắc:
• Thực hiện theo thứ tự từ phải sang trái
• Trừ hai chữ số cùng cột
• Nếu chữ số của số bị trừ nhỏ hơn số trừ thì
mượn 1 đơn vị từ cột tiếp theo.
z Ví dụ:
1001012 14658
- 001011 - 407
2 8
0110102 10568
81
Phép nhân
z Qui tắc:
• Thực hiện theo thứ x
tự từ phải sang trái
• Nhân hai chữ số
cùng cột
• Nếu tích của hai
chữ số lớn hơn cơ
số, thì phần lớn hơn
được cộng dồn vào
kết quả tiếp theo
82
Phép chia
83
Phép toán AND
A B A AND B
zVí dụ:
1 1 1
11011010
1 0 0 AND
10011110
0 1 0
10011010
0 0 0
84
Phép toán OR
A B A OR B
zVí dụ:
1 1 1
10011010
1 0 1 OR
11001001
0 1 1
11011011
0 0 0
85
Phép toán XOR
A B A OR B
zVí dụ:
1 1 0
10011010
XOR
1 0 1
11001001
0 1 1
01010011
0 0 0
86
Phép dịch chuyển SHIFT (1)
z Qui tắc:
• Được thực hiện tùy theo hướng di chuyển
của các dãy bit
• Cho dãy bit của nó sang hướng trái/phải thì
bit đầu tiên của dãy (là bit cao nhất nếu dịch
chuyển sang trái, hay bit thấp nhất khi dịch
chuyển sang phải) sẽ bị chuyển đi
• Bit cuối cùng của nó (là bit cao nhất nếu dịch
chuyển sang trái, hay bit thấp nhất khi dịch
chuyển sang phải) sẽ được đặt là 0
87
Phép dịch chuyển SHIFT (2)
z Ví dụ:
• SHIFT LEFT 10001110 Æ 00011100
• SHIFT RIGHT 10001110 Æ 01000111
88
Phép quay ROTATION
z Qui tắc:
• Tương tự phép dịch chuyển SHIFT
• Bit cuối sẽ được chuyển vào bit đầu tiên
z Ví dụ:
• ROTATION LEFT 10001110 Æ 00011101
• ROTATION RIGHT 10001110 Æ 01000111
89
Biểu diễn số nguyên
90
Phương pháp dấu lượng (1)
z Sign – Magnitude
z Bit cực trái được dùng làm bit dấu
• 0 là dấu “+”
• 1 là dấu “–”
z Các bit còn lại biểu diễn độ lớn của số
z Phương pháp để biểu diễn số âm K bit:
z Lấy phần dương của số đó cộng thêm 2k-1
z Biểu diễn chúng ở hệ nhị phân.
91
Phương pháp dấu lượng (2)
z Nhược điểm:
• Số 0 biểu diễn 2 cách
• Yêu cầu phép tính toán riêng
• -5 + 5 =0
• 1101 + 0101 = 10010 ???
z Cải tiến phương pháp dấu lượng
Î Ký pháp lệch (biased
representation)
93
Ký pháp lệch (1)
z Qui tắc:
• Giá trị x biểu diễn bằng x+N
• N là giá trị lệch
• N= 2n-1 hoặc N = 2n-1-1
• n là số bit biểu diễn
z Ví dụ:
• Với mẫu 4-bit, N=23
• Số +5: 5 + 23 = 5+8 = 13 Æ 1101
• Số -5: -5+ 23 = -5+8 = 3 Æ 0011
• 5+ -5 = 0 = 1101 + 0011 = 1 0000
94
Ký pháp lệch (2)
z Ưu điểm:
• Chỉ một cách biểu diễn số 0
• Với mẫu 4 bit:
• 0 biểu diễn là 1000
• 0000 là biểu diễn của -8
95
Phương pháp biểu diễn số bù 1 (1)
z One’s complement
z Bit cực trái làm bit dấu
• 0 cho số dương
• 1 cho số âm
z Qui tắc biểu diễn số bù 1
• Biểu diễn dưới dạng nhị phân của trị tuyệt đối
n theo mẩu k-bit cố định cho trước.
• Nếu n < 0 thì đổi 1 thành 0 và ngược lại trong
dãy số nhị phân (gọi là đảo ngược bit)
96
Phương pháp biểu diễn số bù 1 (2)
z Ví dụ:
• n=5 ÆDùng mẩu 4 bit thì biểu diễn là: 0101
• n = -5 ÆDùng mẩu 4 bit thì biểu diễn là: 1010
• n = 6 ÆDùng mẩu 4 bit thì biểu diễn là: 0110
• n = -6 ÆDùng mẩu 4 bit thì biểu diễn là: 1001
97
Phương pháp biểu diễn số bù 2 (1)
z Two’s complement
z Bit cực trái làm bit dấu tương tự bù 1
z Qui tắc biểu diễn số bù 2:
• Biểu diễn dưới dạng nhị phân của trị tuyệt đối
n theo mẩu k bit cố định cho trước.
• Nếu n < 0:
• bắt đầu từ phải qua trái giữ nguyên các bit cho
đến khi gặp bit có giá trị là 1 đầu tiên,
• sau đó các bit tiếp theo bên trái bit 1 đầu tiên đó
đổi 1 thành 0 và ngược lại (đảo bit)
98
Phương pháp biểu diễn số bù 2 (2)
z Thực chất số Mẩu bit Giá trị Mẩu bit Giá trị
biểu diễn bù 2 0111 7 1111 -1
là số biểu diễn 0110 6 1110 -2
bù 1 cộng 1 0101 5 1101 -3
z Ví dụ mẫu 4 bit 0100 4 1100 -4
Î
0011 3 1011 -5
0010 2 1010 -6
0001 1 1001 -7
0000 0 1000 -8
99
Phương pháp biểu diễn số bù 2 (3)
digits binary actual value
0 0000 0000 0
1 0000 0001 1
....
126 0111 1110 126
127 0111 1111 127
128 1000 0000 -128
129 1000 0001 -127
130 1000 0010 -126
....
254 1111 1110 -2
255 1111 1111 -1
100
Phép cộng khi biểu diễn bù 1 (1)
z Qui tắc:
• Thực hiện như phép toán tương ứng trên hệ
nhị phân
• Nếu ở 2 bit cực trái khi thực hiện phép cộng
mà phát sinh bit nhớ Æ cộng nhớ vào kết
quả.
101
Phép cộng khi biểu diễn bù 1 (2)
z Qui tắc:
• Thực hiện như phép toán tương ứng trên hệ
nhị phân
• Nếu ở 2 bit cực trái khi thực hiện phép cộng
mà phát sinh bit nhớ Æ loại bỏ nhớ
103
Phép cộng khi biểu diễn bù 2 (2)
104
Lỗi tràn số (1)
105
Lỗi tràn số (2)
106
Bài tập A – Dùng 8 bit
107
Bài tập B – Dùng 16 bit
108
Bài tập C
109
Bài tập D - Các phép toán luận lý
1. 11101010011 AND 111000111
2. 10100111010 OR 100110011
3. 10100111010 XOR 100110011
4. SHIFT LEFT 3 1110101110
5. SHIFT RIGHT 1110101110
6. ROTATION LEFT 2 1110101110
110
Biểu diễn số thực
111
Biểu diễn số thực với các cơ số (1)
112
Biểu diễn số thực với các cơ số (2)
113
Biểu diễn số thực với các cơ số (3)
114
Biểu diễn số thực với các cơ số (4)
z Tính 1F.28h = ? = ?2
31.15625 = 11111.001012
z Tính 35.218 = ?h = ?2 = ?
115
Biểu diễn số thực với các cơ số (5)
116
Biểu diễn số thực với các cơ số (6)
117
Biểu diễn số thực với các cơ số (7)
118
Phương pháp dấu chấm động (1)
+ 3115625x10-5
Dấu Nguyên Mũ
(Sign) (Mantissa) (exponent)
119
Phương pháp dấu chấm động (2)
120
Phương pháp dấu chấm động (3)
+1.1111001012 x 2+100b
0 0 1 0 0 1 1 1 1 0 0 1 0 1 0 0
121
Phương pháp dấu chấm động (4)
z Biểu diễn số thực dấu chấm động 16 bit:
z Biểu diễn -35.265625
=-100011.0100012
=-1.00011010001x2+101b
1 0 1 0 1 0 0 0 1 1 0 1 0 0 0 1
122
Bài tập
123
Phương pháp dấu chấm động (5)
z Chuẩn IEEE
• Short Real-32 bits single precision
• 1 bit sign, 8 bits exponent, 23 bits mantissa.
• Long Real: 64 bits double precision
• 1 bit sign, 11 bits exponent, 52 bits mantissa.
• Exponent biểu diễn kí pháp lệch N=27-1=127
124
Phương pháp dấu chấm động (6)
Mũ
Giá trị Dấu Sign, Exponent, Mantissa
lượng
125
Tóm tắt biểu diễn dấu chấm động
126
Độ chính xác trong tính toán số thực dấu
chấm động
z Overflow: khi giá trị > giá trị tuyệt đối của
khả năng biểu diễn lớn nhất.
z Underflow: 0 < giá trị < giá trị tuyệt đối của
khả năng biểu diễn nhỏ nhất.
127
Biểu diễn ký tự
z Bộ mã ASCII ?
z Bảng mã UNICODE ?
128
CHƯƠNG 4:
CHƯƠNG TRÌNH
& GIẢI THUẬT
129
Các khái niệm (1)
z Thuật toán
• Cách hiểu đơn giản
• Tập các hướng dẫn thực hiện một công việc.
• Tập hữu hạn các hướng dẫn rõ ràng để người giải toán
có thể theo đó mà giải quyết được vấn đề.
• Một phương pháp thể hiện lời giải của vấn đề.
• Algorithm: nhà toán học Trung Á
• Muhammad Bin Musa Al-Khwarizmi
• http://www2.sjsu.edu/depts/Museum/alkhwa.html
130
Các khái niệm (2)
131
Các khái niệm (3)
132
Các khái niệm (4)
133
Các khái niệm (5)
z Tính mập mờ (tt):
• Phân biệt mập mờ và chọn lựa có quyết định.
• Mập mờ là thiếu thông tin hoặc có nhiều chọn lựa nhưng
không đủ điều kiện để quyết định.
• Chọn lựa có quyết định là hoàn toàn xác định duy nhất
trong điều kiện cụ thể của vấn đề
• Sửa lại:
• 3.Chọn ra một môn học có nhiều đvht nhất.
• 3.1 Nếu chỉ có một môn học nhiều đvht nhất: chọn một
• 3.2 Nếu có nhiều môn học cùng số đvht: sắp xếp tăng dần
theo tên môn học trong thứ tự từ điển rối chọn môn đầu tiên.
134
Các khái niệm (6)
135
Các khái niệm (7)
z Tính dừng -Ví dụ:
• Tính tổng các số nguyên dương lẻ trong khoảng
từ 1 đến n ta có thuật toán sau :
• B1. Hỏi giá trị của n.
• B2. S = 0
• B3. i = 1
• B4. Nếu i = n+1 thì sang bước B8, ngược lại sang bước B5
• B5. Cộng thêm i vào S
• B6. Cộng thêm 2 vào i
• B7. Quay lại bước B4.
• B8. Tổng cần tìm chính là S.
• Thuật toán luôn dừng???
136
Các khái niệm (8)
z Tính dừng -Ví dụ:
• Chỉ dừng khi n chẵn
• Khi n lẻ phải thay B4 bằng:
• B4. Nếu i >= n+1 thì sang bước B8, ngược lại sang
bước B5
z Tính đúng:
• Chứng minh thuật toán đúng!!!
• Khó đạt được nhất
137
Các khái niệm (9)
138
Các khái niệm (10)
z Các đặc trưng khác của thuật toán
• Ðầu vào và đầu ra (input/output) .
• Tính hiệu quả (effectiveness): theo tiêu chuẩn
• Khối lượng tính toán, không gian và thời gian thi hành.
• Là yếu tố quyết định để đánh giá, chọn lựa
• Nhiều phương pháp để đánh giá tính hiệu quả của thuật toán.
• Tính tổng quát (generalliness) :
• Áp dụng được cho mọi trường hợp của bài toán
• Không phải lúc nào cũng đảm bảo được tính tổng quát.
• Có lúc chỉ cần xây dựng cho một dạng đặc trưng.
139
Các khái niệm - Ví dụ (1)
140
Các khái niệm - Ví dụ (2)
• 3. Trường hợp a khác 0 thì
• 3.1. Tính giá trị D = b2-4ac
• 3.2. Nếu D > 0 thì
• 3.2.1. Phương trình có hai nghiệm phân biệt x1,x2
• 3.2.2. Giá trị của hai nghiệm được tính theo công thức
sau:
−b + D −b − D
x1 = , x2 =
2a 2a
• 3.2.3. Kết thúc thuật toán.
• 3.3 Nếu D=0 thì
141
Các khái niệm - Ví dụ (3)
• 3.3. Nếu D = 0 thì
• 3.3.1. Phương trình có nghiệm kép x0
• 3.3.2. Giá trị của nghiệm kép là
−b
x=
2a
• 3.3.3. Kết thúc thuật toán
• 3.4. Nếu D < 0 thì
• 3.4.1. Phương trình vô nghiệm.
• 3.4.2. Kết thúc thuật toán.
142
Các khái niệm - Ví dụ (4)
143
Các khái niệm - Ví dụ (5)
• 5. Nếu ai khác bi thì thực hiện các thao tác sau,
ngược lại qua bước 7.
• 5.1 Tăng i lên 1.
• 5.2. Nếu ai-1 > bi-1 thì
• ai = ai-1 - bi-1
• bi = bi-1
• 5.3. Ngược lại
• bi = bi-1 - ai-1
• ai = ai-1
• 6. Trở lại bước 5.
• 7. Ước số chung lớn nhất của a, b là ai .
144
Các phương pháp biểu diễn
z Thuật toán:
• Một phương pháp thể hiện lời giải bài toán
• Phải tuân theo một số quy tắc nhất định
z Có 3 phương pháp biểu diễn thuật toán:
• Dùng ngôn ngữ tự nhiên.
• Dùng lưu đồ-sơ đồ khối (flowchart).
• Dùng mã giả (pseudocode).
145
Ngôn ngữ tự nhiên
z Ngôn ngữ thường ngày:
• Liệt kê các bước của thuật toán, quá trình thực
hiện lần lượt (trừ khi có yêu cầu nhảy)
• Không thể hiện rõ cấu trúc của thuật toán
• Dài dòng, có thể gây hiểu lầm hoặc khó hiểu
• Không yêu cầu người viết hay đọc nắm quy tắc.
• Không có một quy tắc cố định
• Tính dễ đọc:
• viết các bước con lùi vào bên phải
• đánh số bước theo quy tắc phân cấp như 1, 1.1, ...
146
Lưu đồ - sơ đồ khối (1)
147
Lưu đồ - sơ đồ khối (2)
148
Lưu đồ - sơ đồ khối (3)
149
Lưu đồ - sơ đồ khối (4)
150
Lưu đồ - sơ đồ khối (5)
151
Lưu đồ - sơ đồ khối (6)
152
Lưu đồ - sơ đồ khối (7)
153
Phương trình thuật toán giải pt bậc 2. Đường chấm ứng với
trường hợp nghiệm kép, ví dụ: a=1,b=2,c=1
154
Lưu đồ - sơ đồ khối (8)
155
Mã giả (pseudo code) (1)
z Vay mượn các cú pháp của một ngôn ngữ lập
trình
• dùng một phần ngôn ngữ tự nhiên
• bị phụ thuộc vào ngôn ngữ lập trình.
z Mọi ngôn ngữ lập trình đều có những thao tác
cơ bản
• xử lý, rẽ nhánh và lặp
• tận dụng được các khái niệm trong ngôn ngữ lập
trình,
z Dễ dàng nắm bắt nội dung thuật toán
156
Mã giả (2)
Một đoạn mã giả của thuật toán giải pt bậc hai
if Delta > 0 then begin
x1=(-b-sqrt(delta))/(2*a)
x2=(-b+sqrt(delta))/(2*a)
xuất kết quả : phương trình có hai nghiệm là x1 và x2
end
else
if delta = 0 then
xuất kết quả : phương trình có nghiệm kép là
-b/(2*a)
else {trường hợp delta < 0 }
xuất kết quả : phương trình vô nghiệm
157
CHƯƠNG 5:
CÁC NGÔN NGỮ
LẬP TRÌNH
158
Chương 5: Các ngôn ngữ lập trình
159
Khái niệm ngôn ngữ lập trình (1)
160
Khái niệm ngôn ngữ lập trình (2)
z Ngôn ngữ lập trình(Programming language) là một
hệ thống dùng để viết các chương trình cho máy tính
bao gồm:
• Một tập hữu hạn các kí hiệu
• Một tập hữu hạn các qui ước về
• Cú pháp(Syntax): một chuỗi các kí hiệu hợp lệ
• Ngữ nghĩa(Semantic): ý nghĩa của các kí hiệu
161
Sự tiến hóa của ngôn ngữ lập trình
High Level Language (Pascal, C, C++, Java, C#, Prolog, Lisp, . . .)
Machine Language
162
Machine Language (1)
z Là ngôn ngữ duy nhất được máy tính hiểu trực tiếp
z Sử dụng hệ thống số nhị phân để biểu diễn lệnh (Instruction)
z Instruction = mẫu bit (bit pattern) được hiểu bởi phần cứng
máy tính
• Instruction: Opcode | Operands
• Chương trình là một dãy các chỉ thị
Memory
CPU
010001001100
.
.
.
000110100010
I/O
163
Machine Language (2)
) Ưu điểm
9Chương trình viết bằng ngôn ngữ máy
thực thi nhanh
) Nhược điểm
9 Lập trình khó
9 Phụ thuộc cấu hình phần cứng của máy
9 Dễ dẫn đến sai sót
9 Khó bảo trì và sửa lỗi
164
Assembly Language (1)
Dùng Alphanumberic code để biểu diễn lệnh và địa chỉ ô nhớ thay vì bit pattern
• Ví dụ 1:
MOV r0,B #move B into register r0
ADD r0,C #add
MOV A, r0 #store
• Ví dụ 2: Tính (A+B)2 = A2 + 2AB + B2
LOAD A
MULT A
STORE H1 # H1 chứa A2
LOAD A
MULT B
MULT 2
STORE H2 # H2 chứa 2AB
LOAD B
MULT B
ADD H1
ADD H2 # H2 chứa kết quả
165
Assembly Language (2)
166
Assembly Language (3)
z Chương trình được viết bằng ngôn ngữ Assembly trước khi được
thực thi bởi CPU nó phải được dịch sang mã máy (machine code).
Assembler
Source code in Object code in
Assembly language Machine language
z Ưu điểm
• Việc lập trình nhanh hơn, và chương trình đọc dễ hiểu hơn ngôn
ngữ mã máy
• Nguời lập trình dễ nhớ lệnh hơn dùng mã máy
z Nhược điểm
• Chương trình phụ thuộc bộ xử lý
• Chương trình chạy chậm hơn khi được viết bằng mã máy
167
Ngôn ngữ lập trình cấp cao
z Thân thiện với người sử dụng, bởi vì nó dùng các khái niệm, thuật ngữ gần
với ngôn ngữ tự nhiên.
• Ví dụ 1:
if A > B then print “A larger than B”
else print “A less than B” 1 n=0
• Ví dụ 2: n!=
int fact(int n) {
if (n==0) n*(n-1)! n>0
return 1
else
return n*fact(n-1)
}
z Độc lập với các hệ máy
z Chương trình dễ đọc, dễ hiểu, dễ bảo trì
z Khả chuyển trên nhiều hệ máy khác nhau
z Chương trình phải được dịch sang mã máy trước khi được thực thi
168
Một số ngôn ngữ lập trình cấp cao
z BASIC, Beginner's All-Purpose Symbolic Instruction Code
• John Kermeny và Thomas Kurtz (1964) tại trường đại học
Dartmouth.
z COBOL, COmmon Business Oriented Language,
• Bộ quốc phòng Hoa Kỳ (1960) hình thức tựa tiếng Anh
z C
• Dennis Ritchie, phòng thí nghiệm Bell vào năm 1972
z FORTRAN, FORmula TRANslator
• IBM, John Backus (1957) dành cho khoa học, kỹ sư & toán học
z PASCAL
• Niklaus Wirth, Zurich, Thụy Sĩ,1968, giảng dạy lập trình.
• Blaise Pascal (1623 - 1662) người đầu tiên tạo ra máy tính
169
Lịch sử phát triển các NNLT
170
Quá Trình Dịch Một Chương Trình
171
Thông dịch & Biên dịch (1)
Source program Compiler Target program
Biên
dịch
Input Target program Output
Input
172
Thông dịch & Biên dịch (2)
Compiler Interpreter
Dịch toàn bộ chương trình nguồn Dịch và thực thi từng dòng lệnh
thành mã đối tượng. một của chương trình nguồn.
Mã đối tượng được lưu lại thành Mỗi lần thực thi chương trình
các tập tin .Obj để sử dụng cho đều phải dịch lại mã nguồn
các lần thực thi chương trình sau Ælàm cho chương trình chạy
đó, mà không cần phải dịch lại chậm.
chương trình Ælàm cho chương
trình chạy nhanh hơn.
Trong quá trình dịch, nếu phát Hiển thị lỗi từng dòng lệnh của
hiện lỗi, compiler sẽ hiển thị lỗi chương trình nguồn
của toàn bộ chương trình nguồn.
173
Các phương pháp lập trình
z Lập trình cấu trúc (Structural Programming)
• Tính đơn thể,
• Cấu trúc điều khiển
• Vào/Ra đơn.
• Dễ: viết, đọc, hiểu, kiểm lỗi và hiệu chỉnh.
z Lập trình hướng đối tượng (Object Oriented
z Programming – OOP)
• Phương pháp kết hợp cả dữ liệu và các câu lệnh của
chương trình.
• Tạo ra các đối tượng (object)
174