Tải bản đầy đủ (.pdf) (11 trang)

Bài giảng lập trình c chương 5 nguyễn minh thành

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (191.49 KB, 11 trang )

Thiết kế giải thuật
Nguyễn Minh Thành



Vấn đề
Nền tảng của lập trình là thiết kế giải thuật. Trong việc thiết kế cấu
trúc logic của chương trình, điều quan trọng là dùng giải thuật nào
cho thích hợp nhất. Vì thế chọn giải thuật để sử dụng là một trong
những tiêu chuẩn quan trọng nhất sao cho thích hợp nhất với
chương trình. Việc sử dụng giải thuật hiệu quả và dễ hiểu giúp gia
tăng tốc độ thực hiện và giảm những lỗi tiềm ẩn. Do vậy giải thuật
là một nhân tố chính yếu quyết định hiệu suất của hệ thống.

2


Các loại giải thuật









3

Tìm kiếm
Sắp xếp.


Đệ quy.
Xữ lý chuỗi ký tự.
Xữ lý file.
Đồ họa.
Đồ thị.
V. v…


Các phương pháp xây dựng giải thuật
Giải thuật là một tập các quy tắc được định nghĩa rõ ràng được áp
dụng để giải quyết một vấn đề.
• Giải thuật và cấu trúc dữ liệu có mối quan hệ chặt chẽ với nhau.
Cấu trúc dữ liệu xác định khung nền cho giải thuật với một độ tin
cậy chắc chắn.
• Khi giải quyết một bài toán trên máy tính ta phải chú trọng đến hai
vấn đề Cấu trúc dữ liệu và giải thuật. Giải thuật phản ánh các
phép xữ lý, còn đối tượng xữ lý của giải thuật lại là dữ liệu, với
cấu trúc dữ liệu được chọn, sẽ có những giải thuật tương ứng,
khi cấu trúc dữ liệu thay đổi thường giải thuật cũng thay đổi
theo.


4


Ví dụ


5


Ví dụ: Trong việc xữ lý cấu trúc mảng, dữ liệu có thể được tìm
kiếm và cập nhật dễ dàng, nhưng phải mất thời gian để chèn hay
xoá dữ liệu. Bởi vì dữ liệu trong mảng được tổ chức liên tiếp nhau,
thao tác chèn hay xoá dữ liệu thì tương đối phức tạp bởi việc dịch
chuyển các dữ liệu liên quan về sau hoặc về phía trước.


Ví dụ


6

Bằng cách dùng cấu trúc kiểu danh sách, việc chèn và xoá dữ liệu
thì dễ dàng hơn, dữ liệu không cần phải dịch chuyển mà chỉ cần
thay đổi con trỏ.


Biểu Diễn Giải Thuật
Có 2 phương pháp chính biểu diễn giải thuật:
• Pseudocode (mã giả)
• Flowchart (lưu đồ)
Khi thiết kế giải thuật phải mô tả rõ:
• Đầu vào
• Đầu ra (kết quả)
• Mô tả giải thuật

7


Các từ khóa Pseudocode

IF ... THEN …ENDIF
 IF ... THEN ... ELSE ... ENDIF
 DO WHILE … ENDDO
 DO … UNTIL …


8


Ví dụ
Read schedule file for tables to be loaded
IF any tables to be loaded THEN
Call XYZ to load tables
ENDIF
IF (value > low-value) AND (value < high-value) THEN
Update table
ELSE
Display error message 123 on screen
ENDIF
DO
Get field value
Determine screen-field-number
CASE screen-field-number OF
1: Perform edits for field-1
2: Perform edits for field-2
3: Perform edits for field-3
OTHERWISE
Display error message 112
ENDCASE
9 UNTIL no error in field values



Các ký hiệu Flowchart
Bắt đầu/ kết thúc
Xuất/ in
Rẽ nhánh
Điều
kiện

Luồng xử lý
Khối xử lý
Nhập

10

Giá trị trả về
Điểm nối




11

Ví dụ: Giải và biện luận: ax+b=0



×