Tải bản đầy đủ (.doc) (12 trang)

CHƯƠNG 1 một số KHÁI NIỆM LIÊN QUAN đến lập TRÌNH

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (147.62 KB, 12 trang )

CHƯƠNG 1: MỘT SỐ KHÁI NIỆM LIÊN QUAN ĐẾN LẬP TRÌNH
1.1.

Mục tiêu.

Mục tiêu của chương này giúp người đọc:
Hiểu được các khái niệm cơ bản liên quan đến lập trình.
Nắm được các bước lập trình.
Xác định được dữ liệu đầu vào, thành phần xử lý, dữ liệu đầu ra.
Phân tích được các bài toán đơn giản.
Thể hiện được thuật toán bằng ngôn ngữ tự nhiên, lưu đồ, mã giả.
1.2.
1.2.1.

Các khái niệm cơ bản.
Thuật toán.

Thuật toán là một dãy các thao tác xác định trên một đối tượng từ trạng thái ban đầu
cho trước, sao cho sau khi thực hiện một số hữu hạn các bước thì đạt được kết quả sau
cùng như đã dự kiến.
Nói cách khác, thuật tốn là tập hợp (dãy) hữu hạn các chỉ thị (hành động) được
định nghĩa rõ ràng nhằm giải quyết một bài toán cụ thể nào đó.
Theo R.A.Kowalski thì bản chất của thuật toán là:
Thuật toán = Logic + Điều khiển
Logic: đây là phần khá quan trọng, nó trả lời câu hỏi “Thuật tốn làm gì và giải quyết
vấn đề gì?”, những yếu tố trong bài tốn có quan hệ với nhau như thế nào?. Ngồi ra
nó cịn bao gồm cả những kiến thức chun mơn cần phải biết để có thể tiến hành giải
bài toán. Chẳng hạn như để giải bài toán tính diện tích hình cầu, mà khơng cịn nhớ
cơng thức tính diện tích hình cầu thì khơng thể viết chương trình cho máy để giải bài
tốn này được.
Điều khiển: thành phần này trả lời câu hỏi thuật toán phải làm như thế nào?. Chính là


cách thức tiến hành áp dụng thành phần logic để giải quyết vấn đề.
Ví dụ 1_1: Thuật tốn giải phương trình bậc nhất P(x): ax + b = 0, (a, b là các số thực)
Đầu vào: a, b thuộc R
1


Đầu ra: nghiệm của phương trình ax + b = 0
 Nếu a = 0
o b = 0 thì P(x) có nghiệm bất kì
o b ≠ 0 thì P(c) vơ nghiệm
 Nếu a ≠ 0
o P(x) có duy nhất một nghiệm x = (b)/a Các tính chất của thuật tốn.
 Tính chính xác: để đảm bảo kết quả tính tốn hay các thao tác mà máy tính
thực hiện được là chính xác.
 Tính rõ ràng: thuật tốn phải được thể hiện bằng các câu lệnh minh bạch; các
câu lệnh được sắp xếp theo thứ tự nhất định.
 Tính khách quan: một thuật toán dù được viết bởi nhiều người trên nhiều máy
tính vẫn phải cho kết quả như nhau.
 Tính phổ dụng: thuật tốn khơng chỉ áp dụng cho một bài tốn nhất định mà có
thể áp dụng cho một lớp các bài tốn có đầu vào tương tự nhau.
 Tính kết thúc: Thuật tốn phải gồm một số hữu hạn các bước tính tốn.
1.2.2.

Chương trình.

Chương trình là một tập hợp các chỉ thị, hướng dẫn để thực hiện một tác vụ cụ thể
được thực hiện bởi máy tính. Theo Niklaus Wirth thì:
Chương trình = Thuật tốn + Cấu trúc dữ liệu
Các thuật tốn và chương trình đều có cấu trúc dựa trên 3 cấu trúc điều khiển cơ bản
sau:

 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.
 Chọn lọc (selection): chọn 1 trong 2 hay nhiều thao tác để thực hiện
 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.

2


1.2.3.

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ể (ví dụ Pascal, C…)
gọi là chương trình nguồn, chương trình dịch làm nhiệm vụ dịch chương trình nguồn
thành chương trình thực thi được trên máy tính.
1.3.
1.3.1.

Các bước xây dựng chương trình.
Các bước cơ bản.

Các bước cơ bản để xây dựng một chương trình như sau:
Bước 1: Phân tích vấn đề và xác định các đặc điểm (xác định dữ liệu đầu vào, xác
định thành phần cần xử lý, xác định dữ liệu đầu ra)
Bước 2: Đưa ra giải pháp (đưa ra thuật giải)
Bước 3: Cài đặt (viết chương trình)
Bước 4: Chạy thử chương trình (dịch chương trình)
Bước 5: Kiểm chứng và hồn thiện chương trình (thử nghiệm bằng nhiều số liệu và

đánh giá)
1.3.2.

Quy trình Nhập – Xử lý – Xuất (I-P-O cycle).

Quy trình xử lý cơ bản của máy tính gồm nhập – xử lý – xuất (input – process- output)

3


Input

Output

Process
Quy trình này nhận dữ liệu đầu vào từ người dùng hoặc các nguồn khác nhau, thực
hiện tính tốn trên dữ liệu và sau đó trả về kết quả của việc tính tốn. Quy trình này
được sử dụng rộng rãi trong việc phân tích hệ thống và phát triển phần mềm.
Ví dụ 1_2: Xác định Input, Process, Output của việc pha một ly cà phê.
Input

: ly, đường, cà phê, nước sơi, muỗng

Process : hịa cà phê vào nước sơi, cho đường vào hỗn hợp, khuấy đều hỗn hợp

4


Output : ly cà phê đã sẵn sàng
Ví dụ 1_3: Xác định Input, Process, Output của chương trình tính tiền lương cho công

nhân, 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
Ví dụ 1_4: 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
Ví dụ 1_5: Xác định Input, Process, Output của chương trình tìm số lớn nhất của 2 số
a và b.
Input

: a, b

Process : nếu a > b thì Output = a, ngược lại Output = b
1.4.

Biểu diễn thuật tốn.

Để có thể truyền đạt thuật toán cho người khác hiểu, hay chuyển thuật tốn thành
chương trình máy tính, cần phải có phương pháp biểu diễn thuật tốn. Có ba phương
pháp biểu diễn thuật tốn:
- Dùng ngơn ngữ tự nhiên

- Dùng lưu đồ - sơ đồ khối (flowchart)
- Dùng mã giả (pseudocode)
1.4.1.

Sử dụng ngôn ngữ tự nhiên.

Để biểu diễn thuật tốn bằng ngơn ngữ tự nhiên, người ta sử dụng ngôn ngữ thường
ngày để liệt kê các bước của thuật toán. Phương pháp này không yêu cầu người viết


cũng như người đọc phải nắm các quy tắc, vì gần như khơng có một quy tắc cố định


nào trong việc thể hiện thuật tốn bằng ngơn ngữ tự nhiên. Tuy nhiên, để dễ đọc,
người ta thường viết các bước con lùi vào bên phải và đánh số bước theo quy tắc phân
cấp như 1, 1.1, 1.1.1,…
Ví dụ 1_6: Sử dụng ngôn ngữ tự nhiên biểu diễn thuật tốn giải phương trình ax + b =
0.
Dữ liệu đầu vào: a, b thuộc R
Dữ liệu đầu ra: nghiệm của phương trình ax + b = 0
1. Nhập 2 số thực a và b.
2. Nếu a = 0 thì
2.1. Nếu b = 0 thì
2.1.1. Phương trình vơ số nghiệm
2.1.2. Kết thúc thuật tốn
2.2. Ngược lại
2.2.1. Phương trình vơ nghiệm
2.2.2. Kết thúc thuật tốn
3. Ngược lại
3.1. Phương trình có nghiệm x = - b / a

3.2. Kết thúc thuật toán
1.4.2. Sử dụng lưu đồ - sơ đồ khối.
Để dễ hơn, 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 tốn).
Hình dạng (Symbol)

Hành động (Activity)

Dữ liệu vào/ ra (Input/ Ouput)

Xử lý (Process)

Quyết định (Decicion), sử dụng
điều kiện


Luồng xử lý (Flow lines)

Chương trình con, hàm …
(Procedure, Function,…)

Bắt đầu, kết thúc (Begin, End)

Điểm ghép nối (Connector)


Ví dụ 1_7: Sử dụng lưu đồ biểu diễn thuật tốn giải phương trình ax + b = 0.

Bắt đầu


Đọc a, b

a=0

Đ
Đ

b=0

S

S

Tính
x = -b /a

Xuất
“VSN”

Xuất
“VN”

Kết thúc
Ví dụ 1_8: Sử dụng lưu đồ biểu diễn thuật toán pha cà phê.

Xuất x


Bắt đầu
Cà phê, nước sơi

Hịa cà phê vào nước sơi

Bỏ đường vào
Khuấy đều hỗn hợp

Cà phê đã pha
Kết thúc
Ví dụ 1_9: Sử dụng lưu đồ biểu diễn thuật tốn tính tiền lương cho công nhân, biết
rằng lương = lương căn bản * ngày công.

Bắt đầu

LCB, ngày công

Nhân LCB với ngày công

LCB, ngày công

Kết thúc


Ví dụ 1_10: Sử dụng lưu đồ biểu diễn thuật tốn kiểm tra tính hợp lệ của điểm (theo
thang điểm 10).
Bắt đầu

Điểm

S

Điểm >=0 và

Điểm <=10
Đ

Kết thúc
1.4.3.

Sử dụng mã giả.

Tuy sơ đồ khối thể hiện rõ quá trình xử lý và sự phân cấp của các trường hợp của
thuật toán, tuy nhiên phương pháp này hơi cồng kềnh và mất khá nhiều thời gian để
thể hiện. Bên cạnh đó, lưu đồ chỉ thể hiện được hai thao tác đó là rẽ nhánh và xử lý
mà trong thực tế còn cần thêm thao tác lặp.
Sử dụng mã giả là việc đi vay mượn cú pháp của một ngơn ngữ lập trình nào đó để thể
hiện thuật tốn. Mọi ngơn ngữ lập trình đều có các thao tác cơ bản là xử lý, rẽ nhánh
và lặp, nên việc sử dụng mã giả sẽ tận dụng được các khái niệm của ngơn ngữ lập
trình và giúp người đọc dễ dàng cài đặt thuật tốn.
Ví dụ 1_11: Vay mượn ngôn ngữ Pascal biểu diễn thuật tốn giải phương trình ax + b
= 0.
Dữ liệu đầu vào: a, b thuộc R
Dữ liệu đầu ra: nghiệm của phương trình ax + b = 0
If a = 0 Then
Begin


Xuất “Phương trình vơ số nghiệm”
Else
Xuất “Phương trình vơ nghiệm”
End
Else
Xuất “Phương trình có nghiệm x = -b/a”

1.5.
Bài tập.
1. Xác định Input, Process, Output và vẽ lưu đồ cho chương trình đổi từ
tiền VND sang USD.
2. Xác định Input, Process, Output và vẽ lưu đồ cho chương trình tính điểm
trung bình của học sinh gồm các mơn Tốn, Lý, Hóa.
3. Xác định Input, Process, Output và vẽ lưu đồ cho chương trình giải
phương trình bậc 2: ax2 + bx + c = 0.
4. Xác định Input, Process, Output và vẽ lưu đồ cho chương trình đổi từ độ
sang radian và ngược lại theo công thức / =a/180, với : radian, a: độ.
5. Xác định Input, Process, Output và vẽ lưu đồ cho chương trình nhập bán
kính hình trịn, tính chu vi và diện tích của hình trịn đó.
6. Xác định Input, Process, Output và vẽ lưu đồ cho chương trình nhập vào
năm sinh của một người, tính tuổi của người đó.
Xác định Input, Process, Output và vẽ lưu đồ cho chương trình nhập vào số xe (gồm 5
chữ số), cho biết số xe đó được m



×