Please enable JavaScript.
Coggle requires JavaScript to display documents.
Kĩ Thật Lập Trình - Coggle Diagram
Kĩ Thật Lập Trình
TỔNG QUAN VỀ KỸ THUẬT LẬP TRÌNH
1.1 Chương trình máy tính
Phương pháp giải quyết vấn đề bằng máy tính
Xác định bài toán - dữ liệu vào & đầu ra
Tìm cách xử lý dữ liệu đầu vào
Viết chương trình bằng ngôn ngữ lập trình
Biên dịch sang ngôn ngữ máy
Trình tự: Bài toán - Giải thuật - Chương trình - Ngôn ngữ máy - Máy thực hiện
Định nghĩa chương trình máy tính
Tập hợp câu lệnh/chỉ thị theo trình tự xác định, kết hợp dữ liệu, nhằm thực hiện nhiệm vụ cụ thể
1.2 Giải thuật
Khái niệm
Dãy hữu hạn thao tác xác định, rõ ràng, thực hiện được
Phải xác định rõ: tác động trên dữ liệu nào
Ví dụ: Giải thuật Euclid tìm UCLN(a,b)
Tính chất của giải thuật
Có đầu vào
Có đầu ra
Tính hữu hạn: dừng sau hữu hạn bước
Tính xác định: mỗi bước rõ ràng, cùng vào -cùng ra
Tính hiệu quả: đơn giản, tiết kiệm thời gian & bộ nhớ
Cách diễn đạt giải thuật
Ngôn ngữ tự nhiên: liệt kê từng bước
Lưu đồ: dùng hình khối & mũi tên
Giả mã: kết hợp ngôn ngữ lập trình + ngôn ngữ tự nhiên
Thiết kế giải thuật
Mô đun hóa: chia bài toán lớn - bài toán nhỏ
Tinh chỉnh dần: 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 min - xếp vào vị trí thứ i
Độ phức tạp giải thuật
Tiêu chí đánh giá: Thời gian thực hiện & Dung lượng bộ nhớ
Độ phức tạp tính toán T(n): chỉ phụ thuộc kích thước dữ liệu n
Các cấp độ (tăng dần)
O(1) — Hằng số
O(log₂n) — Logarit
O(n) — Tuyến tính
O(n·log₂n) — n log n
O(n²), O(n³), ..., O(nᵏ) — Đa thức chấp nhận được
O(2ⁿ), O(n!) - Mũ phức tạp cao
Quy tắc tính toán
Quy tắc cộng: lấy cấp lớn nhất
Quy tắc nhân: nhân cấp lại
Quy tắc bỏ hằng số: O(c·f(n)) = O(f(n))
1.3 Ngôn ngữ lập trình
Khái niệm
Hệ thống ký hiệu, từ khóa, quy tắc cú pháp để viết chương trình
Phân loại & Lịch sử
Ngôn ngữ máy
Dạng nhị phân/thập lục phân
Máy hiểu trực tiếp
Khó viết, khó đọc, khó sửa
Hợp ngữ (năm 1950)
Mã chữ viết tắt, dễ nhớ hơn
Gần phần cứng, phụ thuộc kiến trúc máy
Dùng: driver, hệ nhúng, thời gian thực
Ngôn ngữ bậc cao
Gần ngôn ngữ tự nhiên & toán học
Ít phụ thuộc phần cứng - độc lập cao
Ví dụ: Fortran, Pascal, C, C++, Java, PHP...
Trình biên dịch & Trình thông dịch
Trình thông dịch
Dịch từng lệnh → thực hiện ngay
Không tạo tệp mã máy
Mỗi chạy đều dịch lại
Ví dụ: BASIC, Python, Perl
Trình biên dịch
Dịch toàn bộ → tạo tệp thực thi
Kiểm tra toàn bộ lỗi trước khi tạo mã
Chạy nhiều lần không cần dịch lại
Ví dụ: Pascal, C, C++
1.4 Môi trường lập trình & Các bước xây dựng chương trình
Môi trường phát triển tích hợp (IDE)
Tích hợp: Soạn thảo - Biên dịch - Liên kết -Gỡ lỗi -Chạy thử
3 bước xây dựng chương trình
Bước 1: Soạn thảo chương trình nguồn (.pas, .c, .cpp...)
Bước 2: Biên dịch → tệp đối tượng → Liên kết → tệp thực thi
Bước 3: Chạy thử, kiểm tra kết quả - Sửa lỗi nếu sai
1.5 Các phương pháp lập trình
Lập trình tuyến tính (phi cấu trúc)
Tất cả trong chương trình chính
Dữ liệu toàn cục
Không có cấu trúc rõ ràng
Khó tái sử dụng, khó bảo trì
Không khuyến nghị
Lập trình hướng cấu trúc
Chia thành hàm, thủ tục, module
Phân biệt dữ liệu cục bộ & toàn cục
Cấu trúc rõ ràng
Dễ viết, dễ kiểm tra, dễ sửa
Tái sử dụng được
Lập trình hướng đối tượng
Kết hợp Dữ liệu + Xử lý - thành Lớp & Đối tượng
Tập trung vào đối tượng hơn là chức năng
Có tính kế thừa, tái sử dụng cao
Dễ bảo trì, mở rộng
Phù hợp dự án lớn