1 Pages (3 items)
Новые возможности требующие минимальных трудозатрат - Messages
#1 Posted: 4/10/2012 3:04:38 PM
Как каждый пользователь 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. Сообщения об ошибке не будет, но и толку тоже.
А еще... Стоп. Обещал, что будет коротко и без "напряга". Поэтому - конец мечтаний.
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. Сообщения об ошибке не будет, но и толку тоже.
А еще... Стоп. Обещал, что будет коротко и без "напряга". Поэтому - конец мечтаний.
#2 Posted: 4/10/2012 5:41:09 PM
IVR, спасибо!
По поводу continue, break и return - они уже работают в тестовой сборке SMath Studio (пока недоступна для загрузки), т.ч. вполне можно рассчитывать, что данная функциональность появится в следующей версии.
Про if - есть у меня идея как красиво сделать поддержку этого оператора, да так, что б условий можно было бы задать сколько угодно и что бы пользователь сам решал, нужен else или нет. Не уверен, что сделаю к следующей версии, но постараюсь не затягивать.
Можно Вас попросить сделать пару скриншотов в матлабе того, что бы хотелось видеть? Обещаю рассмотреть.
С уважением, Андрей Ивашов.
По поводу continue, break и return - они уже работают в тестовой сборке SMath Studio (пока недоступна для загрузки), т.ч. вполне можно рассчитывать, что данная функциональность появится в следующей версии.
Про if - есть у меня идея как красиво сделать поддержку этого оператора, да так, что б условий можно было бы задать сколько угодно и что бы пользователь сам решал, нужен else или нет. Не уверен, что сделаю к следующей версии, но постараюсь не затягивать.
Wrote4. "Матлабовская" форма записи интервалов изменения индекса в векторах и матрицах. Пример: вместо 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. Сообщения об ошибке не будет, но и толку тоже.
Можно Вас попросить сделать пару скриншотов в матлабе того, что бы хотелось видеть? Обещаю рассмотреть.
С уважением, Андрей Ивашов.
#3 Posted: 4/11/2012 3:05:58 AM
return - это оператор для подпрограмм?
А по поводу нормальности - понятие относительное. Напоминает слова о том, что в С составной оператор {} написать удобнее, чем в Pascal связку begin end. И из-за этого С круче!:d
З.Ы. А когда выход новой сборки планируется?
А по поводу нормальности - понятие относительное. Напоминает слова о том, что в С составной оператор {} написать удобнее, чем в Pascal связку begin end. И из-за этого С круче!:d
З.Ы. А когда выход новой сборки планируется?
1 Pages (3 items)
-
New Posts
-
No New Posts