Chương VIII Kỹ thuật và công cụ phát triển phần mềm máy tính
1. Thuật giải và lưu đồ
Thuật giải là một thuật ngữ mô tả tập hợp các thủ tục cần thiết, hay còn gọi là phương pháp để giải quyết bài toán. Lưu đồ là biểu diễn đồ thị của các định nghĩa, phương pháp phân tích, và tuần tự giải bài toán. Các ký hiệu được sử dụng thường là các phép toán, phương thức xử lý, yêu cầu nhập xuất, quyết định, các ngắt, v.v… Thiết kế thuật giải hay lưu đồ là bước đầu tiên trong quá trình xây dựng một chương trình.
Ví dụ: Viết chương trình chuyển một khối dữ liệu trong bộ nhớ sang một vị trí mới.
Thuật giải tổng quát sẽ gồm 3 bước sau:
Bước 1. Đọc một byte dữ liệu từ khối dữ liệu nguồn Bước 2. Ghi byte dữ liệu vừa
đọc vào vị trí tương ứng ở khối dữ liệu đích
Bước 3. Kiểm tra xem đã
chuyển hết khối chưa? Nếu đã hết, dừng chương trình; nếu chưa hết, quay lại bước 1.
Lưu đồ chương trình được thể hiện trên Hình VIII.1. Thực tế, thuật giải vừa nêu là quá sơ sài, chưa thể hiện được những yêu cầu cụ thể khi viết chương trình cho máy tính.
Yes No
START
Đọc 1 byte từ khối dữ liệu nguồn
Ghi byte dữ liệu vừa đọc vào khối DL đích
Tất cả các byte dữ liệu đã được chuyển hết?
Chúng ta có thể tham khảo thêm thuật giải đầy đủ bao gồm 9 bước sau đây:
Bước 1. Đặt giá trị khởi đầu cho con trỏ vào địa chỉ đầu của khối dữ
liệu nguồn (Pointer1)
Bước 2. Đặt giá trị khởi đầu cho con trỏ vào địa chỉ đầu của khối dữ
liệu đích (Pointer2)
Bước 3. Đặt giá trị thanh đếm số byte cần di chuyển
Bước 4 Đọc một byte từ khối dữ liệu nguồn tại vị trí con trỏ (Poniter1)
Bước 5. Ghi byte vừa đọc được vào khối dữ liệu đích vào vị trí con
trỏ (Pointer2)
Bước 6. Tăng giá trị con trỏ Pointer1 lên 1, (chỉ vào byte kế tiếp)
Bước 7. Tăng giá trị con trỏ Pointer2 lên 1, (chỉ vào vị trí kế tiếp)
Bước 8. Giảm giá trị thanh đếm số lượng byte cần di chuyển đi 1
Bước 9. Kiểm tra nội dung thanh đếm, nếu bằng 0, dừng lại, nếu khác
0, quay lại thực hiện tiếp từ bước 1.
Trong thực tế, tồn tại cách thể hiện lưu đồ chương trình dưới 3 dạng sau:
- Lưu đồ tổng quát (general flowchart): được sử dụng để mô tả thuật
giải một cách tổng quan, sơ luợc
- Lưu đồ mức thuật giải (Algorithmic-level flowchart): mô tả từng
bước cụ thể trong thuật giải, dưới dạng lời giải thích tác vụ cụ thể cần thực hiện trong mỗi bước
- Lưu đồ mức lệnh (Instruction-level flowchart): mô tả từng bước cụ
thể trong thuật giải, mỗi khối trong lưu đồ được sử dụng các lệnh cụ thể thay cho lời giải thích tác vụ.