3.2.1Giải thuật thơng số đầu vào:
Về nguyên tắc, các kích thƣớc của tàu khi nhập vào chƣơng trình phải là số thực dƣơng, do đĩ cần kiểm tra để tránh các trƣờng hợp kích thƣớc nhập vào là
BẮT ĐẦU
CHỌN LOẠI TÀU THIẾT KẾ:
-Loai tau deep Veep(3 cap huong dong) -Tau Hai Than
- Tau day bang(1 cap huong dong) -Tau deep Veep(1 cap huong dong) -Tau deep Veep(3 cap huong dong) -Tau deep Veep(5 cap huong dong)
Nhập số liệu đầu vào: -Kích thƣớc tàu thiết kế Lmax,Bmax,Htk,T -Phạm vi thay đổi kích thƣớc: Kiểm tra các tỷ số kích thƣớc Tính các hệ số kích thƣớc: Tính bảng tọa tàu thiết kế:
Chọn bản vẽ cần xuất: -Bản vẽ 2D
-Bản vẽ 3D
số 0, số âm, kiểu chuỗi,..Dƣới đây là thuật tốn kiểm tra thơng số đầu vào và hạn chế lại khả năng nhập của ngƣời dùng:
Thuật tốn kiểm tra nhập kích thƣớc B
(defun KTB (val why key / L)
;val giá trị chuyển về,why kiểu trả về khi ngƣời dùng rời ơ nhập bằng chuột hay bằng enter
(setq L (atof val))
;đổi về kiểu số thực
(if (= 1 why)
;; (1 ở đây giá trị trả về của ngƣời dùng khi rời khỏi ơ nhập kích thƣớc ở đây kiểm tra khi ngƣời dùng rời khỏi ơ nhập bằng enter)
Thuật tốn kiểm tra số liệu đầu vào là số nguyên hay số thực
(progn
(if (not (or (= (type (read val)) 'REAL) (= (type (read val)) 'INT)))
(prong
(alert "B phai la mot so thuc")
(mode_tile key 2) ;; nếu khơng phải thì trả về vị trí ơ nhập cũ và và bơi đen tồn bộ
(mode_tile key 3));;hết hàm progn
Thuật tốn nếu là số 0 thì buộc nhập lại:
(progn (if (= 0 L) (progn
(alert "0 khong phai la so can nhap") (mode_tile key 2)
(mode_tile key 3) )
(mode_tile "Htk" 2)))) ;;hết hàm if
Thuật tốn nếu là số âm thì buộc nhập lại
(progn
(alert "Khong Duoc Nhap So Am") (mode_tile key 2)
(mode_tile key 3)
);;hết hàm progn );;hết hàm if
);;hết hàm progn
Thuật tốn đƣa về vị trí cũ và nhập lại khi ngƣời dùng nhập số âm
(progn
(if (not (or (= (type (read val)) 'REAL) (= (type (read val)) 'INT))) (progn
(alert "B phai la mot so thuc") );;hết hàm progn (progn
(if (= 0 L) (progn
(alert "0 khong phai la so can nhap") (mode_tile key 2) (mode_tile key 3) ) ) );;hết hàm progn );;hết hàm if (if (Minusp L) (progn
(alert "Khong Duoc Nhap So Am") (mode_tile key 2)
(mode_tile key 3) );;hết hàm prong );;hết hàm if
);;hết hàm if
);;hết hàm kiểm tra chiều rộng tàu do ngƣời dùng nhập vào.