Статус: Member
Группы: Registered
Зарегистрирован: 13.09.2010(UTC) Сообщений: 28 Откуда: Solar System, Earth
Сказал(а) «Спасибо»: 7 раз Поблагодарили: 1 раз в 1 постах
Здравствуйте. Наткнулся в одной из тем на то, что якобы SMath не возвращает значение функции в виде программы (вертикальная черта). Я такие штуки на Маткаде использовал, и мне это важно. Проверил - значение-то возвращает, а вот локальное присвоение сделать не получается. В панели "Арифметика" подобной кнопки нет, "{" (как в Маткаде) тоже не работает. Присвоение через ":=" - глобальное. Разве в SMath в Programming (которое через вертикальную черту) нет локальных переменных? (Поиск не дал результатов) И еще, сорри, но позволю себе задать смежный вопрос, чтобы не плодить темы. Как SMath относится к крупным программам? На Маткаде я делал таких зверей... Допустим, 500 строк программы + десятки аргументов у функций, запускаемых из программы - это довольно объемно для математического пакета. Будут ли такие конструкции работать? Не будет ли это работать слишком медленно? (На Маткаде мои программы, бывает, более минуты считают)
Статус: Administration
Группы: Developers, Registered, Knovel Developers, Administrators, Advanced Member
Зарегистрирован: 11.07.2008(UTC)
Сообщений: 912
Сказал «Спасибо»: 640 раз Поблагодарили: 262 раз в 102 постах
Здравствуйте.
Antech написал: Наткнулся в одной из тем на то, что якобы SMath не возвращает значение функции в виде программы (вертикальная черта).
Вы правы. Такой возможности в программе нет. Последнее время мне часто об этом говорят, а потому я обязательно её позже реализую.
Antech написал: Допустим, 500 строк программы + десятки аргументов у функций, запускаемых из программы - это довольно объемно для математического пакета. Будут ли такие конструкции работать? Не будет ли это работать слишком медленно?
Ну это больше риторический вопрос. Всё зависит от программы. Вообще ограничений на количество аргументов функций или строк расчётов в SMath Studio нет (точнее, конечно есть, но они представляет из себя настолько огромные числа, что проблем из-за этого возникнуть не может в принципе), однако, очевидно, что чем их больше, тем больше работы придётся выполнять программе. Я видел файлы (и создавал их сам), сделанные в SMath Studio, расчёт которых занимает минуты, но в большинстве случаев они вполне поддаются оптимизации (в том числе см.
eval и
optimization ). В целом же, и это факт, SMath Studio работает медленнее маткада, но я постоянно (и успешно) работаю над увеличением её производительности.
С уважением, Андрей Ивашов.
Статус: Member
Группы: Registered
Зарегистрирован: 13.09.2010(UTC) Сообщений: 28 Откуда: Solar System, Earth
Сказал(а) «Спасибо»: 7 раз Поблагодарили: 1 раз в 1 постах
smath Такой возможности в программе нет Значит это именно к функции относится... Потому что если присвоить прог-блок переменной, то возвращаемое значение замечательно передается в переменную, а функцию-то я не попробовал... ОК, функция=прог-блок - это тоже критично (без этого никак), поэтому терпеливо ждем новую версию.
ограничений на количество аргументов функций или строк расчётов в SMath Studio нет ОК, этот вопрос снимается.
SMath Studio работает медленнее маткада Ничего не поделаешь, это плата за Net Framework и кроссплатформенность. Даже перерисовка содержимого окна при скролле, когда оно развернуто на весь экран, слегка подтормаживает, правда этого почти не заметно (у меня на работе сравнительно большой 24" моник).
Но интересно другое: нельзя ли узнать, во сколько раз примерно SMath медленнее, чем Mathcad? Не превратятся ли несколько маткадных минут в несколько часов
?
Сорри, но Вы забыли про основной вопрос темы, насчет local variables
. Например, если в прог-блоке сделать x:=1, то создается глобальная переменная x, ее значение видно за пределами прог-блока. А создать локальную переменную у меня не получилось [синтакс Mathcad:
x<-1 , вставляется с помощью "{"].
Отредактировано пользователем 18 сентября 2010 г. 18:22:17(UTC)
| Причина: Движок форума излишне активен при преобразовании текста в смайлы :)
Статус: Administration
Группы: Developers, Registered, Knovel Developers, Administrators, Advanced Member
Зарегистрирован: 11.07.2008(UTC)
Сообщений: 912
Сказал «Спасибо»: 640 раз Поблагодарили: 262 раз в 102 постах
Здравствуйте.
Antech написал: Ничего не поделаешь, это плата за Net Framework и кроссплатформенность.
Это заблуждение. Скорость зависит во много большей степени от приложенных усилий разработчика(ов).
Antech написал: Даже перерисовка содержимого окна при скролле, когда оно развернуто на весь экран, слегка подтормаживает, правда этого почти не заметно (у меня на работе сравнительно большой 24" моник).
Это лишь потому, что при скроллинге SMath Studio перерисовывает весь экран, а маткад лишь недостающую часть видимого изображения.
Antech написал: Но интересно другое: нельзя ли узнать, во сколько раз примерно SMath медленнее, чем Mathcad?
Нет. Это невозможно.
Antech написал: Не превратятся ли несколько маткадных минут в несколько часов
?
Вполне вероятно. Разные алгоритмы в разных программах будут занимать различное время.
Antech написал: Сорри, но Вы забыли про основной вопрос темы, насчет local variables
.
Все создаваемые переменные в SMath Studio по своей природе - глобальные. Когда будет представлена официальная возможность использовать функции программирования в качестве правой части выражения присваивания, тогда появятся и переменные с локальной видимостью.
С уважением, Андрей Ивашов.
Статус: Member
Группы: Registered
Зарегистрирован: 13.09.2010(UTC) Сообщений: 28 Откуда: Solar System, Earth
Сказал(а) «Спасибо»: 7 раз Поблагодарили: 1 раз в 1 постах
smath функции программирования в качестве правой части выражения присваивания Я что-то не понимаю... У меня прог-блок работает и на присваивание переменной, и на присваивание функции (SMath 0.89 Portable). Пример:
Код:
f(x;y):=|z:=x^2+y^2
|z
f(5;5)=50
В любом случае спасибо за ответы, ждем в новых версиях дополнений функционала прог-блоков. Надеюсь, я Вам тут не сильно надоел. Пойду в Visual Studio писать свою прогу...
Отредактировано пользователем 19 сентября 2010 г. 20:41:04(UTC)
| Причина: HTML убирает пробелы. А не надо.
Статус: Administration
Группы: Developers, Registered, Knovel Developers, Administrators, Advanced Member
Зарегистрирован: 11.07.2008(UTC)
Сообщений: 912
Сказал «Спасибо»: 640 раз Поблагодарили: 262 раз в 102 постах
Antech написал: Я что-то не понимаю... У меня прог-блок работает и на присваивание переменной, и на присваивание функции (SMath 0.89 Portable). Пример:
Код:
f(x;y):=|z:=x^2+y^2
|z
f(5;5)=50
Тут дело в том, что я данную функциональность просто не закладывал. В некоторых ситуациях присвоение срабатывает, в некоторых - нет. Сейчас я не рекомендую использовать циклы, определение переменных и функций в правой части выражений определения функций. Именно поэтому я и говорю:
smath написал: Когда будет представлена официальная возможность использовать функции программирования в качестве правой части выражения присваивания, тогда появятся и переменные с локальной видимостью.
Просто сейчас я не могу гарантировать, что подобные выражения не испортят математической логики SMath Studio. Буду и дальше работать над совершенствованием программы.
Спасибо за вопросы. С уважением.
Статус: Member
Группы: Registered
Зарегистрирован: 13.09.2010(UTC) Сообщений: 28 Откуда: Solar System, Earth
Сказал(а) «Спасибо»: 7 раз Поблагодарили: 1 раз в 1 постах
smath ОК, благодарю за пояснения, ждем новых версий.
Статус: Newbie
Группы: Registered
Зарегистрирован: 21.09.2010(UTC) Сообщений: 7 Откуда: СПб
Сказал(а) «Спасибо»: 1 раз
Добрый день ! Не совсем по теме - но проблема с программированием: Когда осуществляется набор программного блока, то при вводе уже известной переменной производится её подсветка по всему тексту блока. При этом, если блок большой то на экран выводится начало блока. И после каждого ввода приходится перематывать экран обратно. Можно ли ввести в меню "опции" кнопочку для включения/выключения данной функциональности ? Спасибо
Статус: Administration
Группы: Developers, Registered, Knovel Developers, Administrators, Advanced Member
Зарегистрирован: 11.07.2008(UTC)
Сообщений: 912
Сказал «Спасибо»: 640 раз Поблагодарили: 262 раз в 102 постах
Приветствую. Подсветка повторяющихся вхождений и подстраивание кареток прокрутки к началу блока формул никак между собой не связаны. А вот то, что автоподстраивание кареток работает некорректно в случае больших размеров региона - это ошибка. Буду исправлять, спасибо. С уважением.
Статус: Member
Группы: Registered
Зарегистрирован: 13.09.2010(UTC) Сообщений: 28 Откуда: Solar System, Earth
Сказал(а) «Спасибо»: 7 раз Поблагодарили: 1 раз в 1 постах
Еще вопрос по поводу прог-блока. Увеличить его высоту (добавить placeholders внизу) можно, перетащив черную пимпочку. А вот добавить пустые строки в середине не получается - при нажатии "'" добавляется новый уровень, а не новая строка.
Да, и еще насчет больших блоков. Сейчас левая часть (которой присваивается) расположена в середине блока. Если блок большой (2-3 экрана), то Вы не видите чему присваивается значение. ИМХО в будущих версиях, где будет официально полноценное программирование с присвоением результата функции, стоит переместить левую часть вверх, как в Маткаде:
Код:
f(x,y,z,...)=|...
|...
|...
|...
|...
Отредактировано пользователем 23 сентября 2010 г. 12:04:27(UTC)
| Причина: Не указана
Статус: Administration
Группы: Developers, Registered, Knovel Developers, Administrators, Advanced Member
Зарегистрирован: 11.07.2008(UTC)
Сообщений: 912
Сказал «Спасибо»: 640 раз Поблагодарили: 262 раз в 102 постах
Удалять/добавлять новые строчки в line(..)
не в конце пока что нельзя. Постараюсь успеть придумать что-нибудь к следующей версии.
Antech написал: ...стоит переместить левую часть вверх...
Согласен, сделаю.
1 пользователь поблагодарил smath за этот пост.
Antech оставлено 24.09.2010(UTC)
Статус: Administration
Группы: Developers, Registered, Knovel Developers, Administrators, Advanced Member
Зарегистрирован: 11.07.2008(UTC)
Сообщений: 912
Сказал «Спасибо»: 640 раз Поблагодарили: 262 раз в 102 постах
Возможность создания в том числе и локальных переменных реализована!
Начиная с версии SMath Studio 0.90 программа будет позволять создавать сколь угодно сложные конструкции в определениях. На данный момент этот функционал может быть протестирован в SMath Studio Live:
Открыть в Облаке SMath С уважением, Андрей Ивашов.
Статус: Member
Группы: Registered
Зарегистрирован: 15.07.2008(UTC)
Сообщений: 102
Откуда: Брест
Сказал «Спасибо»: 8 раз Поблагодарили: 2 раз в 2 постах
Не хватает еще возможности подключения функций из других файлов .sm и тогда будет счастье
p.s.: можно будет создавать свои собственные библиотеки, при этом не вникая в создание плагинов.
Статус: Advanced Member
Группы: Developers, Registered Зарегистрирован: 28.08.2009(UTC) Сообщений: 127
Сказал(а) «Спасибо»: 19 раз Поблагодарили: 4 раз в 4 постах
Кстати, да, сниппеты хороши, но возможность загружать другие файлы тоже пригодится. И плагины пригодяться, если им дадут больше возможностей. Но считаю что более приоритетная задача: комфортная работа с размерностями. Сейчас с ними дело не так хорошо как хотелось бы.
Статус: Administration
Группы: Developers, Registered, Knovel Developers, Administrators, Advanced Member
Зарегистрирован: 11.07.2008(UTC)
Сообщений: 912
Сказал «Спасибо»: 640 раз Поблагодарили: 262 раз в 102 постах
build_your_web написал: Но считаю что более приоритетная задача: комфортная работа с размерностями. Сейчас с ними дело не так хорошо как хотелось бы.
А что с ними не так? Я и не занимаюсь ими только потому, что считаю, что они реализованы достаточно хорошо. Если речь о локализации, то эта работа уже тоже ведётся, но она не только к ед. изм. относится. А если о нелинейных единицах измерения, то не имею представления как можно упростить работу с ними. Третий вариант: выбор единиц для вывода по умолчанию, но это очень несущественная проблема, которая не столь актуальна для русскоязычных пользователей и, к тому же, имеет альтернативное решение в лице задания размерности вручную в конце выражения.
Т.ч. на мой взгляд значительно более важное дело - довести вычислительный движок до состояния, когда он будет позволять пользователю решать сколь угодно сложные задачи. Этим я и занимаюсь.
С уважением.
1 пользователь поблагодарил smath за этот пост.
Tgeh оставлено 26.10.2010(UTC)
Статус: Advanced Member
Группы: Developers, Registered Зарегистрирован: 28.08.2009(UTC) Сообщений: 127
Сказал(а) «Спасибо»: 19 раз Поблагодарили: 4 раз в 4 постах
1*'MΩ—{1000000*'kg*'m^2}/{Ohm*'s^3*'A^2}@Ohm Т.е. даже когда я привожу к омам, он просто делит то, что сам посчитал, на омы и все равно выдает сопротивление в единицах типа: кг, м, с.
Статус: Administration
Группы: Developers, Registered, Knovel Developers, Administrators, Advanced Member
Зарегистрирован: 11.07.2008(UTC)
Сообщений: 912
Сказал «Спасибо»: 640 раз Поблагодарили: 262 раз в 102 постах
В Вашем примере Ohm не единица измерения, а переменная. Если это исправить, то получается 1*'MΩ—1000000@'ohm.
1 пользователь поблагодарил smath за этот пост.
Статус: Member
Группы: Registered
Зарегистрирован: 02.10.2009(UTC)
Сообщений: 17
Откуда: Санкт-Петербург
Сказал «Спасибо»: 2 раз
Казалось бы f(x) задана верно, значения выводятся правильно, а вот график рисовать или интеграл считать как нужно отказывается. В чем подвох?
Статус: Member
Группы: Registered
Зарегистрирован: 02.10.2009(UTC)
Сообщений: 17
Откуда: Санкт-Петербург
Сказал «Спасибо»: 2 раз
Вот нашел как правильно изобразить свою ошибку))
Тут видно, что с(z) - значение меняет, а на интеграле как будто всегда с = const = 5 (т.е. значение функции в "0" )
Открыть в Облаке SMath
Статус: Newbie
Группы: Registered
Зарегистрирован: 28.09.2013(UTC)
Сообщений: 1
Откуда: Москва
Добрый вечер. Хочу попробовать освоится в этой замечательной программе.
Автор: smath Удалять/добавлять новые строчки в line(..) не в конце пока что нельзя.
Не ожидается ли каких-то нововведений на этот счет в ближайшее время?
Быстрый переход
Форум проекта SMath
SMath Studio
- Скачать SMath Studio
--- Архив
--- Ночные сборки
- Примеры использования
- Вопросы по использованию
- Предложения
- Ошибки
Математика
- Документы
- Алгоритмы
- Математические задачи
Общение
- О проекте
- Общение
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.