Русскоязычный форум закрыт из-за отсутствия активности (доступен только для чтения).
Пожалуйста, пользуйтесь англоязычной его версией. Приносим извинения за неудобства
Добро пожаловать, Гость! Чтобы использовать все возможности Вход. Новые регистрации запрещены.

Уведомление

Icon
Error

Вход


Опции
К последнему сообщению К первому непрочитанному
Offline Antech  
#1 Оставлено : 17 сентября 2010 г. 13:38:13(UTC)
Antech


Статус: Member

Группы: Registered
Зарегистрирован: 13.09.2010(UTC)
Сообщений: 28
Откуда: Solar System, Earth

Сказал(а) «Спасибо»: 7 раз
Поблагодарили: 1 раз в 1 постах
Здравствуйте.

Наткнулся в одной из тем на то, что якобы SMath не возвращает значение функции в виде программы (вертикальная черта). Я такие штуки на Маткаде использовал, и мне это важно. Проверил - значение-то возвращает, а вот локальное присвоение сделать не получается. В панели "Арифметика" подобной кнопки нет, "{" (как в Маткаде) тоже не работает. Присвоение через ":=" - глобальное. Разве в SMath в Programming (которое через вертикальную черту) нет локальных переменных? (Поиск не дал результатов)

И еще, сорри, но позволю себе задать смежный вопрос, чтобы не плодить темы. Как SMath относится к крупным программам? На Маткаде я делал таких зверей... Допустим, 500 строк программы + десятки аргументов у функций, запускаемых из программы - это довольно объемно для математического пакета. Будут ли такие конструкции работать? Не будет ли это работать слишком медленно? (На Маткаде мои программы, бывает, более минуты считают)

Wanna join the discussion?! Login to your Форум проекта SMath forum account. Новые регистрации запрещены.

Offline smath  
#2 Оставлено : 17 сентября 2010 г. 14:36:56(UTC)
smath


Статус: 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 работает медленнее маткада, но я постоянно (и успешно) работаю над увеличением её производительности.

С уважением, Андрей Ивашов.
Offline Antech  
#3 Оставлено : 18 сентября 2010 г. 18:18:49(UTC)
Antech


Статус: Member

Группы: Registered
Зарегистрирован: 13.09.2010(UTC)
Сообщений: 28
Откуда: Solar System, Earth

Сказал(а) «Спасибо»: 7 раз
Поблагодарили: 1 раз в 1 постах
smath
Такой возможности в программе нет
Значит это именно к функции относится... Потому что если присвоить прог-блок переменной, то возвращаемое значение замечательно передается в переменную, а функцию-то я не попробовал... ОК, функция=прог-блок - это тоже критично (без этого никак), поэтому терпеливо ждем новую версию.

ограничений на количество аргументов функций или строк расчётов в SMath Studio нет
ОК, этот вопрос снимается.

SMath Studio работает медленнее маткада
Ничего не поделаешь, это плата за Net Framework и кроссплатформенность. Даже перерисовка содержимого окна при скролле, когда оно развернуто на весь экран, слегка подтормаживает, правда этого почти не заметно (у меня на работе сравнительно большой 24" моник).
Но интересно другое: нельзя ли узнать, во сколько раз примерно SMath медленнее, чем Mathcad? Не превратятся ли несколько маткадных минут в несколько часов Good?

Сорри, но Вы забыли про основной вопрос темы, насчет local variables Good. Например, если в прог-блоке сделать x:=1, то создается глобальная переменная x, ее значение видно за пределами прог-блока. А создать локальную переменную у меня не получилось [синтакс Mathcad: x<-1, вставляется с помощью "{"].

Отредактировано пользователем 18 сентября 2010 г. 18:22:17(UTC)  | Причина: Движок форума излишне активен при преобразовании текста в смайлы :)

Offline smath  
#4 Оставлено : 18 сентября 2010 г. 20:37:26(UTC)
smath


Статус: 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 написал:
Не превратятся ли несколько маткадных минут в несколько часов Good?

Вполне вероятно. Разные алгоритмы в разных программах будут занимать различное время.

Antech написал:
Сорри, но Вы забыли про основной вопрос темы, насчет local variables Good.

Все создаваемые переменные в SMath Studio по своей природе - глобальные. Когда будет представлена официальная возможность использовать функции программирования в качестве правой части выражения присваивания, тогда появятся и переменные с локальной видимостью.

С уважением, Андрей Ивашов.
Offline Antech  
#5 Оставлено : 19 сентября 2010 г. 20:38:00(UTC)
Antech


Статус: 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 убирает пробелы. А не надо.

Offline smath  
#6 Оставлено : 19 сентября 2010 г. 21:23:11(UTC)
smath


Статус: 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. Буду и дальше работать над совершенствованием программы.

Спасибо за вопросы. С уважением.
Offline Antech  
#7 Оставлено : 20 сентября 2010 г. 10:03:56(UTC)
Antech


Статус: Member

Группы: Registered
Зарегистрирован: 13.09.2010(UTC)
Сообщений: 28
Откуда: Solar System, Earth

Сказал(а) «Спасибо»: 7 раз
Поблагодарили: 1 раз в 1 постах
smath
ОК, благодарю за пояснения, ждем новых версий.
Offline iiii01  
#8 Оставлено : 21 сентября 2010 г. 20:51:55(UTC)
iiii01

Статус: Newbie

Группы: Registered
Зарегистрирован: 21.09.2010(UTC)
Сообщений: 7
Откуда: СПб

Сказал(а) «Спасибо»: 1 раз
Добрый день !

Не совсем по теме - но проблема с программированием:

Когда осуществляется набор программного блока, то при вводе уже известной переменной производится её подсветка по всему тексту блока.

При этом, если блок большой то на экран выводится начало блока. И после каждого ввода приходится перематывать экран обратно. Можно ли ввести в меню "опции" кнопочку для включения/выключения данной функциональности ?

Спасибо
Offline smath  
#9 Оставлено : 21 сентября 2010 г. 21:36:21(UTC)
smath


Статус: Administration

Группы: Developers, Registered, Knovel Developers, Administrators, Advanced Member
Зарегистрирован: 11.07.2008(UTC)
Сообщений: 912
Мужчина
Российская Федерация

Сказал «Спасибо»: 640 раз
Поблагодарили: 262 раз в 102 постах
Приветствую.

Подсветка повторяющихся вхождений и подстраивание кареток прокрутки к началу блока формул никак между собой не связаны. А вот то, что автоподстраивание кареток работает некорректно в случае больших размеров региона - это ошибка. Буду исправлять, спасибо.

С уважением.
Offline Antech  
#10 Оставлено : 23 сентября 2010 г. 9:24:26(UTC)
Antech


Статус: 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)  | Причина: Не указана

Offline smath  
#11 Оставлено : 23 сентября 2010 г. 15:55:53(UTC)
smath


Статус: Administration

Группы: Developers, Registered, Knovel Developers, Administrators, Advanced Member
Зарегистрирован: 11.07.2008(UTC)
Сообщений: 912
Мужчина
Российская Федерация

Сказал «Спасибо»: 640 раз
Поблагодарили: 262 раз в 102 постах
Удалять/добавлять новые строчки в line(..) не в конце пока что нельзя. Постараюсь успеть придумать что-нибудь к следующей версии.

Antech написал:
...стоит переместить левую часть вверх...

Согласен, сделаю.
thanks 1 пользователь поблагодарил smath за этот пост.
Antech оставлено 24.09.2010(UTC)
Offline smath  
#12 Оставлено : 1 октября 2010 г. 2:45:35(UTC)
smath


Статус: Administration

Группы: Developers, Registered, Knovel Developers, Administrators, Advanced Member
Зарегистрирован: 11.07.2008(UTC)
Сообщений: 912
Мужчина
Российская Федерация

Сказал «Спасибо»: 640 раз
Поблагодарили: 262 раз в 102 постах
Возможность создания в том числе и локальных переменных реализована!

Начиная с версии SMath Studio 0.90 программа будет позволять создавать сколь угодно сложные конструкции в определениях. На данный момент этот функционал может быть протестирован в SMath Studio Live:
Открыть в Облаке SMath

С уважением, Андрей Ивашов.
Offline Samar  
#13 Оставлено : 1 октября 2010 г. 11:02:31(UTC)
Samar


Статус: Member

Группы: Registered
Зарегистрирован: 15.07.2008(UTC)
Сообщений: 102
Мужчина
Откуда: Брест

Сказал «Спасибо»: 8 раз
Поблагодарили: 2 раз в 2 постах
Не хватает еще возможности подключения функций из других файлов .sm и тогда будет счастье Good

p.s.: можно будет создавать свои собственные библиотеки, при этом не вникая в создание плагинов.
Offline build_your_web  
#14 Оставлено : 1 октября 2010 г. 11:29:06(UTC)
build_your_web


Статус: Advanced Member

Группы: Developers, Registered
Зарегистрирован: 28.08.2009(UTC)
Сообщений: 127

Сказал(а) «Спасибо»: 19 раз
Поблагодарили: 4 раз в 4 постах
Кстати, да, сниппеты хороши, но возможность загружать другие файлы тоже пригодится.
И плагины пригодяться, если им дадут больше возможностей.

Но считаю что более приоритетная задача: комфортная работа с размерностями. Сейчас с ними дело не так хорошо как хотелось бы.
Offline smath  
#15 Оставлено : 1 октября 2010 г. 13:00:25(UTC)
smath


Статус: Administration

Группы: Developers, Registered, Knovel Developers, Administrators, Advanced Member
Зарегистрирован: 11.07.2008(UTC)
Сообщений: 912
Мужчина
Российская Федерация

Сказал «Спасибо»: 640 раз
Поблагодарили: 262 раз в 102 постах
build_your_web написал:
Но считаю что более приоритетная задача: комфортная работа с размерностями. Сейчас с ними дело не так хорошо как хотелось бы.

А что с ними не так? Я и не занимаюсь ими только потому, что считаю, что они реализованы достаточно хорошо. Если речь о локализации, то эта работа уже тоже ведётся, но она не только к ед. изм. относится. А если о нелинейных единицах измерения, то не имею представления как можно упростить работу с ними. Третий вариант: выбор единиц для вывода по умолчанию, но это очень несущественная проблема, которая не столь актуальна для русскоязычных пользователей и, к тому же, имеет альтернативное решение в лице задания размерности вручную в конце выражения.

Т.ч. на мой взгляд значительно более важное дело - довести вычислительный движок до состояния, когда он будет позволять пользователю решать сколь угодно сложные задачи. Этим я и занимаюсь.

С уважением.
thanks 1 пользователь поблагодарил smath за этот пост.
Tgeh оставлено 26.10.2010(UTC)
Offline build_your_web  
#16 Оставлено : 1 октября 2010 г. 14:12:52(UTC)
build_your_web


Статус: Advanced Member

Группы: Developers, Registered
Зарегистрирован: 28.08.2009(UTC)
Сообщений: 127

Сказал(а) «Спасибо»: 19 раз
Поблагодарили: 4 раз в 4 постах
1*'MΩ—{1000000*'kg*'m^2}/{Ohm*'s^3*'A^2}@Ohm

Т.е. даже когда я привожу к омам, он просто делит то, что сам посчитал, на омы и все равно выдает сопротивление в единицах типа: кг, м, с.
Offline smath  
#17 Оставлено : 1 октября 2010 г. 14:15:30(UTC)
smath


Статус: Administration

Группы: Developers, Registered, Knovel Developers, Administrators, Advanced Member
Зарегистрирован: 11.07.2008(UTC)
Сообщений: 912
Мужчина
Российская Федерация

Сказал «Спасибо»: 640 раз
Поблагодарили: 262 раз в 102 постах
В Вашем примере Ohm не единица измерения, а переменная. Если это исправить, то получается 1*'MΩ—1000000@'ohm.
thanks 1 пользователь поблагодарил smath за этот пост.
build_your_web оставлено 01.10.2010(UTC)
Offline Tgeh  
#18 Оставлено : 26 октября 2010 г. 12:48:42(UTC)
Tgeh


Статус: Member

Группы: Registered
Зарегистрирован: 02.10.2009(UTC)
Сообщений: 17
Мужчина
Откуда: Санкт-Петербург

Сказал «Спасибо»: 2 раз


Казалось бы f(x) задана верно, значения выводятся правильно, а вот график рисовать или интеграл считать как нужно отказывается. В чем подвох?
Offline Tgeh  
#19 Оставлено : 26 октября 2010 г. 14:44:03(UTC)
Tgeh


Статус: Member

Группы: Registered
Зарегистрирован: 02.10.2009(UTC)
Сообщений: 17
Мужчина
Откуда: Санкт-Петербург

Сказал «Спасибо»: 2 раз
Вот нашел как правильно изобразить свою ошибку))
Тут видно, что с(z) - значение меняет, а на интеграле как будто всегда с = const = 5 (т.е. значение функции в "0" )

Открыть в Облаке SMath
Offline Alexandrum  
#20 Оставлено : 28 сентября 2013 г. 23:17:08(UTC)
Alexandrum

Статус: Newbie

Группы: Registered
Зарегистрирован: 28.09.2013(UTC)
Сообщений: 1
Российская Федерация
Откуда: Москва

Добрый вечер. Хочу попробовать освоится в этой замечательной программе.

Автор: smath Перейти к цитате
Удалять/добавлять новые строчки в line(..) не в конце пока что нельзя.


Не ожидается ли каких-то нововведений на этот счет в ближайшее время?
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.