Please enable JavaScript.
Coggle requires JavaScript to display documents.
CHƯƠNG 1: TỔNG QUAN VỀ KỸ THUẬT LẬP TRÌNH - Coggle Diagram
CHƯƠNG 1: TỔNG QUAN VỀ KỸ THUẬT LẬP TRÌNH
Giải thuật
Khái niệm
Dãy hữu hạn các thao tác, phép toán
Thực hiện theo trình tự xác định
Tác động lên dữ liệu
Đạt kết quả mong muốn
Các tính chất
Đầu vào
Đầu ra
Tính hữu hạn
Kết thúc sau số hữu hạn bước
Tính xác định
Mỗi bước rõ ràng, chính xác
Cùng dữ liệu đầu vào cho một kết quả duy nhất
Tính hiệu quả
Đơn giản
Dễ cài đặt
Ít tốn bộ nhớ
Thực hiện nhanh
Cách diễn đạt giải thuật
Ngôn ngữ tự nhiên
Liệt kê từng bước thực hiện
Lưu đồ
Bắt đầu/Kết thúc
Input
Output
Điều kiện
Thao tác
Giả mã
Kết hợp cấu trúc điều khiển
Ngôn ngữ tự nhiên
Ký hiệu toán học
Thiết kế giải thuật
Mô-đun hóa bài toán
Chia bài toán lớn thành các bài toán nhỏ
Tinh chỉnh từng bước
Ngôn ngữ tự nhiên
Giả ngôn ngữ
Ngôn ngữ lập trình
Ví dụ
Sắp xếp lựa chọn
Chọn phần tử nhỏ nhất
Đưa vào vị trí thích hợp
Lặp lại đến hết dãy
Độ phức tạp của giải thuật
Tiêu chí chính
Thời gian thực hiện
Dung lượng bộ nhớ
Độ phức tạp tính toán
Phụ thuộc kích thước dữ liệu đầu vào
T(n)
Ký hiệu Big O
O(1)
O(log n)
O(n)
O(n log n)
O(n²), O(n³), ..., O(nᵏ)
O(2ⁿ), O(n!), O(nⁿ)
Quy tắc
Quy tắc cộng
Quy tắc nhân
Quy tắc bỏ hằng số
Chương trình máy tính
Phương pháp giải quyết vấn đề bằng máy tính
Máy tính xử lý thông tin theo chương trình lập sẵn
Bài toán
Xác định dữ liệu đầu vào
Xác định kết quả đầu ra
Giải thuật
Tìm cách xử lý dữ liệu đầu vào
Chương trình
Viết bằng ngôn ngữ lập trình
Ngôn ngữ máy
Biên dịch chương trình sang ngôn ngữ máy
Máy thực hiện
Khái niệm chương trình máy tính
Tập hợp các câu lệnh hoặc chỉ thị
Được viết theo một trật tự xác định
Sử dụng một hoặc nhiều ngôn ngữ lập trình
Kết hợp với dữ liệu, tài liệu liên quan
Tự động thực hiện nhiệm vụ hoặc giải quyết vấn đề
Ngôn ngữ lập trình
Khái niệm
Ngôn ngữ dùng để viết chương trình máy tính
Bao gồm
Ký hiệu
Từ khóa
Từ dành riêng
Cú pháp
Các loại ngôn ngữ
Ngôn ngữ máy
Máy tính thực hiện trực tiếp
Dạng nhị phân hoặc hệ 16
Thực hiện nhanh
Khó viết và khó sửa lỗi
Hợp ngữ
Ngôn ngữ bậc thấp
Dùng mã chữ dễ nhớ hơn
Dịch bằng trình hợp dịch
Gần với phần cứng
Ngôn ngữ lập trình bậc cao
Gần ngôn ngữ tự nhiên và toán học
Dễ học, đọc, viết và hiệu chỉnh
Ít phụ thuộc phần cứng
Ví dụ
Fortran
Pascal
C
C++
Java
PHP
Phân loại
Theo mức trừu tượng
Bậc thấp
Bậc cao
Theo hình thức lập trình
Ngôn ngữ khai báo
Ngôn ngữ mệnh lệnh
Theo họ ngôn ngữ
Hướng đối tượng
Hướng hàm
Logic
Truy vấn
Chương trình dịch
Trình thông dịch
Dịch từng câu lệnh
Thực hiện ngay
Không tạo tệp mã đối tượng
Mỗi lần chạy phải thông dịch lại
Trình biên dịch
Dịch toàn bộ chương trình
Tạo tệp mã đối tượng
Phát hiện lỗi cú pháp
Tạo chương trình thực thi
Môi trường lập trình và các bước xây dựng chương trình
Môi trường lập trình
IDE
Trình soạn thảo
Trình biên dịch
Bộ liên kết
Trình gỡ rối
Chạy thử chương trình
Có thể dùng trình soạn thảo độc lập
Các bước xây dựng chương trình
Bước 1: Soạn thảo chương trình
Viết chương trình bằng ngôn ngữ lập trình
Lưu tệp mã nguồn
Ví dụ: .pas, .c, .cpp
Bước 2: Biên dịch chương trình
Chuyển mã nguồn sang mã máy
Nếu lỗi cú pháp
Quay lại chỉnh sửa
Bộ liên kết
Tạo tệp thực thi
Bước 3: Chạy thử chương trình
Nhập dữ liệu kiểm tra
Kiểm tra kết quả
Nếu có lỗi
Kiểm tra và chỉnh sửa giải thuật/chương trình
Quay lại bước 1
Các phương pháp lập trình
Lập trình tuyến tính
Còn gọi là lập trình phi cấu trúc
Dữ liệu toàn cục
Câu lệnh nằm trong chương trình chính
Không có cấu trúc rõ ràng
Khó tái sử dụng
Khó kiểm soát dữ liệu
Lập trình hướng cấu trúc
Chia thành chương trình con
Hàm
Thủ tục
Phân biệt dữ liệu toàn cục và cục bộ
Cấu trúc rõ ràng
Dễ xây dựng và sửa lỗi
Có thể tái sử dụng chương trình con
Kiểm soát dữ liệu tốt
Lập trình hướng đối tượng
Xây dựng trên nền tảng lập trình cấu trúc
Trừu tượng hóa dữ liệu
Tập trung vào đối tượng
Lớp
Kết hợp dữ liệu và thao tác trên dữ liệu
Ưu điểm
Tính kế thừa
Tái sử dụng code
Dễ bảo trì
Dễ mở rộng