ひさびさEmacsLISP
早朝から晴れ。
久々にEmacsLISPをいじってみた。
BMIを求めるやつで、肥満/標準/痩せの表示をAI的に出すのと
その身長での適正体重も出るようにしてみた。
EmacsLISPでBMI2
ソースは以下。テキトウに作ってしまった感あり
(defun bmipekm1 ()
(interactive)
(let (sint tai bmi1 tai sint bmi ss tai ta sss s1 ttt ttt1 ttt2)
(setq sint (read-string "身長は何センチ?" ""))
(setq tai (read-string "体重は何kg?" ""))
(setq ss (string-to-number sint))
(setq ta (string-to-number tai))
(setq sss (/ (float ss) 100))
(setq bmi (/ (float ta) (expt sss 2)))
(setq ttt (* (expt sss 2) 22))
(setq s1 (roundx bmi 1))
(setq ttt1 (roundx ttt 1))
(setq ttt2 (number-to-string ttt1))
(setq bmi1 (number-to-string s1))
(insert (concat "身長:" sint "cm" "体重:" tai "kgではBMIは " bmi1 " です。"))
(cond ( (<= s1 18.5)
(insert " (→痩せています。適正" ttt2 "kg)"))
( (>= s1 25.0)
(insert " (→肥満です。適正" ttt2 "kg)"))
(t
(insert " (→標準です。適正" ttt2 "kg)")))))
肥満/標準/痩せの表示をAI的に出すのと
その身長での適正体重も出るようになったので前より見やすくなった!
(setq s1 (roundx bmi 1))などは自分的に作った小数1桁で四捨五入する関数
EmacsLISPではないが、以下のCADプログラムも作ってみた。。。
創作には、すこぶるイイ!。
CADとCGソフトのイイ点を取ったようなものだな。
Libera - Angel (performed live at Universal Studios Japan)