Пропадают локальные переменные функции после первого запуска функции - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д