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

Уведомление

Icon
Error

Вход


Опции
К последнему сообщению К первому непрочитанному
Offline IVR  
#1 Оставлено : 10 апреля 2012 г. 22:04:38(UTC)
IVR

Статус: Newbie

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

Сказал(а) «Спасибо»: 191 раз
Как каждый пользователь SMath Studio со стажем, я имею дли-и-и-инный список пожеланий к этой программе. Но, сознавая, что Андрей занимается этой программой в свое свободное время, не собираюсь его тут обнародовать полностью. Ниже перечислены только самые простые поправки, требующие минимальных "трудозатрат".

1. Оператор continue (или pass, в разных языках программирования есть разные названия). Он вообще ничего не делает, но может быть "затычкой" для неиспользуемых "ветвей" оператора if (и не только). Разумеется можно в каждой программе сначала вставить continue:=0, но почему не сделать это глобально, в самом SMath Studio? Самое смешное, что можно уже сейчас вписать continue в "слепую" ветвь оператора if и SMath Studio будет работать. Но лучше, чтобы все было "легально".

2. Оператор break для "аварийного" выхода из оператора цикла for. Есть практически в каждом современном языке программирования. Ясно, что можно искусственно выйти из цикла приписывая переменной цикла значение превышающее верхнюю допустимую границу, но (а) в SMath Studio 0.93 это работает только в for(3) и не работает в for(2); (в) такой трюк всегда считался примером плохого стиля программирования, а в некоторых языках просто запрещен. Поскольку SMath массово используется студентами?, стоит учить их программировать пристойно.

3. Короткий оператор if (только if-then). Я проверил свои документы - полная форма логического оператора в них была нужна менее чем в 20% случаев. Думаю, что мой пример - не исключение. А реализовать if(1) имея готовый if(2) просто.

4. "Матлабовская" форма записи интервалов изменения индекса в векторах и матрицах. Пример: вместо A:=submatrix(B,1,3,2,6) хотелось бы иметь возможность "нормально" (для мира FORTRANа и всех клонов MATLABа) написать A:=B(1..3,2..6) (используя range). Поскольку функция submatrix уже реализована добавить ее "синоним" не должно быть сильно сложно.
Использование "матлабовской" индексации в левой части оператора приписывания - это вообще "голубая мечта". Можно уже сейчас написать A:=matrix(1,5) A(2..4):=1. Сообщения об ошибке не будет, но и толку тоже.

А еще... Стоп. Обещал, что будет коротко и без "напряга". Поэтому - конец мечтаний.

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

Offline smath  
#2 Оставлено : 11 апреля 2012 г. 0:41:09(UTC)
smath


Статус: Administration

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

Сказал «Спасибо»: 640 раз
Поблагодарили: 262 раз в 102 постах
IVR, спасибо!

По поводу continue, break и return - они уже работают в тестовой сборке SMath Studio (пока недоступна для загрузки), т.ч. вполне можно рассчитывать, что данная функциональность появится в следующей версии.
Про if - есть у меня идея как красиво сделать поддержку этого оператора, да так, что б условий можно было бы задать сколько угодно и что бы пользователь сам решал, нужен else или нет. Не уверен, что сделаю к следующей версии, но постараюсь не затягивать.

IVR написал:
4. "Матлабовская" форма записи интервалов изменения индекса в векторах и матрицах. Пример: вместо A:=submatrix(B,1,3,2,6) хотелось бы иметь возможность "нормально" (для мира FORTRANа и всех клонов MATLABа) написать A:=B(1..3,2..6) (используя range). Поскольку функция submatrix уже реализована добавить ее "синоним" не должно быть сильно сложно.
Использование "матлабовской" индексации в левой части оператора приписывания - это вообще "голубая мечта". Можно уже сейчас написать A:=matrix(1,5) A(2..4):=1. Сообщения об ошибке не будет, но и толку тоже.

Можно Вас попросить сделать пару скриншотов в матлабе того, что бы хотелось видеть? Обещаю рассмотреть.

С уважением, Андрей Ивашов.
Offline kasper  
#3 Оставлено : 11 апреля 2012 г. 10:05:58(UTC)
kasper


Статус: Advanced Member

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

Сказал «Спасибо»: 21 раз
Поблагодарили: 13 раз в 9 постах
return - это оператор для подпрограмм?
А по поводу нормальности - понятие относительное. Напоминает слова о том, что в С составной оператор {} написать удобнее, чем в Pascal связку begin end. И из-за этого С круче!Biggrin

З.Ы. А когда выход новой сборки планируется?

Отредактировано пользователем 11 апреля 2012 г. 10:08:07(UTC)  | Причина: Не указана

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