Пропадают локальные переменные функции после первого запуска функции - Lisp
Формулировка задачи:
Я написал код для расчёта электрического кольца. Я постепенно упрощаю схему параллельными и последовательными операциями. Вот мой код:
Проблема состоит в следующем: я запускаю первый раз функцию sch1 и она отрабатывает, а после второго запуска функция выдаёт ошибку. Вот листинг:
Возможно я неправильно оглашаю локальные переменные?
( defun pos ( R1 R2 ) (+ R1 R2 ) ) ( defun par (R1 R2 ) ( / ( * R1 R2 ) ( + R1 R2 ) ) ) ( defun sch1 (R1 R2 R3 R4 R5 R6 R7) ( defvar R56 ( par R5 R6 ) ) ( defvar R24 ( pos R2 R4 ) ) ( defvar R2456 ( pos R24 R56 ) ) ( defvar R37 ( pos R3 R7 ) ) ( defvar R234567 ( par R2456 R37 ) ) ( defvar R1234567 ( pos R1 R234567 ) ) R1234567 )
( sch1 10 10 10 10 10 10 10 ) ==> 21.1111111111111 ( sch1 10 10 10 10 10 10 10 ) Assoc: Символ R24 не имеет значения (не связан). ==> ERRSTATE
Решение задачи: «Пропадают локальные переменные функции после первого запуска функции»
textual
Листинг программы
(defun par (r1 r2) (/ (* r1 r2) (+ r1 r2))) (defun sch1 (r1 r2 r3 r4 r5 r6 r7) (float (+ r1 (par (+ r2 r4 (par r5 r6)) (+ r3 r7))))) > (sch1 10 10 10 10 10 10 10) 21.11111
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д