|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Как организовать логические операции над вещественными числами?
Регистрация: 18.11.2019
Сообщений: 1,705
|
||
Просмотров: 5531
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Offtop: Переводи в двоичную систему и смотри, что и как получается
![]() 0 = 0 => !0 = 1 1 = 1 => !1 = 0 2 = 10 => !2 = 1 3 = 11 => !3 = 0 4 = 100 => !4 = 3 Ну и т.д. )))
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Ну зачем так-то, да мучиться с проверками? Во всех системах программирования давно имеются элементы ввода, просто не позволяющие ввести неверные значения. Это и маски ввода, и списки выбора, и "спины". Их применение гарантирует получение только допустимых данных.
Если же два размера надо, то надо и одновременно два элемента использовать, а не последовательно. Что касается сравнения вещественных чисел, хоть друг с другом, хоть с "истиной", то обычный путь - преобразование чисел в строки с заданным количеством десятичных знаков и сравнение уже строк. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
|
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
И есть еще много факторов для вещественных чисел, зависящих и от среды программирования и даже от процессора. Да еще и сюрпризы от Microsoft. Вот статья Неочевидные особенности вещественных чисел с обзором для Delphi. В других средах что-то подобное. И, чтобы не напрягать свои мозги каждый раз, надо просто иметь библиотечные функции для сравнения. Да они давно сделаны. |
|||
![]() |
|
||||
Регистрация: 18.11.2019
Сообщений: 1,705
|
Цитата:
Я пишу свой язык. Он нетипизированный, т.е. в нем не разделяются целые и вещественные числа. А логические операции нужно как-то описывать. Обычно ноль - FALSE, не ноль - TRUE. В моем случае, склоняюсь, что если число отрицательное и ноль - должно быть FALSE. В этом случае OR сложнее описывается (простой суммой не обойтись). Если одно из чисел положительное - его и возвращает. или OR - просто возврат максимального значения из двух чисел, это более близко реальности. т.е. X OR Y эквивалентно MAX(X,Y) , где MAX - функция, возвращающая максимум из двух чисел. Пустая переменная, видимо, тоже должна квалифицироваться как FALSE. Последний раз редактировалось nickname2019, 21.02.2020 в 10:18. |
|||
![]() |
|
||||
Регистрация: 18.11.2019
Сообщений: 1,705
|
Выглядит примерно как в посте #6. Компилятор на c++. Название языка пока не придумал.
Может #Glagol назову. Только "Глагол" в русской транскрипции один псих (в хорошем смысле) для языка программирования уже забронировал (он в нем все операторы на русском сделал, очень странно выглядит). |
|||
![]() |
|
||||
Регистрация: 05.08.2008
Сообщений: 828
|
как-то интуитивно непонятно у вас получится. если булевы операции, то должны быть булевы операции. а у вас отрицательное число это false получается
----- добавлено через ~2 мин. ----- ну вот американцы вот так вот на своем языке все ключевые слова и видят. ничего, живут как-то. а вообще к такому языку на русском ИДЭ добавить и все школоло перейдут с паскаля на него |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Был уже такой язык. "Ершик" назывался по фамилии создателя. Официально "Русский алгоритмический язык". Отбивал у школоты желание заниматься "информатикой". Последний раз редактировалось ShaggyDoc, 21.02.2020 в 10:44. |
|||
![]() |
|
||||
Регистрация: 18.11.2019
Сообщений: 1,705
|
Цитата:
Просто есть задача описать основные булевые операции для нетипизированных переменных (на самом деле - double) примерно в том виде, как в нормальном языке, чтобы выглядело и работало стандартно. Цитата:
----- добавлено через ~2 мин. ----- Да, сравнение реальных чисел нужно делать с учетом допуска вычислений. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Offtop: Вариант русского языка программирования, кажется, в 1С реализован. Выглядело действительно дико.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 05.08.2008
Сообщений: 828
|
Цитата:
а что это такое? не инициализированная? |
|||
![]() |
|
||||
Регистрация: 18.11.2019
Сообщений: 1,705
|
Цитата:
Цитата:
|
|||
![]() |
|
||||
Регистрация: 05.08.2008
Сообщений: 828
|
Offtop: однакож такой язык любой бухгалтер осваивает запросто. и клепает там что-то. а иностранный является препятствием, нужен специалист, которого пять лет нужно обучать
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
|
|||
![]() |
|
||||
Регистрация: 18.11.2019
Сообщений: 1,705
|
Цитата:
Юзер, соответственно, сам создает команды на этом скрипте, названия которому пока нет. Скрипт напоминает бэйсик, только нетипизированный. Окончательная версия логических операций (с учетом того, что ноль и отрицательные числа - false) имеет вид X OR Y эквивалентно MAX(X,Y) X AND Y эквивалентно MIN(X,Y) NOT X получается более сложным оператором Код:
Последний раз редактировалось nickname2019, 23.02.2020 в 09:56. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
а вы принимаете в расчет, что с этим придумыванием экзотических записей операций в своем скриптовом языке в итоге получиться как с лиспом - что он стоит "отдельно" от других языков программирования вследствие своей списочной сущности, синтаксиса и прочего? Для обычного пользователя лучше вообще что-то визуальное делать, со всякими мастерами-помощниками пошаговыми, имхо. А для продвинутых предоставлять API.
|
|||
![]() |
|
||||
Регистрация: 18.11.2019
Сообщений: 1,705
|
Цитата:
Я пока думаю, что нужно дать возможность из скрипта вызывать лисповые функции, которые будет выполнять внешний обработчик (в моем случае, обработчик - автокад, и скрипт выполняется внутри автокада). Соответственно, мне нужно будет придумать механизм передачи переменных в лисп-функцию и получения результатов назад. Мой скриптовый язык нетипизированный и не объектно-ориентированный, фактически это просто набор полезных функций. Предоставление API ничего не даст. Управление порядком вызова функций осуществляется скриптом. Как максимум - можно дать пользователю генерировать произвольные скрипты и запускать на выполнение. Но автоматизация скрипта - это я не скоро буду делать. Я еще с базовые функции не совсем закончил. Последний раз редактировалось nickname2019, 23.02.2020 в 12:58. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Возможно ли организовать деформационный шов в существующей фундаментной плите | Igor1985 | Основания и фундаменты | 15 | 08.11.2016 15:52 |
Как в Solidworks скрыть/неотображать отдельные операции. Трубопровод. | vamesc | SolidWorks | 3 | 08.10.2014 19:03 |
Возможны ли булевы операции над сетями? | Tannik | AutoCAD | 6 | 14.02.2011 13:38 |
Как пристроить вплотную новую несущую стену к старой и при этом организовать фундамент | Lexa | Основания и фундаменты | 4 | 05.10.2009 11:03 |
Как организовать уловие функцией if? | Kostinok | Программирование | 6 | 30.07.2008 10:07 |