编辑代码

; 定义函数用于计算弯曲极限承载力
(defun bending-capacity (fck fy b d As M)
  (* 0.87 (/ (* As fy (- d (/ As 2)))
            (+ (* fck b d) (* 0.36 As fy)))))

; 定义函数用于计算剪切极限承载力
(defun shear-capacity (fck b d Vc Vs)
  (* 0.87 (+ Vc Vs)))

; 从用户获取输入
(format t "请输入混凝土抗压强度(fck,单位MPa):")
(setq fck (read))
(format t "请输入钢筋抗拉强度(fy,单位MPa):")
(setq fy (read))
(format t "请输入梁宽(b,单位m):")
(setq b (read))
(format t "请输入梁高(d,单位m):")
(setq d (read))
(format t "请输入钢筋截面积(As,单位m^2):")
(setq As (read))
(format t "请输入弯矩荷载值(M,单位kN·m):")
(setq M (read))

; 计算混凝土和钢筋的剪切承载力
(setq Vc 0.6) ; 混凝土剪切承载力
(setq Vs 0.3) ; 钢筋剪切承载力

; 计算弯曲极限和剪切极限承载力
(setq bending-capacity (bending-capacity fck fy b d As M))
(setq shear-capacity (shear-capacity fck b d Vc Vs))

; 比较弯曲极限和剪切极限,选择较小的一方
(setq smaller-capacity (min bending-capacity shear-capacity))

; 输出结果
(format t "弯曲极限承载力: ~a kN·m~%" bending-capacity)
(format t "剪切极限承载力: ~a kN~%" shear-capacity)
(format t "较小的承载力: ~a~%" smaller-capacity)

; 比较较小的承载力和荷载值
(if (< smaller-capacity M)
    (format t "结构安全,承载力大于荷载值。~%")
    (format t "结构不安全,承载力小于荷载值。~%"))