You are on page 1of 175

TRƯ NG Đ I H C K THU T CÔNG NGH C N THƠ

KHOA CÔNG NGH THÔNG TIN


-----# "----

H C PH N
TIN HOÏC ÑAÏI CÖÔNG
TIN HỌC
ĐẠI CƯƠNG

GV: Nguy n Văn Cư ng

1
Mục tiêu môn học

z Cung cấp cho sinh viên các kiến thức cơ


bản về:
• Máy tính điện tử
• Biểu diễn thông tin trong máy tính điện tử
z Giúp sinh viên nắm vững khái niệm giải
thuật và các phương pháp biểu diễn, thiết
kế giải thuật.
z Giúp sinh viên s d ng thành th o ngôn
ng l p trình C# m c căn b n.

2
Đề cương môn học

z Chương 1: Thông tin và xử lý thông tin


z Chương 2: Máy tính điện tử
z Chương 3: Biểu diễn thông tin trong máy
tính điện tử
z Chương 4: Chương trình và giải thuật
z Chương 5: Khái ni m ngôn ngữ lập trình
z Chương 6: Ngôn ngữ lập trình 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

z Slide bài giảng


z H c li u đư c cung c p trong khóa h c
Tin h c đ i cương trên Elearning
z Sinh viên có th tham kh o thêm các
ngu n h c li u trên Internet

5
Phương thức đánh giá

z Kiểm tra gi a k 40%: th c hành trên máy


tính
z Thi cuối kỳ 60%: tr c nghi m khách quan
trên gi y, không s d ng tài li u

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

z Con người tiếp nhận thông tin Æ Xử lý tạo


ra thông tin mới, có ích hơn.
z Ví dụ:
• Xử lý các thông tin trong kinh doanh
• Xử lý các thông tin trong lĩnh vực điều tra

11
Xử lý thông tin trong máy tính

z Trong máy tính, các thông tin được biểu


diễn bằng hệ đếm nhị phân.
z Tuy chỉ dùng 2 ký số là 0 và 1 mà ta gọi là
bit nhưng hệ nhị phân đã giúp máy tính
biểu diễn - xử lý được trên hầu hết các
loại thông tin mà con người hiện đang sử
dụng như văn bản, hình ảnh, âm thanh,
video,…

12
Tin học

z Tin học: là ngành khoa học về thông tin,


các cách thức xử lý thông tin và các kỹ
thuật xây dựng hệ thống thông tin.
z Tin học nghiên cứu cấu trúc, hoạt động,
và tương tác giữa các hệ thống (tự nhiên
và nhân tạo) lưu trữ, xử lý và dẫn truyền
thông tin.

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

z Computer, Computer science


z Data
z Enginneering, Software engineering
z Information, Information system
z Technique
z Technology, Information technology
z Knowledge

15
CHƯƠNG 2:
MÁY TÍNH ĐIỆN TỬ

16
Chương 2: Máy tính điện tử

z Những nguyên lý máy tính cơ bản


z Cấu trúc tổng quát máy tính điện tử
z Sự phát triển của máy tính điện tử

17
Những nguyên lý máy tính cơ bản

z Kiến trúc Von Neumann


z Kiến trúc Harvard
z Kiến trúc SHARC

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 SHARC – Super Harvard Architecture


z Xây dựng dựa trên kiến trúc Harvard
z Thêm vào những điểm đặc trưng để cải thiện thông
lượng dữ liệu (bộ nhớ đệm chỉ lệnh & điều khiển
vào/ra.)
21
Quá trình xử lý thông tin trên máy tính

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

z Gồm 4 thành phần chính:


• Thiết bị nhập
• Bàn phím, chuột
• Thiết bị xử lý
• Bộ não
• Thiết bị xuất
• Màn hình, loa
• Thiết bị lưu trữ
• Sơ cấp: bộ nhớ
• Thứ cấp: đĩa cứng, CD

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)

z Công việc chính của CPU là thi hành các


mã lệnh của chương trình

25
Đơn vị xử lý trung tâm (3)

z Thành phần căn bản bên trong CPU


• Arithmetic Logic Unit (ALU)
• Gồm một số thanh ghi – register (32, 64 bit)
• Thực hiện các lệnh của đơn vị điều khiển và xử
lý tín hiệu:
• Các phép tính số học đơn giản (cộng, trừ, nhân,
chia số nguyên)
• Phép tính luận lý đối với dữ liệu (so sánh lớn
hơn, nhỏ hơn, ...).

26
Đơn vị xử lý trung tâm (4)

z Thành phần căn bản bên trong CPU(tt)


• Ðơn vị nạp lệnh - Prectch unit
• Ðơn vị giải mã - Decode unit
• Ðơn vị nối ghép đường truyền
• Bus Interface Unit
• Ðơn vị điều khiển - control unit

27
Đơn vị xử lý trung tâm (5)

z Thành phần căn bản bên trong CPU (tt)


• Thanh ghi - register
• Bộ nhớ ẩn - cache memory
• Primary cache: Level 1
• Secondary cache: Level 2
z Mạch xung nhịp hệ thống - system clock
• Đồng bộ các xử lý trong và ngoài CPU
• Tốc độ xung nhịp: triệu đơn vị mỗi giây Mhz.

28
Bộ nhớ máy tính (1)

z CPU chỉ có khả năng giải quyết một ít


trong phần dữ liệu
z Cần lưu giữ lại sẵn sàng dữ liệu được đọc
cho CPU xử lý:
• Bộ nhớ chính
• ROM & RAM

29
Bộ nhớ máy tính (2)

z Read Only Memory - ROM


• Chỉ đọc
• Cố định - nonvolatile memory: duy trì nội dung
nhớ khi không có nguồn điện
• Chứa chương trình BIOS không thay đổi.
• Máy trò chơi điện tử (game box)
• khe cắm ROM

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)

z Phải luôn có nguồn nuôi để lưu trữ nội


dung thông tin trên RAM
z Mất điện là mất tất cả.

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)

z Bàn phím: Key board


z Thiết bị chỉ điểm: Pointing Device
z Thiết bị đọc
z Thiết bị số hóa

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)

z Thiết bị số hóa thế giới thực:


• Máy quét ảnh – scanner
• Máy ảnh số – digital camera
• Máy quay phim số – digital video camera
• Thiết bị âm thanh số hóa – Audio digitalizer
• Thiết bị cảm ứng

40
Thiết bị số hóa thế giới thực

41
Thiết bị xuất (1)

z Xuất ra màn hình


z Xuất ra giấy
z Xuất ra âm thanh
z Nối mạng

42
Thiết bị xuất (2)

z Xuất ra màn hình


• Màn hình máy tính (Video Monitor)
• Bóng đèn tia điện tử
• cathode CRT (cathode ray cathode)
• Màn hình tinh thể lỏng LCD
• liquid crystal display
• Điểm ảnh (pixel) – Độ phân giảI (resolution)
• 72 dpi (dots per inch) , 800x600
• Màu – (Color depth)

43
Thiết bị xuất (3)

z Xuất ra màn hình


• Bộ điều hợp hiển thị (AGP)
• Video adapter - display adapter
• Card màn hình - display card, vidéo card
• Đường dẫn dữ liệu: 4X: 32bit, 8X:64bit
• Bộ nhớ màn hình : Video RAM

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)

z Máy in phun mực – inkjet printer


• Dùng tinh thể áp điện (máy bơm)
• Đẩy mực ra khỏi ống và hút thêm mực khác vào
• Máy in phun bong bóng - bubble jet printer
• Dùng phần tử nung nóng
• Hạn chế bởi tốc độ in
• Ưu điểm dùng điện áp thấp từ 24V đến 50V
• Dùng với mọi loại giấy, độ nét và độ mịn cao
• Chi phí in cao

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)

z Kết nối máy tính khác


• Remote Access
• Network Interface Card - NIC
• Modulation-Demodulation
• Modem - bộ điều biến

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)

z Ðĩa cứng - Hard disk


• Vỏ cứng bảo vệ, các bộ phận điều khiển xuất nhập
• Đĩa từ tính: 5.25 inch và 3.5 inch
• Dung lượng ổ cứng: 100MB Æ 160GB
• Mạch giao tiếp: chuẩn ESDI, IDE, SCSI
• ESDI (Enhanced Small Device Interface), 1983 24
MB/sec
• IDE (Intelligent Drive Electronic - Intergrated Drive
Electronic) - còn gọi ATA (AT Attachment)
• SCSI (Small Computer System Interface)
• 4Mb/giây Æ 10Mb/giây.

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)

z Ðĩa quang học


• Nguyên tắc quang học, tia laser
• Ba điểm khác biệt chính so với từ tính
• Dung lượng cao hơn
• Độ bền cao hơn
• Tháo lắp dễ dàng

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

z Thông tin qua lại giữa các linh kiện thông


qua một mạng lưới các Bus:
• 8,16 hay 32 đường - bus 8bit, bus 16bit bus
32bit.
• Bus nối với các khe - slot trên bo mạch.
• Bus nối với các cổng nằm ngoài
z Các thiết bị ngoại vi kết nối qua:
• Cổng có sẵn của máy
• Card chuyên biệt

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)

z Giữa thập kỷ 60:


• Sự ra đời của các máy tính điện tử thế hệ thứ
ba với kỹ thuật mạch tích hợp và các bộ nhớ
bán dẫn.
• Máy tính điện tử được bắt đầu ứng dụng
trong kinh doanh, quản lý kinh tế.
• Máy lớn và đắt, nên thường chỉ được trang bị
cho các trung tâm tính toán. Cuối những năm
60 sang đầu những năm 70 bắt đầu có các
mạng nối các trung tâm tính toán với nhau.

60
Sự phát triển của máy tính điện tử (3)

z Giữa thập kỷ 70:


• Ra đời các bộ vi xử lý: các linh kiện thực hiện
chức năng của cả bộ xử lý trung tâm được
chứa trong chỉ một "chip" bán dẫn có diện tích
khoảng 1-2cm2.
• Kỹ thuật vi xử lý khởi đầu một cuộc cách
mạng trong tin học, tạo cơ sở cho sự ra đời
máy vi tính với năng lực ngày càng cao, giá
ngày càng rẻ, thâm nhập khắp mọi nơi trên
thế giới và được sử dụng trong mọi lĩnh vực.

61
Sự phát triển của máy tính điện tử (4)

z Cuối thập kỷ 80 đến nay:


• Sự phát triển bùng nổ của các mạng viễn
thông truyền dữ liệu quốc gia và quốc tế
• Xuất hiện những hệ thống “siêu xa lộ thông
tin” liên kết hàng trăm triệu người trong từng
quốc gia cũng như trong phạm vi khu vực và
toàn cầu.
• Xây dựng “kết cấu hạ tầng về thông tin” làm
nền móng cho một “xã hội thông tin”.

62
Tốc độ xử lý của máy tính tăng rất nhanh

Chiếc máy tính đầu tiên: Hiện nay:

z ENIAC (1947) z Máy tính thông thường


z Tốc độ: 6 - 7 nghìn phép z Tốc độ: hàng chục tỉ phép
tính/giây tính/giây
z Tiêu hao năng lượng rất z Tiêu hao năng lượng và
nhiều và toả nhiệt rất lớn tỏa nhiệt ít
z Diện tích là 1.800m2 z Diện tích: ?
z Giá 450 nghìn USD lúc đó z Giá: ?
(~ 4 - 5 triệu USD bây giờ).

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ử

z Máy tính lưu trữ thông tin như thế nào?


z Các hệ đếm
z Chuyển đổi giữa các hệ đếm

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)

z Là hệ thống chữ số dùng để biểu diễn số


z Hệ cơ số k:
• Dùng k chữ số để biểu diễn
• Ký hiệu có giá trị nhỏ nhất là ‘0’
• Ký hiệu có giá trị lớn nhất là k-1

70
Hệ cơ số (2)

z 2 chữ số: 0 và 1 Æ Hệ cơ số 2: nhị phân


z 8 chữ số: 0,1,2,3,4,5,6,7 ÆHệ cơ số 8:
bát phân
z 10 chữ số: 0,1,2,3,4,5,6,7,8,9 Æ Hệ cơ số
10: thập phân
z 16 chữ số: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
Æ Hệ cơ số 16 hay hệ thập lục phân

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

z Lấy số thập phân chia


cho cơ số b (b≠10) cho
đến khi phần thương của
phép chia bằng 0
z Số đổi được chính là các
phần dư của phép chia
theo thứ tự ngược lại.

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

z Nhóm lần lượt 4 bit từ phải sang trái


z Sau đó thay thế các nhóm 4 bit bằng giá
trị tương ứng với hệ thập lục phân
z Ví dụ:
• X = 11’10112 = 3B16

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

z Ứng với mỗi chữ số sẽ được biểu diễn


dưới dạng 4 bit
z Ví dụ:
• X = 3B16 = 0011’10112= 11’10112

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

z Qui tắc: Tương tự phép chia số thập phân


z Ví dụ:

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

z Sử dụng chính của 11111111


XOR
phép toán này là lấy 10101001
phần bù của một 01010110
chuỗi bit.

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

z Số nguyên không dấu (không âm)


• Số biểu diễn ở hệ nhị phân
• Biểu diễn: 8 bit, 16 bit, 32bit hay 64bit
z Số nguyên có dấu:
• Dựa trên hệ nhị phân không dấu
• Có 3 phương pháp:
• Phương pháp dấu lượng
• Phương pháp biểu diễn số bù 1
• Phương pháp biểu diễn số bù 2

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 Ví dụ: Mẩu bit Giá trị Mẩu bit Giá trị

• Mẫu 4 bit 1111 -7 0111 7


• Số +5 1110 -6 0110 6
• +5 =5 1101 -5 0101 5
• 0101 1100 -4 0100 4
• Số -5 1011 -3 0011 3
• 5 + 8 =13 1010 -2 0010 2
• 1101 1001 -1 0001 1
1000 -0 0000 0
92
Phương pháp dấu lượng (3)

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 Ví dụ biểu diễn bù 1 mẩu 4-bit


• -6 Æ 1001
• 4 Æ 0100
• 1001 + 0100 = 1101 Æ -2
z Ví dụ biểu diễn bù 1 mẫu 5-bit
• -6 Æ 11001
• -4 Æ 11011
• 11001 + 11011 = 1 10100 (1 là nhớ)
• 10100 + 1 = 10101 Æ -10
102
Phép cộng khi biểu diễn bù 2 (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ớ Æ loại bỏ nhớ

103
Phép cộng khi biểu diễn bù 2 (2)

z Ví dụ biểu diễn bù 2 mẫu 4-bit


• -6 Æ 1010
• 4 Æ 0100
• 1010 + 0100 = 1110 Æ -2 ở biểu diễn bù 2
z Ví dụ biểu diễn bù 2 mẫu 5-bit
• -6 Æ 11010
• -4 Æ 11100
• 11010 + 11100 = 1 10110 (1 là nhớ)Æloại
bỏ 1 nhớ: 10110Æ -10 ở biểu diễn bù 2

104
Lỗi tràn số (1)

z Hiện tượng xảy ra khi số cần biểu diễn vượt


quá số bit cho trước để biểu diễn nó
z Ví dụ:
• Mẩu 4 bit cho biểu diễn bù 2 cho -6, -4
• -6 Æ 1010, -4 Æ 1100
• Kết quả phép cộng ở dạng bù 2 là 0110 là biểu
diễn của +6, do đó kết quả bị sai.
z Nguyên nhân: số lượng bit để biểu diễn quá ít

105
Lỗi tràn số (2)

z Khắc phục: tăng số lượng bit nhiều hơn


• Mẩu 32 bit số dương lớn nhất 2147483647
z Tổng quát:
• Ở phép biểu diễn bù 1:
• giá trị dương lớn nhất: 2n-1
• giá trị âm nhỏ nhất: -2n-1
• Ở phép biểu diễn bù 2 có n-bit
• giá trị dương lớn nhất: 2n-1 -1
• giá trị âm nhỏ nhất: -2n-1

106
Bài tập A – Dùng 8 bit

Biểu diễn số bù 1: Biểu diễn số bù 2:


1. -120 1. -101
2. -121 2. -102
3. -122 3. -103
4. -123 4. -104
5. -124 5. -105
6. -110 6. -106

107
Bài tập B – Dùng 16 bit

Biểu diễn số bù 1& Biểu diễn số bù 2 &


Thực hiện phép cộng: Thực hiện phép cộng:
1. (-74) + (-25) 1. (-91) + 13
2. (-75) + (-26) 2. (-92) + 14
3. (-76) + (-27) 3. (-93) + 15
4. (-77) + (-28) 4. (-94) + 16
5. (-78) + (-29) 5. (-95) + 17
6. (-79) + (-30) 6. (-19) + 18

108
Bài tập C

z Tính giá trị dương lớn nhất, giá trị âm nhỏ


nhất nếu sử dụng:
• 8 bit để biểu diễn số bù 1
• 16 bit để biểu diễn số bù 2

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

z Biểu diễn số thực với các cơ số


z Phương pháp dấu chấm động (Floating
Point)

111
Biểu diễn số thực với các cơ số (1)

z Dùng dấu chấm cơ số (dấu . hoặc dấu ,)


• Radix point
z Biểu diễn số thực trong hệ k
• Phần nguyên: trước dấu chấm cơ số
• Phần lẻ: sau dấu chấm cơ số
• Phần thập phân trong hệ 10
z Qui tắc???

112
Biểu diễn số thực với các cơ số (2)

z Qui tắc: đổi sang hệ 10


anan-1…a0,b1b2…bm (k) =
an x kn + an-1 x kn-1 +…+ a0 x k0 +
b1 x k-1 + b2 x k-2 + … + bm x k-m
z Tính 101.1012 = ?
5.625

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)

z Qui tắc đổi từ số thập phân có phần


lẻ sang hệ số k
• Đổi phần nguyên như qui tắc đổi số nguyên
• chia nguyên lần lượt cho k đến khi =0
• kết quả phần nguyên là số dư ghi ngược lại
• Đổi phần lẻ theo qui tắc:
• nhân lần lượt chỉ phần lẻ cho k cho đến khi =0
• kết quả phần lẻ là phần nguyên lần lượt khi nhân

116
Biểu diễn số thực với các cơ số (6)

z Tính 31.15625 =?h =?8=?2


0.15625 x16
z 31 = 1Fh = 378 = 111112
2 .5
z 0.15625 = 0.28h = 0.128
8 .0
= 0.001012
0.15625 x8
z 31.15625 = 1F.28h = 1 .25
= 37.128 = 11111.001012 2 .0

117
Biểu diễn số thực với các cơ số (7)

z Chú ý chuyển đổi qua lại giữa các hệ 2 và


8 (16) khi không đủ số lượng bit:
• Phần nguyên thêm 0 phía trái nhất
• Phần lẻ thêm 0 phía phải nhất

118
Phương pháp dấu chấm động (1)

z Biểu diễn dấu chấm động


• Floating point
• Scientific format
• 3 phần: dấu + mũ + nguyên(trị)
+31.15625 = +0.3115625x102

+ 3115625x10-5

Dấu Nguyên Mũ
(Sign) (Mantissa) (exponent)

119
Phương pháp dấu chấm động (2)

z Khi biểu diễn số thực trên máy tính


• Chuyển về nhị phân
• Chuẩn hóa
• Biểu diễn floating point: chỉ cần phần lẻ
+31.15625 = +11111.001012
+11111.001012 = +1.1111001012 x 2+4
+1.1111001012 x 2+100b
Dấu Nguyên Mũ
(Sign) (Mantissa) (exponent)

120
Phương pháp dấu chấm động (3)

z Biểu diễn số thực dấu chấm động 16 bit:


• 1 bit trái nhất: bit dấu (+ hoặc -)
• 4 bit tiếp theo: bit mũ (dấu lượng)
• 11 bit cuối cùng: bit định trị (số nguyên)

+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

z Biểu diễn số thực dấu chấm động 16 bit:


z Biểu diễn -29.46875

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)


Giá trị Dấu Sign, Exponent, Mantissa
lượng

-1.11 127 1 01111111 11000000000000000000000

+1101.101 130 0 10000010 10110100000000000000000

-.00101 124 1 01111100 01000000000000000000000

+100111.0 132 0 10000100 00111000000000000000000

+.0000001101011 120 0 01111000 10101100000000000000000

125
Tóm tắt biểu diễn dấu chấm động

z Qui định định dạng


z Chuyển về nhị phân
z Chuẩn hóa
z Chuyển đổi giá trị phần mũ
z Tính kết quả từng phần
z Kết quả cuối cù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)

z Thuật toán (tt)


• Trong khoa học máy tính
• Một dãy hữu hạn các bước rõ ràng và thực thi được.
• Quá trình hành động theo các bước này phải dừng và
cho được kết quả như mong muốn.
• Tính xác định
• Hướng dẫn giải rõ ràng và đúng
• Tính hữu hạn
• Số bước hữu hạn và tính chất dừng

131
Các khái niệm (3)

z Tính mập mờ:


• Xem xét thực hiện công việc tìm một môn học
nhiều đvht nhất:
• Lập danh sách các môn học.
• Sắp thứ tự các môn học.
• Chọn ra một môn học nhiều đvht.
• Kết quả:???
• Câu hỏi:???

132
Các khái niệm (4)

z Tính mập mờ (tt):


• Vi phạm tính rõ ràng – không mập mờ
• Hiểu đúng – Hiểu 1 nghĩa duy nhất
• Sửa lại :
• 1.Lập danh sách các môn học theo tên, số đvht
• 2.Sắp thứ tự các môn học giảm dần theo số đvht
• 3.Chọn ra một môn học có nhiều đvht nhất
• Câu hỏi???

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)

z Tính thực thi được:


• Hiển nhiên
• Chỉ xét trong điều kiện hiện tại của bài toán
• Cho ví dụ về điều kiện hiện tại:???
z Tính dừng:
• Không dừng: Lặp vô tận, bị quẫn
• Dễ vi phạm nhất

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)

z Thuật toán thì cứng nhắc !


• Tính chất chặt chẽ và cứng nhắc.
• Khả năng giải quyết vấn đề bị giới hạn.
z "làm mềm“: tính xác định và tính đúng
• Thuật toán đệ quy.
• Thuật giải.

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)

z Thuật toán giải phương trình bậc hai


ax2+bx+c=0 (a<>0)
• 1. Yêu cầu cho biết giá trị của 3 hệ số a, b, c
• 2. Nếu a=0 thì
• 2.1. Yêu cầu đầu vào không đảm bảo.
• 2.2. Kết thúc thuật toán.
• 3. Trường hợp a khác 0 thì

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)

z Bài toán : Cho hai số nguyên dương a và


b. Tìm ước số chung lớn nhất của a và b.
z Thuật toán Euclid
• 1. Yêu cầu cho biết giá trị của a, b.
• 2. a0 = a
• 3. b0 = b
• 4. i = 0

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)

z Công cụ trực quan diễn đạt thuật toán.


• Biểu diễn bằng mô hình – hình vẽ
z Theo dõi được:
• sự phân cấp các trường hợp
• quá trình xử lý của thuật toán
z Được dùng trong những thuật toán
• rắc rối
• khó theo dõi được quá trình xử lý

147
Lưu đồ - sơ đồ khối (2)

z Phân biệt hai loại thao tác:


• Chọn lựa theo một điều kiện nào đó
• Xử lý, hành động

148
Lưu đồ - sơ đồ khối (3)

z Chọn lựa theo một điều kiện nào đó


• Decision
• Biểu diễn bằng một hình thoi, bên trong chứa
biểu thức điều kiện.
• Ví dụ: thao tác "nếu a = b thì thực hiện thao
tác B2, ngược lại thực hiện B4" là thao tác
chọn lựa

149
Lưu đồ - sơ đồ khối (4)

z Xử lý, hành động.


• Process
• Biểu diễn bằng một hình chữ nhật, bên trong
chứa nội dung xử lý.
• Ví dụ: "Chọn một môn học và in ra." là một
thao tác thuộc loại hành động.

150
Lưu đồ - sơ đồ khối (5)

z Quá trình thực hiện các thao tác:


• Đường đi – route
• Biểu diễn bằng cung có hướng
• nối giữa 2 thao tác: thực hiện lần lượt

151
Lưu đồ - sơ đồ khối (6)

z Thao tác chọn lựa: có thể có hai hướng đi


• một hướng ứng với điều kiện thỏa
• một hướng ứng với điều kiện không thỏa.
• 2 cung có nhãn
• Đ/Đúng,Y/Yes
• S/Sai,N/No

152
Lưu đồ - sơ đồ khối (7)

z Ðiểm cuối (terminator)


• Biểu diễn bằng hình ovan
• Điểm khởi đầu
• chỉ có cung đi ra
• bên trong ovan ghi chữ: bắt đầu/start/begin
• Điểm kết thúc
• Chỉ có cung đi vào
• bên trong ovan ghi chữ: kết thúc/end

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)

z Điểm nối (connector)


• Nối các phần khác nhau của
một lưu đồ
• Nối sang trang
• Sử dụng với lưu đồ phức tạp
• Giảm độ rắc rối
• Đặt ký hiệu
liên hệ giữa các
điểm nối

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

z Khái niệm ngôn ngữ lập trình


z Sự tiến hóa của ngôn ngữ lập trình
z Các ngôn ngữ lập trình tiêu biểu
z Biên dịch và thông dịch
z Các phương pháp lập trình

159
Khái niệm ngôn ngữ lập trình (1)

z Con người “nói chuyện” với nhau:


• Ngôn ngữ tự nhiên
z Con người “nói chuyện” với máy tính:
• Ngôn ngữ lập trình

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

z Chương trình (Program) là một tập lệnh (instruction)


điều khiển việc xử lý dữ liệu (data) của máy tính
Program = Data Structures + Algorithms

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, . . .)

Được dịch bởi Compiler hoặc


Interpreter

Assembly language (Assembly language)

Được dịch bởi Assembler

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

Source program Interpreter Output


Thông
dịch

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

You might also like