Новые возможности требующие минимальных трудозатрат

Новые возможности требующие минимальных трудозатрат - Сообщения

#1 Опубликовано: 10.04.2012 15:04:38
IVR

IVR

3 сообщений из 15 понравились пользователям.

Группа: User

Как каждый пользователь 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. Сообщения об ошибке не будет, но и толку тоже.

А еще... Стоп. Обещал, что будет коротко и без "напряга". Поэтому - конец мечтаний.
#2 Опубликовано: 10.04.2012 17:41:09
Andrey Ivashov

Andrey Ivashov

2270 сообщений из 3734 понравились пользователям.

Группа: Super Administrator

IVR, спасибо!

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

Wrote

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. Сообщения об ошибке не будет, но и толку тоже.


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

С уважением, Андрей Ивашов.
#3 Опубликовано: 11.04.2012 03:05:58
Медведев Виктор

Медведев Виктор

13 сообщений из 157 понравились пользователям.

Группа: User

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

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