CHƯƠNG 1: TỔNG QUAN VỀ KỸ THUẬT LÂP TRÌNH Mã chương: MH09-01 ❖ Giới thiệu: Chương này chúng ta cùng tìm hiểu các khái niệm về kỹ thuật lập trình, giới thiệu môi trường lập trình với ngôn ngữ lập trình C. ❖ Mục tiêu: - Trình bày được các khái niệm về lập trình, kỹ thuật lập trình, công nghệ lập trình; - Trình bày được lịch sử phát triển, ứng dụng của ngôn ngữ lập trình; - Làm quen môi trường phát triển phần mềm; - Sử dụng được hệ thống trợ giúp từ help file, phần mềm Borland C++,… - Thực hiện các thao tác an toàn với máy tính. ❖ Nội dung chính: 1. Một số khái niệm cơ bản Lập trình là sử dụng ngôn ngữ để viết, hiểu các dòng lệnh, cấu trúc dữ liệu và thuật toán để giải quyết bài toán.
Mã chương trình được thông dịch và biên dịch để chương trình sau cùng chạy được. Thông dịch là quá trình kiểm tra và chuyển đổi câu lệnh tương ứng với ngôn ngữ máy, thực hiện từng câu lệnh. Biên dịch là quá trình kiểm tra toàn bộ mã chương trình và chuyển đoi thành chương trình thực thi được. 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.
Thuật toán: là tập hợp (dãy) hữu hạn cac 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 đó. Bao gồm 5 tính chất của thuật toán: Khoa Công nghệ thông tin – TCN Quang Trung Trang 6 Giáo trình Kỹ thuật lập trình ✓ Tính chính xác: quá trình tính toán hay các thao tác máy tính thực hiện là chính xác. ✓ Tính rõ ràng: các câu lệnh minh bạch được sắp xếp theo thứ tự nhất định. ✓ Tính khách quan: được viết bởi nhiều người trên máy tính nhưng kết quả phải như nhau.
✓ Tính phổ dụng: có thể áp dụng cho một lớp các bài toán có đầu vào tương tự nhau. ✓ Tính kết thúc: hữu hạn các bước tính toán Các bước xây dựng chương trình: 2. Các thành phần cơ bản của ngôn ngữ lập trình - Các ký tự, số: như a- z, A – Z, 0…9,. - Cú pháp: được hiểu bởi ngôn ngữ được định nghĩa như ngôn ngữ Pascal định nghĩa cú pháp khác với ngôn ngữ C#,… - Ngữ nghĩa: Phạm vi tác động của các đối tượng trong khối lệnh của chương trình.
- Tên: Các đối tượng được khai báo trong mã chương trình. Khoa Công nghệ thông tin – TCN Quang Trung Trang 7 Giáo trình Kỹ thuật lập trình - Từ khoá (tên dùng riêng): Ngôn ngữ lập trình được định danh bởi những tên dùng riêng, chúng ta không sử dụng tên này để đặt tên biến. Do vậy, khi viết mã chương trình chúng ta đặt tên đúng và dễ hiểu nhất không được trùng tên từ khoá. - Hằng: Có giá trị không đổi trong quá trình thực hiện chương trình.
- Biến: Do người dùng đặt, chúng dùng để lưu trữ giá trị và có thể thay đổi. Tuỳ thuộc vào ngôn ngữ và kiểu dữ liệu của biến có miền giá trị khác nhau. Khi khai báo biến căn cứ vào phạm vi của của nó mà có biến cục bộ và toàn cục. - Chú thích: Khi viết mã chương trình, chúng ta thường chú thích để hiểu, diễn giải đối tượng khai báo, lí do thực hiện… Tuỳ thuộc vào ngôn ngữ mà có chú thích khác nhau như Pascal( {.}, (*…*), C - C++ - Java – C# (//…từng dòng lệnh, /*….
Một số ngôn ngữ hiện đại được sử dụng rộng rãi để xây dựng phần mềm như Java, Visual Basic. Phương pháp lập trình mới là lập trình hướng đối tượng được sử dụng rộng rãi. Một số ngôn ngữ lập trình như: ngôn ngữ máy, hợp ngữ, ngôn ngữ bậc cao. 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.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 van đề 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.
Điều khiển: Là cách thức tiến hành áp dụng thanh phần logic để giải quyết vấn đề. Các tính chất của thuật toán gồm 5 tính chất sau: Tính chính xác: quá trình tính toán hay các thao tác máy tính thực hiện là chính xác. Tính rõ ràng: các câu lệnh minh bạch được sắp xếp theo thứ tự nhất định. Tính khách quan: được viết bởi nhiều người trên máy tính nhưng kết quả phải như nhau.
Tính phổ dụng: có thể áp dụng cho một lớp các bài toán có đầu vào tương tự nhau. Tính kết thúc: hữu hạn các bước tính toán. Khoa Công nghệ thông tin – TCN Quang Trung Trang 8 Giáo trình Kỹ thuật lập trình 4. Một số phương pháp lập trình Lập trình tuyến tính: Sử dụng ngôn ngữ máy để lập trình và sử dụng các khoá của cơ khí để nạp vào máy.
Phương pháp rất khó khi viết mã và khó khăn trong việc kiểm soát chương trình. Lập trình cấu trúc: Chương trình gồm các hàm, thủ tục riêng rẽ. Giữa chúng có thể độc lập hoặc giao tiếp với nhau. Phương pháp này đơn giản cho việc lập trình nhưng với những chương trình phức tạp khó khăn trong việc tổ chức kiểu dữ liệu.
Lập trình hướng đối tượng: Phương pháp này kế thừa từ phương pháp lập trình cấu trúc kết hợp với trừu tượng hoá dữ liệu. Phương pháp này giúp cho việc lập trình nhanh chóng hơn, khả năng tái sử dụng, kế thừa. thích trong cả đội ngủ lập trình. Lập trình trực quan: Đây là phương pháp lập trình thực tế được sử dụng, kế thừa những thành quả từ các phương pháp trước.
Với cách lập trình này người thiết kế thấy ngay kết qủa. Một số ngôn ngữ như Java (sử dụng các công cụ hỗ trợ lập trình trực quan), Visual Basic. là những ví dụ điển hình về phương pháp lập trình này. Với sự phát triển của công nghệ phần mềm thì từ những phương pháp lập trình trên sinh ra các nhánh lập trình mới như lập trình nhúng, lập trình với các thành phần có sẵn… 5.
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 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): Cac 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: Khoa Công nghệ thông tin – TCN Quang Trung Trang 9 Giáo trình Kỹ thuật lập trình 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 6. Các bước lập trình Người lập trình nắm tổng quát các bước chính khi xây dựng một chương trình ứng dụng sẽ có ý nghĩa quan trọng trong tiến trình phát triển xây dựng phần mềm ứng dụng. Qua đó, giúp cho người phát triển nắm rõ công việc, tiến trình thực hiện để tiếp nhận yêu cầu ban đầu đến triển khai, bảo trì và phát trien các phiên bản cập nhật trong quá trình sử dụng.
Theo thời gian, các bước lập trình có thể có nhiều công đoạn khác nhau, với khuôn khổ tài liệu học tập, chúng tôi tóm gọn những bước chính căn bản nhất trong tiến trình xây dựng phần mềm ứng dụng. Bước 1: Xác định mục tiêu của chương trình cần xây dựng là gì; Bước 2: Thiết kế chương trình; Bước 3: Viết mã chương trình nguồn; Bước 4: Biên dịch; Bước 5: Chạy chương trình; Bước 6: Kiểm tra và gỡ lỗi chương trình; Bước 7: Bảo trì và nâng cấp chương trình. Khoa Công nghệ thông tin – TCN Quang Trung Trang 10 Giáo trình Kỹ thuật lập trình 7. Xác định IPO IPO (Input-Process-Output) là cách xác định dữ liệu đưa vào để hệ thống để xử lí sau đó trả kết quả xử lí.
Quy trình xử lý cơ bản của máy tính gồm I-P-O. Input Output Process Ví dụ minh họa: Máy tính bỏ túi khoa học mà học sinh thường sử dụng là có chức năng giải phương trình bậc 2 với một ẩn số. Vậy thì, dữ liệu đưa vào máy tính là các hệ số A,B,C. Máy tính đã cài đặt sẵn chương trình để xử lí giải phương tringh bậc 2 với một ẩn số từ các hệ số A,B, C.
Người sử dụng chỉ quan tâm kết quả cuối cùng là nghiệm của phương trình x1, x2. Tóm tắt: I: các hệ số số A, B, C. P: Máy tính đã cài đặt sẵn chương trình để xử lí. Khoa Công nghệ thông tin – TCN Quang Trung Trang 11 Giáo trình Kỹ thuật lập trình Như vậy, câu hỏi đặt ra là máy tính đã cài đặt chương trình xử lí bài toán như thế nào? Để giải phương trình bậc 2 một ẩn này máy tính đã được cài đặt chương trình lập trình sẵn tích hợp vào máy tính bỏ túi đó.
Công việc này, người lập trình phải viết mã nguồn để giải quyết bài toán này. Ví dụ 1: 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ụ 2: 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 : Biện luận các trường hợp a, b, có nghiệm x = -b/a Output : nghiệm x Ví dụ 3: 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 8. Biểu diễn lưu đồ Lưu đồ thuật toán là công cụ dùng để biểu diễn thuật toán, việc mô tả nhập (input), dữ liệu xuất (output) và luồng xữ lý thông qua các ký hiệu hình học.
Phương pháp duyệt là: Duyệt từ trên xuống; Duyệt từ trái sang phải.