You are on page 1of 45

KỸ THUẬT LẬP TRÌNH

Chương 1: Giới thiệu chung

Kỹ thuật lập trình


2
Tài liệu tham khảo
1. Giáo trình lý thuyết & bài tập ngôn ngữ C (tập 1),
Nguyễn Đình Tê & Hoàng Đức Hải, NXB.Phương Đông.
2. C++ & lập trình hướng đối tượng, GS.Pham Văn Ất,
NXB.Khoa Học Và Kỹ Thuật.
3. Giáo trình C++, Trương Văn Trí Công, Khoa CNTT, Đại Học
Cần Thơ.
4. C++ How to Program, Fifth Edition, H. M. Deitel - Deitel
& Associates, Inc., P. J. Deitel - Deitel & Associates 1356
pages.
5. The C++ Programming Language 3rd Edition, Bjarne
Stroustrup.

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

• Input: lương căn bản, ngày công


• Process: nhân lương căn bản với ngày công
• Output: lươ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)

• Điều kiện hình thành giải thuật:


❑ Trả lời câu hỏi: Giải quyết mục tiêu bài toán phải
làm như thế nào?
❑ Ví dụ: Để giải một bài toán tính diện tích hình cầu,
mà bạn không còn nhớ công thức tính hình cầu thì
bạn không thể viết chương trình cho máy để giải bài
toán này được.

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:

Chương trình = Giải thuật + Cấu trúc dữ liệu

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.

Source code Compiler Program

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

• Việc sử dụng flowchart trong quá trình phân tích và giải


quyết vấn đề sẽ hỗ trợ cho việc viết chương trình trở nên
tường minh hơn.

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

• Input: Lương cơ bản, ngày công


• Process: Lương cơ bản * ngày công
• Output: Lương thá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

400 + 0 + 7 + 0.6 + 0.02 + 0.005 = 407.625

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

4 + 0 + 1 + 0 + 0.25 + 0.125 = 5.375

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

0.625 x 2 = 1.25 phần nguyên 1 (MSB)


0.25 x 2 = 0.5 phần nguyên 0
0.5 x 2 = 1.0 phần nguyên 1
36
5.2 Chuyển đổi cơ số
b) Từ thập phân sang thập lục phân
1480.4296875
1480 : 16 = 92 dư 8 (LSD)
92 : 16 = 5 dư 12
5 : 16 = 0 dư 5

5 C 8 . 6 E H

0.4296875 x 16 = 6.875 phần nguyên 6 (MSD)


0.875 x 16 = 14.0 phần nguyên 14
37
5.2 Chuyển đổi cơ số
c) Từ nhị phân sang thập lục phân

0011101101011101.0110101 0 B
3 B 5 D . 6 A H

d) Từ thập lục phân sang nhị phân

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)

Số BCD BCD BCD


Mã 1 trong 10
thập phân (8 4 2 1) (2 4 2 1) Quá 3
0 0000 0000 0011 0000000001
1 0001 0001 0100 0000000010
2 0010 0010 0101 0000000100
3 0011 0011 0110 0000001000
4 0100 0100 0111 0000010000
5 0101 1011 1000 0000100000
6 0110 1100 1001 0001000000
7 0111 1101 1010 0010000000
8 1000 1110 1011 0100000000 42
9 1001 1111 1100 1000000000
6.3 Mã nhị phân
b) Mã LED 7 đoạn

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

You might also like