Lập trình C 1

Bài 1 :
NGÔN NGỮLẬP TRÌNH & PHƯƠNG PHÁP LẬP TRÌNH
1.1  Mục tiêu
Sau khi hoàn tất bài này học viên sẽhiểu và vận dụng các kiến thức kĩnăng cơbản sau:
- Ý nghĩa, các bước lập trình.
- Xác định dữliệu vào, ra.
- Phân tích các bài toán đơn giản.
- Khái niệm so sánh, lặp.
- Thểhiện bài toán bằng lưu đồ.
1.2  Lý thuyết
1.2.1  Ngôn ngữlập trình (Programming Language)
Phần này chúng ta sẽtìm hiểu một sốkhái niệm căn bản vềthuật toán, chương trình, ngôn
ngữlập trình. Thuật ngữ"thuật giải" và "thuật toán" dĩnhiên có sựkhác nhau song trong nhiều
trường hợp chúng có cùng nghĩa.
1.2.1.1  Thuật giải (Algorithm)
Là một dãy 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 thuật giải:
Thuật giải = Logic + Điều khiển
* Logic: Đây là phần khá quan trọng, nó trảlời câu hỏi "Thuật giải làm gì, giải quyết vấn
đềgì?", những yếu tốtrong bài toán có quan hệvới nhau nhưthếnào v.v… Ở đây bao gồm
những kiến thức chuyên môn mà bạn phải biết đểcó thểtiến hành giải bài toán.
Ví dụ1: Để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.
* Điều khiển: Thành phần này trảlời câu hỏi: giải thuật 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 đề.
1.2.1.2  Chương trình (Program)
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 thì:
Chương trình = Thuật toán + Cấu trúc dữliệu
Các thuật toá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:
* 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.
Muốn trởthành lập trình viên chuyên nghiệp bạn hãy làm đúng trình tự đểcó thói quen tốt
và thuận lợi sau này trên nhiều mặt của một người làm máy tính. Bạn hãy làm theo các bước sau:
Tìm, xây dựng thuật giải (trên giấy) →viết chương trình trên máy
→dịch chương trình →chạy và thửchương trình
HanoiAptech Computer Education Center  Thanghv
Giáo trình Lập trình C căn bản  Trang 8
1.2.1.3  Ngôn ngữlập trình (Programming language)
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.2.2  Các bước lập trình
Bước 1: Phân tích vấn đềvà xác định các đặc điểm. (xác định I-P-O)
Bước 2: Lập 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à hoàn thiện chương trình. (thửnghiệm bằng nhiều sốliệu và đánh giá)
1.2.3  Kỹthuật lập trình
1.2.3.1  I-P-O Cycle (Input-Pprocess-Output Cycle) (Quy trình nhập-xửlý-xuất)
Quy trình xửlý cơbản của máy tính gồm I-P-O.
Ví dụ2:Xác định Input, Process, Output của việc làm 1 ly nước chanh nóng
Input: ly, đường, chanh, nước nóng, muỗng.
Process: - cho hỗn hợp đường, chanh, nước nóng vào ly.
- dùng muỗng khuấy đều.
Output: ly chanh nóng đã sẵn sàng đểdùng.
Ví dụ3: 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
Ví dụ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ụ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 lớn nhất
Ngược lại Output= b lớn nhất
Comment