Professional Documents
Culture Documents
3
Nội dung
1. Tổng quan ngôn ngữ lập trình C/C++
2. Các khái niệm cơ bản
3. Tiến trình lập trình
4. Lưu đồ giải thuật (Flowchart)
5. Hệ thống số đếm
6. Số nhị phân
4
1. Tổng quan ngôn
ngữ C/C++
5
1. Tổng quan ngôn ngữ C/C++
• C/C++ được xem là ngôn ngữ lâu đời và phổ biến nhất
trên thế giới.
1. Tổng quan ngôn ngữ C/C++
• Các hệ điều hành và phần lớn phần mềm được tạo nên từ
ngôn ngữ C/C++ (Windows, Linux…)
• Được sử dụng để lập trình điều khiển hoạt động các thiết
bị điện tử - tạo thành hệ thống nhúng (embedded
Systems).
2. Các khái niệm cơ bản
8
2.1. Quy trình I-P-O
Input Output
Process
Data
Information
Quy trình xử lý thông tin của máy tính
❑ Information vs Data
• Information: thông điệp chứa nội dung “thô” – được
hiểu theo ngôn ngữ loài người, chứa đựng các thông
tin chưa được xử lý.
• Data: thông tin đã được “xử lý” (trở thành dữ liệu có
cấu trúc) bởi một quy trình trên máy tính, hệ thống
máy tính có thể hiểu và sử dụng.
9
2.1. Quy trình I-P-O
❑ I-P-O cycle
• Input: nhập thông tin cần xử lý vào.
• Process: xử lý thông tin theo cách thức đã được chỉ
định từ trước (lập trình) bằng các chương trình.
• Output: xuất kết quả ra dưới dạng dữ liệu có cấu trúc.
Information Data
Ví dụ: Quy trình xử lý âm thanh (information)
thành file nhạc mp3 (data) 8
2.1. Quy trình I-P-O
Ví dụ 01: Xác định Input, Process, Output của chương trình
tính tiền lương công nhân tháng 10/2002 biết rằng lương =
lương căn bản * ngày công
11
2.1. Quy trình I-P-O
Ví dụ 02: Xác định Input, Process, Output của chương
trình giải phương trình bậc nhất ax + b = 0
• Input: hệ số a, b
• Process: chia – b cho a
• Output: nghiệm x
12
2.2. Giải thuật (Algorithm)
Giải thuật – thuật toán là một tập hợp các thao tác xác định
trên một đối tượng, sao cho sau khi thực hiện một số hữu
hạn các bước thì đạt được mục tiêu.
• Theo R.A.Kowalski thì bản chất của giải thuật:
Algorithm = Logic + Control
• Trong đó:
▪ Logic: thể hiện các tiền đề (điều kiện, mục tiêu, kiến
thức chuyên môn) của 1 yêu cầu cần xử lý. VD: nhập 2
số a và b, tính tổng 2 số.
▪ Control: tập hợp các thao tác xử lý để giải quyết bài
toán.
13
2.2. Giải thuật (Algorithm)
14
2.3. Chương trình (Program)
Chương trình là một tập hợp các mô tả, các phát biểu, nằm
trong một hệ thống qui ước về ý nghĩa và thứ tự thực hiện,
nhằm điều khiển máy tính làm việc.
• Theo Niklaus Wirth:
15
2.3. Chương trình (Program)
• Chương trình hoạt động dựa trên 3 cấu trúc điều khiển cơ
bản:
1. Tuần tự (Sequential): Các bước thực hiện tuần tự một
cách chính xác từ trên xuống, mỗi bước chỉ thực hiện
đúng một lần.
2. Chọn lọc (Selection): Chọn 1 trong 2 hay nhiều thao tác
để thực hiện.
3. Lặp lại (Repetition): Một hay nhiều bước được thực
hiện lặp lại một số lần.
16
2.3. Chương trình (Program)
• Cấu trúc dữ liệu: là các số liệu lưu trữ trong máy dưới
dạng data theo một kết cấu nhất định. Có nhiều kiểu dữ
liệu khác nhau.
1. Kiểu dữ liệu sơ cấp: là kiểu có giá trị đơn nhất.
Ví dụ: int (các số nguyên), float (các số thập phân); các
phép toán +, -, *…
2. Kiểu dữ liệu có cấu trúc: là kiểu mà các giá trị của nó là
kết hợp của các giá trị khác.
Ví dụ: kiểu chuỗi ký tự “hello”, “chào bạn”, “123456”…
17
2.4. Ngôn ngữ lập trình
• Ngôn ngữ lập trình là hệ thống các ký hiệu tuân theo các
qui ước về ngữ pháp và ngữ nghĩa, dùng để xây dựng
thành các chương trình cho máy tính.
• Một chương trình được viết bằng một ngôn ngữ lập trình
cụ thể (VD: Pascal, C, C#, Java…) gọi là chương trình nguồn
(source code), chương trình dịch (compiler) làm nhiệm vụ
dịch chương trình nguồn thành chương trình thực thi
(program) được trên máy tính.
18
3. Tiến trình lập trình
19
3. Tiến trình lập trình
6. Debugging 1. Analyze
5. Testing 2. Solution
4. Compiling 3. Programming
20
3. Tiến trình lập trình
1. Analyze: phân tích vấn đề và xác định các đặc điểm (xác
định I-P-O).
2. Solution: đưa ra giải pháp (đưa ra giải thuật).
3. Programming: cài đặt (viết chương trình).
4. Compiling: biên dịch chương trình.
5. Testing: Kiểm chứng chương trình (thử nghiệm bằng
nhiều số liệu, tình huống, …).
6. Debugging: Sửa lỗi, đánh giá và hoàn thiện chương
trình.
21
4. Flowchart
22
4. Flowchart
• Để dễ hiểu hơn về quy trình xử lý, các nhà lập trình đưa ra
dạng lưu đồ để minh họa từng bước quá trình xử lý một
vấn đề / bài toán, được gọi là lưu đồ thuật toán
(flowchart).
23
4. Flowchart
24
4. Flowchart
Ví dụ 01: Quy trình pha cà phê
25
4. Flowchart
Ví dụ 02: Lưu đồ cộng 2 số
26
4. Flowchart
Ví dụ 04: Dùng lưu đồ mô tả bài toán bên dưới
Xác định Input, Process, Output của chương trình tính tiền
lương tháng của công nhân biết rằng:
lương = lương cơ bản* ngày công
27
4. Flowchart
Bài tập 01: Dùng lưu đồ khối kiểm tra tính hợp lệ của điểm
thi, biết rằng điểm thi hợp lệ phải từ 0 cho đến 10.
Sai
Đúng
28
4. Flowchart
Bài tập 02: Dùng lưu đồ khối giải quyết bài toán nhập vào 2
số a và b, tìm và in ra số lớn nhất.
29
4. Flowchart
Bài tập 03: Dùng lưu đồ khối giải quyết bài toán phân loại
học sinh dựa theo điểm số, biết rằng:
a. Loại 1: từ 7 đến 10 điểm.
b. Loại 2: từ 5 đến dưới 7 điểm.
c. Còn lại: không phân loại.
30
5. Hệ thống số đếm
31
5.1 Các khái niệm về hệ thống số đếm
32
5.1 Các khái niệm về hệ thống số đếm
a) Số thập phân (Decimal - DEC): Cơ số r = 10
4 0 7 . 6 2 5
102 101 100 . 10-1 10-2 10-3
4x102 0x101 7x100 . 6x10-1 2x10-2 5x10-3
400 0 7 . 0.6 0.02 0.005
33
5.1 Các khái niệm về hệ thống số đếm
b) Số nhị phân (Binary - BIN): Cơ số r = 2
1 0 1 . 0 1 1
22 21 20 . 2-1 2-2 2-3
1x22 0x21 1x20 . 0x2-1 1x2-2 1x2-3
4 0 1 . 0 0.25 0.125
34
5.1 Các khái niệm về hệ thống số đếm
c) Số thập lục phân (Hexadecimal – HEX): Cơ số r = 16
Hexadecimal Decimal Binary Hexadecimal Decimal Binary
0 0 0000 8 8 1000
1 1 0001 9 9 1001
2 2 0010 A 10 1010
3 3 0011 B 11 1011
4 4 0100 C 12 1100
5 5 0101 D 13 1101
6 6 0110 E 14 1110
7 7 0111 F 15 1111
5 A 0 . 4 D 1
162 161 160 . 16-1 16-2 16-3
5x162 10x161 0x160 . 4x16-1 13x16-2 1x16-3
1280 160 0 . 0.25 0.0508 0.0002
35
1280 + 160 + 0 + 0.25 + 0.0508 + 0.0002 = 1440.301
5.2 Chuyển đổi cơ số
a) Từ thập phân sang nhị phân
8 . 625
8 :2 = 4 dư 0 (LSB)
4 :2 = 2 dư 0
2 :2 = 1 dư 0
1 :2= 0 dư 1
1 0 0 0 . 1 0 1 B
5 C 8 . 6 E H
0011101101011101.0110101 0 B
3 B 5 D . 6 A H
2 C 9 . E 8 H
0 01011001001.11101000 B
38
6. Số nhị phân
39
6.1 Các tính chất của số nhị phân
40
6.2 Số nhị phân có dấu
41
6.3 Mã nhị phân
a) Mã nhị phân cho số thập phân (BCD – Binary Coded
Decimal)
a
f g b
e c
d
43
6.3 Mã nhị phân
b) Mã ASCII Cột b6 b5 b4
Hàng 000 001 010 011 100 101 110 111
b3b2b1b0 Hex 0 1 2 3 4 5 6 7
0000 0 NUL DLE SP 0 @ P ` p
0001 1 SOH DC1 ! 1 A Q a q
0010 2 STX DC2 ” 2 B R b r
0011 3 ETX DC3 # 3 C S c s
0100 4 EOT DC4 $ 4 D T d t
0101 5 ENQ NAK % 5 E U e u
0110 6 ACK SYN & 6 F V f v
0111 7 BEL ETB ’ 7 G W g w
1000 8 BS CAN ( 8 H X h x
1001 9 HT EM ) 9 I Y i y
1010 A LF SUB * : J Z j z
1011 B VT ESC + ; K [ k {
1100 C FF FS , < L \ l |
1101 D CR GS - = M ] m } 44
1110 E SO RS . > N ^ n ~
1111 F SI US / ? O _ o DEL
Kết thúc