Форум программистов, компьютерный форум, киберфорум
Наши страницы
AutoLISP
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
skobeldingo
0 / 0 / 0
Регистрация: 12.06.2012
Сообщений: 3
1

Программа в AutoLISP

16.01.2013, 17:09. Просмотров 1592. Ответов 11
Метки нет (Все метки)

Известна длинна окружности. Найти площадь круга, ограниченного этой окружностью.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2013, 17:09
Ответы с готовыми решениями:

Программа в AUTOLISP
Здравствуйте,не могли бы вы мне помочь вот с таким заданием для AutoLisp Пятнадцать трапеций,...

Программа-калькулятор AUTOLISP
Пожалуйста,помогите!Срочно нужна программа-калькулятор на AUTOLISP в среде AUTOCAD выполняющая...

Программа на AutoLisp: построение треугольников
В среде Автокада средствами Автолиспа построить множество пересекающихся правильных треугольников и...

Программа AutoLisp: построение неправильных невыпуклых пятиугольников
Решил пойти дальше по задачам и встал на вот этом: В среде Автокада средствами Автолиспа...

Запуск AutoLISP
Как запустить AutoLISP в AutoCad"e. Я выбираю Сервис=Приложения=... и в открывшемся окне на диске...

11
_sg
3939 / 3715 / 258
Регистрация: 12.05.2012
Сообщений: 2,603
16.01.2013, 18:25 2
Common Lisp:
Lisp
1
2
3
4
5
(defun circle-area (c)
  (* pi  (/ c pi 2) (/ c pi 2)))
 
> (circle-area 10)
7.957747154594766788L0
Lisp
1
2
3
4
5
(defun circle-area (c)
  (* (/ c 2) (/ c pi 2)))
 
> (circle-area 10)
7.957747154594766788L0
Lisp
1
2
3
4
5
(defun circle-area (c)
  (/ (* c c) 4 pi))
 
> (circle-area 10)
7.957747154594766788L0
Lisp
1
2
3
4
5
(defun circle-area (c)
  (/ (expt c 2) 4 pi))
 
> (circle-area 10)
7.957747154594766788L0
Lisp
1
2
3
4
5
(defun circle-area (c)
  (/ (* pi (expt (/ c pi) 2)) 4))
 
> (circle-area 10)
7.957747154594766788L0
1
Catstail
Модератор
24159 / 12148 / 2178
Регистрация: 12.02.2012
Сообщений: 19,729
16.01.2013, 19:25 3
Но быстрее всего, мне кажется, будет так:

Lisp
1
2
3
4
5
6
7
8
(defun circle-area (c)
  (* c c 0.25 (/ 1 pi)))
 
==> circle-area
 
(circle-area 10)
 
==> 7.957747154594780E+0
0
_sg
3939 / 3715 / 258
Регистрация: 12.05.2012
Сообщений: 2,603
16.01.2013, 19:34 4
Lisp
1
2
3
4
5
(defun circle-area (c)
  (/ (* c c 1/4) pi))
 
> (circle-area 10)
7.957747154594766788L0
0
Catstail
Модератор
24159 / 12148 / 2178
Регистрация: 12.02.2012
Сообщений: 19,729
16.01.2013, 19:36 5
Трудно сказать, будет ли выйгрыш... Ведь здесь будет преобразование Rational -> Float... Или я не прав?
0
_sg
3939 / 3715 / 258
Регистрация: 12.05.2012
Сообщений: 2,603
16.01.2013, 19:42 6
возможно, если рано делить на pi, то у меня результат немного другой:
Lisp
1
2
3
4
5
6
7
8
9
10
11
(defun circle-area (c)
  (* c c 0.25 (/ 1 pi)))
 
> (circle-area 10)
WARNING:
Floating point operation combines numbers of different precision.
See ANSI CL 12.1.4.4 and the CLISP impnotes for details.
The result's actual precision is controlled by
*FLOATING-POINT-CONTAGION-ANSI*.
To shut off this warning, set *WARN-ON-FLOATING-POINT-CONTAGION* to NIL.
7.957747154594766788[B]6[/B]L0
0
Catstail
Модератор
24159 / 12148 / 2178
Регистрация: 12.02.2012
Сообщений: 19,729
16.01.2013, 19:51 7
Тогда:
Lisp
1
2
(defun circle-area (c)
  (* c c 0.25 (/ 1.0 pi)))
но странно, что CL так ригористично относится с смешанной арифметике...

Добавлено через 4 минуты
Ваш вариант:

Lisp
1
2
(defun circle-area (c)
  (/ (* c c) 4 pi))
в HomeLisp оказывается быстрее моего
0
_sg
3939 / 3715 / 258
Регистрация: 12.05.2012
Сообщений: 2,603
16.01.2013, 19:52 8
на этот вариант дважды выбросил предупреждение
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
(defun circle-area (c)
  (* c c 0.25 (/ 1.0 pi)))
> (circle-area 10)
WARNING:
Floating point operation combines numbers of different precision.
See ANSI CL 12.1.4.4 and the CLISP impnotes for details.
The result's actual precision is controlled by
*FLOATING-POINT-CONTAGION-ANSI*.
To shut off this warning, set *WARN-ON-FLOATING-POINT-CONTAGION* to NIL.
WARNING:
Floating point operation combines numbers of different precision.
See ANSI CL 12.1.4.4 and the CLISP impnotes for details.
The result's actual precision is controlled by
*FLOATING-POINT-CONTAGION-ANSI*.
To shut off this warning, set *WARN-ON-FLOATING-POINT-CONTAGION* to NIL.
7.9577471545947667886L0
1
Catstail
Модератор
24159 / 12148 / 2178
Регистрация: 12.02.2012
Сообщений: 19,729
16.01.2013, 19:59 9
А если вызывать так:
Lisp
1
(circle-area 10.0)
0
_sg
3939 / 3715 / 258
Регистрация: 12.05.2012
Сообщений: 2,603
16.01.2013, 20:03 10
предупреждает (
0
Catstail
Модератор
24159 / 12148 / 2178
Регистрация: 12.02.2012
Сообщений: 19,729
16.01.2013, 20:06 11
А LispWorks считает спокойно...
0
_sg
3939 / 3715 / 258
Регистрация: 12.05.2012
Сообщений: 2,603
16.01.2013, 20:43 12
значит clisp осторожничает

Добавлено через 34 минуты
вариант Clozure Common Lisp:
Lisp
1
2
3
4
5
6
7
8
9
10
CL-USER> (defun circle-area (c)
  (/ (* c c) 4 pi))
CIRCLE-AREA
CL-USER> (circle-area 10.0)
7.957747154594767D0
CL-USER> (defun circle-area (c)
  (* c c 0.25 (/ 1.0 pi)))
CIRCLE-AREA
CL-USER> (circle-area 10.0)
7.957747154594768D0
1
16.01.2013, 20:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2013, 20:43

Autolisp. Построении дуги
Пробовал сам, искал, но не выходит. Только начал изучать и тут уже такое задание, поэтому прошу...

AutoLISP работа с файлом
Здравствуйте! Необходимо реализовать вывод и ввод в файлы. Программа чертит заданную по условию...

Движение фигуры в AutoLisp
помогите пожалуйста, как заставить фигуру двигаться??


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru