Hỏi cách giải đề thi cấu trúc dữ liệu và thuật giải 1(bổ sung) ?

 

g. Rút gọn phân số.

h. Thêm một số thực N vào danh sách. Biết 0 < N < 10000. Gợi ý: Phải chuyển số N về phân số. Ví dụ: N = 2.75 thì thêm vào danh sách phân số 9/4 vì 2.75 = 275/100 = 9/4.

i. Viết hàm so sánh nghịch đảo của hai phân số.

k Sắp xếp danh sách theo chiều giảm dần của nghịch đảo giá trị các phân số.

vu quang thinh
vu quang thinh
Trả lời 13 năm trước

g) làm như sau : coi phân số như một record

ps = record

tuso: integer;

mauso: integer;

end;

việc làm để rút gọn như sau: tìm ước chung lớn nhất của chúng (tử và mẫu ấy) rồi lấy tử và mẫu chia cho ƯCLN ta sẽ được ps tối giản. thuật toán tìm UCLN như sau: dùng câu lệnh lặp while hoặc repeat thực hiệ tuần tự lấy tử chia cho mẫu (nếu tử > mẫu và ngược lại nếu mẫu >tử) lẫy dư chủa chúng thể vào số lớn hơn (tử và mẫu) cho tới khi tử =mẫu là dừng vòng lặp. (hỏi bác google ấy bác ấy biết tuốt)

h, nếu dùng nhập là faan só thì có thể sử dụng mạng array of ps (kiểu ps ở trên)

dùng thử tục ở câu g để rút gọn phân số dạng a,bcd thành abcd/ 1000 (số kí tự có thể tạo đc thông qua chuyển dổi thành kiểu xâu rồi sử lí, số số 0 (của 1000 ấy)= số sau dấu phẩy và = length - vị trí của dấu phẩy)

OK

làm như sau: lấy mẫu/ tử được mọt số (số thứ 2 cũng làm như thế)

rồi lấy 2 kết quả trừ cho nhau ra KQ <0 thì kết luận nghịch đảo số trc < nghịc đảo số sau

i, chăc không cẩn trả lời nhỉ??? vì động tới đề này ròi mà không làm được câu này thì buồn quá :)))