Python thực hành (1) - Tổng quan về lập trình

 1. Tổng quan về lập trình

1.1 Lập trình là gì?

Lập trình là việc bạn viết ra những "lệnh" hoặc "hướng dẫn" để máy tính hiểu và làm theo. Những "lệnh" này được viết bằng một ngôn ngữ đặc biệt mà máy tính có thể hiểu được.

Các ngôn ngữ đặc biệt (mà máy tính có thể hiểu) gọi là ngôn ngữ lập trình, được chia thành 2 nhóm:

- Ngôn ngữ lập trình bậc thấp

- Ngôn ngữ lập trình bậc cao

Ngôn ngữ lập trình bậc thấp

Ngôn ngữ lập trình bậc thấp là loại ngôn ngữ mà máy tính "hiểu" dễ hơn, nhưng con người lại khó đọc và viết hơn. Nó gần với cách máy tính hoạt động, giống như "ngôn ngữ bí mật" của máy tính. Ngôn ngữ này thường dùng các số, ký hiệu hoặc lệnh rất cơ bản.

Ví dụ ngôn ngữ lập trình cấp thấp:

[1] Ngôn ngữ máy (machine language): là ngôn ngữ chỉ dùng số 0 và 1. 

Ví dụ: 01001000 01100101 01101100 01101100 01101111

[2] Hợp ngữ (assembly): cao hơn một chút so với ngôn ngữ máy, dùng từ và ký hiệu ngắn, nhưng vẫn gần với máy tính. 

Ví dụ, lệnh 5 + 3, viết trong Hợp ngữ sẽ là:

MOV AX, 5 

ADD AX, 3

Ngôn ngữ lập trình cấp thấp giúp máy tính xử lý nhanh, nhưng bạn rất khó để đọc, học, hiểu và viết.

Vì vậy, chúng ta sẽ học ngôn ngữ lập trình cấp cao.

Ngôn ngữ lập trình cấp cao

Ngôn ngữ lập trình bậc cao là ngôn ngữ lập trình gần với ngôn ngữ tự nhiên của con người, giúp người lập trình dễ dàng viết và hiểu mã nguồn. 

Ngôn ngữ bậc cao sử dụng sử dụng các từ ngữ và cú pháp quen thuộc, giúp người lập trình tập trung vào việc giải quyết các bài toán, chứ không phải lo lắng về các chi tiết kỹ thuật của phần cứng.

Ví dụ, một số ngôn ngữ lập trình bậc cao: Python, C#, Java, JavaScript, C++

1.2 Chương trình máy tính là gì?

Chương trình máy tính là một tập hợp các lệnh được viết bằng ngôn ngữ lập trình, hướng dẫn máy tính thực hiện một công việc cụ thể.

Một số lệnh phổ biến trong chương trình gồm:

- Nhập số liệu: là việc lấy số liệu từ bàn phím, tập tin, hoặc một thiết bị khác

- Xuất kết quả: là việc hiển thị kết quả lên màn hình hoặc gửi kết quả ra tập tin hoặc một thiết bị khác

- Tính toán: là thực hiện các phép toán cơ bản như cộng, trừ, nhân, chia

- Thực hiện có điều kiện: là kiểm tra một điều kiện cụ thể và thực hiện danh sách câu lệnh tương ứng với điều kiện đó

- Tính lặp: là thực hiện lặp lại công việc nhiều lần, với một vài thay đổi giữa các lần lặp

Chương trình máy tính được lưu trong một hoặc nhiều tập tin, được gọi là tập tin mã nguồn.

Một chương trình máy tính có thể thực hiện công việc đơn giản như hiển thị một dòng chữ trên màn hình, hoặc phức tạp, chẳng hạn như xử lý nghiệp vụ của một ngân hàng hoặc điều khiển một hệ thống tự động.

Ví dụ một số chương trình: 

- Trình duyệt web: cho phép bạn truy cập và xem các trang web trên Internet. Ví dụ: Google Chrome, Mozilla Firefox

- Phần mềm xử lý văn bản: cho phép bạn tạo, chỉnh sửa và lưu trữ các tài liệu văn bản. Ví dụ: Microsoft Word, Google Docs

- Trò chơi điện tử: cho phép bạn tương tác với một thế giới ảo và tham gia vào các hoạt động giải trí. Ví dụ: Khan Academy Kids, Math Land, Minecraft

- Hệ điều hành: là một chương trình máy tính quản lý tài nguyên của máy tính và cung cấp môi trường để các chương trình khác hoạt động. Ví dụ: Windows, macOS, Linux

- Ứng dụng trên điện thoại di động: là chương trình được thiết kế để chạy trên thiết bị di động. Ví dụ: Zalo, Facebook

1.3 Các bước tạo ra một chương trình

Để có một chương trình, cần trải qua 7 bước sau:

[Bước 1] Phân tích bài toán và thiết kế thuật toán

- Trước khi viết bất kỳ dòng mã nào, bạn cần hiểu rõ bài toán cần giải quyết

- Thuật toán là một chuỗi các bước logic để giải quyết bài toán đó

- Bước này rất quan trọng, vì nó quyết định tính hiệu quả và độ chính xác của chương trình

[Bước 2] Lập trình (Coding)

- Đây là bước bạn viết mã nguồn của chương trình bằng một ngôn ngữ lập trình cụ thể (ví dụ: Python, Java, C++)

- Mã nguồn là tập hợp các lệnh mà máy tính có thể hiểu và thực thi

- Người lập trình cần tuân thủ cú pháp và quy tắc của ngôn ngữ lập trình.

[Bước 3] Biên dịch (Compilation) hoặc Thông dịch (Interpretation)

Biên dịch:

- Đối với các ngôn ngữ biên dịch (như C++), mã nguồn được chuyển đổi thành mã máy (machine code) bởi một trình biên dịch (compiler)

- Mã máy là ngôn ngữ mà máy tính có thể hiểu trực tiếp

- Quá trình biên dịch tạo ra một tập tin thực thi (executable file) có thể chạy độc lập

Thông dịch:

- Đối với các ngôn ngữ thông dịch (như Python), mã nguồn được thực thi từng dòng một bởi một trình thông dịch (interpreter)

- Không cần tạo ra tập tin thực thi riêng biệt

[Bước 4] Liên kết (Linking)

- Bước này thường áp dụng cho các ngôn ngữ biên dịch

- Trình liên kết (linker) kết hợp các tập tin mã máy khác nhau (ví dụ: các thư viện) thành một tập tin thực thi hoàn chỉnh

[Bước 5] Thực thi (Execution)

- Đây là bước chạy chương trình

- Máy tính thực thi các lệnh trong mã máy (đối với ngôn ngữ biên dịch) hoặc mã nguồn (đối với ngôn ngữ thông dịch)

[Bước 6] Kiểm thử (Testing) và Gỡ lỗi (Debugging)

- Sau khi chạy chương trình, bạn cần kiểm tra xem chương trình có hoạt động đúng như mong đợi hay không

- Nếu có lỗi, bạn cần gỡ lỗi để tìm và sửa lỗi

- Bước này có thể được lặp lại nhiều lần

[Bước 7] Xuất kết quả

- Chương trình hiển thị kết quả cho người dùng

- Kết quả có thể là văn bản, hình ảnh, âm thanh, hoặc các dạng dữ liệu khác

1.4 Bài tập

Câu 1. Ngôn ngữ lập trình bậc cao là gì? Phát biểu nào sau đây không chính xác?

A. Ngôn ngữ lập trình bậc cao gần gũi với ngôn ngữ tự nhiên của con người.

B. Ngôn ngữ lập trình bậc cao giúp người lập trình tập trung vào giải quyết bài toán hơn là chi tiết phần cứng.

C. Ngôn ngữ lập trình bậc cao sử dụng các lệnh số 0 và 1 để giao tiếp trực tiếp với máy tính.

D. Python, Java, và JavaScript là các ví dụ về ngôn ngữ lập trình bậc cao.

Câu 2. Chương trình máy tính là gì? Phát biểu nào sau đây không chính xác?

A. Chương trình máy tính là một tập hợp các lệnh được viết bằng ngôn ngữ lập trình.

B. Chương trình máy tính hướng dẫn máy tính thực hiện một công việc cụ thể.

C. Chương trình máy tính chỉ có thể thực hiện các công việc đơn giản như hiển thị một dòng chữ.

D. Chương trình máy tính có thể được lưu trữ trong một hoặc nhiều tập tin mã nguồn.

Câu 3. Các bước để có một chương trình là gì? Phát biểu nào sau đây không đúng?

A. Bước đầu tiên là phân tích bài toán và thiết kế thuật toán, giúp xác định tính hiệu quả của chương trình.

B. Đối với ngôn ngữ thông dịch, cần phải thực hiện bước liên kết (linking) để tạo ra tập tin thực thi.

C. Lập trình là bước viết mã nguồn bằng ngôn ngữ lập trình, đòi hỏi tuân thủ cú pháp.

D. Kiểm thử và gỡ lỗi là bước quan trọng để đảm bảo chương trình hoạt động đúng như mong đợi.

Câu 4. Liệt kê 10 ngôn ngữ lập trình bậc cao phổ biến.

-----

Cập nhật: 8/3/2025

-----

Bài sau: