|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
А если это условие не соблюдается? Что тогда делать?
P.S. Ползать по всей теме и разыскивать, в каком коде и в каком месте у тебя нестыковка - мне лениво и некогда. ----- добавлено через ~2 мин. ----- Тьфу, блин, не так! Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Код:
|
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
М-да, C#-подход уже накладывает свои ходы
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 24.01.2008
Подольск
Сообщений: 170
|
Это будет дальше следующим вопросом
![]() Оно самое! Вот, догадывался, что с дублированием setq, что-то не так. koMon Вообще, - супер! Не знал, что < работает "на две стороны". ![]() А как будет, если по условию, >=273 и <303? Так? Код:
Последний раз редактировалось Alxndr1697, 15.03.2022 в 07:32. |
|||
![]() |
|
||||
Alxndr1697,
не работает на две стороны, сравниваемых величин может быть больше трёх. последовательно проверяются пары от символа сравнения до первого nil. я бы сделал так: Код:
Последний раз редактировалось koMon, 15.03.2022 в 10:03. |
||||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
|
|||
![]() |
|
||||
чем именно лучше?)
эмм и потом... тут x должен сравниваться с a и b, а не а и b между собой... еяпп |
||||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Это просто пример. cond возвращает значение, а в ее ветвях можно записать любое выражение, также возвращающее значение. |
|||
![]() |
|
||||
для понятия нахождения числа в диапазоне из двух других чисел cond ваще не вариант имхо) потому что заменяется простым if с проверкой and на граничность, что соответствует поставленному практическому вопросу, а не теории многочисленности вариантов.
|
||||
![]() |
|
||||
Регистрация: 24.01.2008
Подольск
Сообщений: 170
|
Извините, что не появлялся, уведомления почему-то не приходят, вот и думал , что тут тишина.
Вопрос, как и полагал, решил через cond: Код:
Что-то у меня с if не складывается) Что тут неправильно? Код:
пс. Решено. Замена eq на /= Последний раз редактировалось Alxndr1697, 19.03.2022 в 08:09. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
1. Зачем каждый раз вычислять (distance P_0 P_B) ? Не вижу, чтобы в данном коде переменные P_0 P_B менялись - чтобы была необходимость актуализации дистанции.
2. Здесь как раз напрашивается сделать функцию, куда передаются аргументы P_0 P_B, а возвращается длина направляющей. Либо -1, если менее 273 - а уже в вызывающей основной функции либо продолжение работы, либо alert. И так везде - где есть строго определенный законченный функционал, выносите в отдельную функцию, а в основном коде будет лишь одна строчка вызова этой функции. Читаемость кода будет гораздо лучше, и отладка проще. Есть, конечно, определенные затраты на вызов функции и обратный возврат к выполнению основной программы. Ну потом при необходимости где-то в одиночных критичных местах развернуть вызов функции в ее код с целью повышения быстродействия - но сама то программа уже будет готова, и ею уже можно будет практически пользоваться даже с этими временными лагами первое время. |
|||
![]() |
|
||||
Регистрация: 24.01.2008
Подольск
Сообщений: 170
|
Цитата:
Буду признателен, если кто-нибудь напишет эту функцию ( без вла) и как ее потом вызывать, чтоб разобраться. ----- добавлено через ~5 мин. ----- Еще вопрос. Эту дистанцию можно было записать в переменную и уже, легче бы читалось. Сознательно пошел на этот шаг, чтобы уменьшить количество переменных. Это правильно, или нет? |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
Цитата:
Код:
Ну а вызов - вызов же той же distance не вызывает затруднения, а ваша функция ничем не отличается для кода. Последний раз редактировалось Сергей812, 19.03.2022 в 12:00. |
|||
![]() |
|
||||
Регистрация: 24.01.2008
Подольск
Сообщений: 170
|
Сергей812 Благодарю!
Но, немного не пойму, зачем нужна функция? Если просто назначить переменную (setq Dist (distance P_0 P_B)) и заменить все (distance P_0 P_B) на Dist, будет неправильно? Пока нет возможности проверить... Последний раз редактировалось Alxndr1697, 20.03.2022 в 14:10. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Просто есть синтаксические ошибки (выявляется на этапе компиляции), есть явные ошибки типа передачи неинициализированных переменных и т.п. (обычно выявляются во время первых прогонов runtime), и есть логические ошибки. И если программа достаточно большая, но при этом не структурирована в логические законченные функциональные узлы (функции) - то можно очень долго заниматься поиском этих логических ошибок путем пошаговой отладки. И поддержка структурированных программ проще - вносятся изменения только куда нужно, не затрагивая уже работающее.
|
|||
![]() |
|
||||
Регистрация: 24.01.2008
Подольск
Сообщений: 170
|
Так это я знаю)
Делая в окне программы, я ввожу "интервал межу строками", а тут надо по другому. Как? Есть где-нибудь справочник (не справка автокада) со всеми командами, опциями команд и их последовательностью? Не всегда все так очевидно, как делаешь через окно автокада (командную строку). |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
LISP. Вставка в таблицу поля, соотвествующего площади примитива | Profan | Готовые программы | 272 | 06.06.2021 23:12 |
Сейсмозащита и сейсмоизоляция существующих, построенных зд. | IANationalInformAgentstvo | Прочее. Архитектура и строительство | 216 | 20.01.2015 16:51 |
Мониторы LCD CRT | Разное | 94 | 17.06.2008 10:51 | |
ЮМОР 2006 =) | Perezz!! | Разное | 1122 | 04.01.2007 00:46 |