Синтаксическая ошибка при табулировании функции - Lisp
Формулировка задачи:
Добрый вечер
У меня табулирование функции
где здесь ошибка ?
и почему while не распознает ?
Листинг программы
- (print "kol shagov N=")
- (setq n (read))
- (setq h (/ 0.5 n ))
- (loop for x from 0.1 to 0.6
- ( ((setq y (- x 8 ))
- (print "x=")
- (print x)
- (print " y=")
- (print y)
- (printline ""))
- ( setq x (+ x h))
- )
- )
Листинг программы
- (print "kol shagov N=")
- (setq n (read))
- (setq h (/ 0.5 n ))
- (setq x 0.1)
- ( while (< x 0.6)
- ((setq y (- x 8 ))
- (print "x=")
- (print x)
- (print " y=")
- (print y)
- (printline ""))
- ( setq x (+ x h))
- )
Решение задачи: «Синтаксическая ошибка при табулировании функции»
textual
Листинг программы
- (defun tab-fun (f a b n)
- (let ((x (+ a 0.0)) (h (divide (- b a) n)))
- (dotimes (i n 'ok)
- (prints " x=") (print x)
- (prints " y=") (printline (funcall f x))
- (setq x (+ x h)))))
- ==> TAB-FUN
- (tab-fun (lambda (x) (* x x)) 0 10 20)
- x=0.0 y=0
- x=0.5 y=0.25
- x=1.0 y=1.0
- x=1.5 y=2.25
- x=2.0 y=4.0
- x=2.5 y=6.25
- x=3.0 y=9.0
- x=3.5 y=12.25
- x=4.0 y=16.0
- x=4.5 y=20.25
- x=5.0 y=25.0
- x=5.5 y=30.25
- x=6.0 y=36.0
- x=6.5 y=42.25
- x=7.0 y=49.0
- x=7.5 y=56.25
- x=8.0 y=64.0
- x=8.5 y=72.25
- x=9.0 y=81.0
- x=9.5 y=90.25
- ==> OK
- (tab-fun 'sin 0 5 15)
- x=0.0 y=0.0
- x=0.333333333333333 y=0.327194696796152
- x=0.666666666666666 y=0.618369803069736
- x=0.999999999999999 y=0.841470984807896
- x=1.33333333333333 y=0.971937901363312
- x=1.66666666666666 y=0.995407957751766
- x=1.99999999999999 y=0.909297426825686
- x=2.33333333333332 y=0.723085881738334
- x=2.66666666666665 y=0.457272626635827
- x=2.99999999999998 y=0.141120008059887
- x=3.33333333333331 y=-0.190567962875462
- x=3.66666666666664 y=-0.501277048588322
- x=3.99999999999997 y=-0.756802495307909
- x=4.3333333333333 y=-0.92901450127075
- x=4.66666666666663 y=-0.998954917097927
- ==> OK
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д