Danke!!
Ich habe das mir mal vorher schon ausgedruckt (den Lisp-Code) und die Formel angeschaut und dann mal via Google gesucht nach Rechnen in der Befehlszeile und dann kam eben auch auf Lisp-Art-Rechnen in der Befehlszeile. Also zuerst Klammer, dann Operator, dann die Werte. So konnte ich die Lisp kopieren und die Formeln ändern.
Ich habe jetzt diese drei Lisp geladen:
Um die % zu rechnen:
---------------------------------------
(defun neigung (wert flag / )
(if flag ;;;wenn prozent
(strcat (rtos wert 2 2)"%")
(strcat "1:" (neigung->1zuX wert))))
(defun neigung->1zuX (wert / )
(if (=(atof(rtos wert 2 10))0.0)
"oo"
(rtos (*(/ 1.0 wert)100) 2 2)))
(defun c:neigung_prz ( / h l)
(if (and (setq h(getreal "\nHöhe eingeben:"))
(setq l(getreal "\nLänge eingeben:")))
(neigung (abs (*(/ h l)100.0))'T)))
(defun c:neigung_1zuX ( / h l)
(if (and (setq h(getreal "\nHöhe eingeben:"))
(setq l(getreal "\nLänge eingeben:")))
(neigung (abs (*(/ h l)100.0))nil)))
---------------------------------------
Um die Länge zu rechnen:
----------------------------------------
(defun neigung (wert flag / )
(if flag ;;;wenn prozent
(strcat (rtos wert 2 2)" m/cm/dm/km")
(strcat "1:" (neigung->1zuX wert))))
(defun neigung->1zuX (wert / )
(if (=(atof(rtos wert 2 10))0.0)
"oo"
(rtos (*(/ 1.0 wert)100) 2 2)))
(defun c:neigung_prz2 ( / h l)
(if (and (setq h(getreal "\nHöhe eingeben:"))
(setq l(getreal "\nGefälle % eingeben:")))
(neigung (abs (/(* h 100)l))'T)))
(defun c:neigung_1zuX ( / h l)
(if (and (setq h(getreal "\nHöhe eingeben:"))
(setq l(getreal "\nLänge eingeben:")))
(neigung (abs (*(/ h l)100.0))nil)))
------------------------------------
Und um die Höhe zu rechnen:
---------------------------------------
(defun neigung (wert flag / )
(if flag ;;;wenn prozent
(strcat (rtos wert 2 2)" m/cm/dm/km")
(strcat "1:" (neigung->1zuX wert))))
(defun neigung->1zuX (wert / )
(if (=(atof(rtos wert 2 10))0.0)
"oo"
(rtos (*(/ 1.0 wert)100) 2 2)))
(defun c:neigung_prz3 ( / h l)
(if (and (setq h(getreal "\nLänge eingeben:"))
(setq l(getreal "\nGefälle % eingeben:")))
(neigung (abs (/(* h l)100))'T)))
(defun c:neigung_1zuX ( / h l)
(if (and (setq h(getreal "\nHöhe eingeben:"))
(setq l(getreal "\nLänge eingeben:")))
(neigung (abs (*(/ h l)100.0))nil)))
-------------------------------
Die Neigung_1zuX habe ich dabei je ignoriert und ein Makro erstellt, so das direkt neigung_prz, neigung_prz2 und neigung_prz3 gewählt werden.
Das Resultat wird bei den beiden umgestellten Lisp mit m/cm/dm/km angegeben. Beim ersten Lisp steht dort %. Jedoch wird auch beim ersten Lisp beim Resultat jetzt komischerweise m/cm/dm/km angegeben. Warum?
Der Befehlsname der drei Lisp ist ja unterschiedlich.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP