Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Современный алгоритмический язык программирования
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > Образование в области электроники
PhX
Нелегкая занесла в сферу образования.
Предстоит читать теорию оптимизации инженерных решений. Информации по теме в Сети хватает. Однако встал вопрос, каким языком программирования пользоваться при практической реализации алгоритмов? Паскаль? С?... Уже старо и плохо с точки зрения визуализации данных. MathCad MatLab хорошо, но дорого. Хочется увидеть язык программирования, который легко читается и хорошо отражает алгоритм работы, имеет мощные средства визуализации (двумерные и трехмерные графики, таблицы).
Rst7
Цитата
Уже старо


О_о Сильное заявление. Ну да ладно.

Цитата
и плохо с точки зрения визуализации данных.


Ну для целей обучения я бы использовал реализацию алгоритмов на Си (или плюсы по желанию) и визуализацию данных при помощи GnuPlot.

Цитата
хорошо, но дорого. Хочется увидеть язык программирования, который легко читается и хорошо отражает алгоритм работы, имеет мощные средства визуализации


Ну возьмите банальный Excel. И на VBA делайте Ваши алгоритмы. Правда легкости чтения и хорошего отражения алгоритмов обещать не могу.
haker_fox
Цитата(PhX @ Mar 1 2009, 20:42) *
Паскаль? С?... Уже старо

Может быть Вам подойдет GNU C++? Бесплатно и не старо.
ukpyr
Python - текст хорошо структурируется благодаря отступам, можно писать в императивном, ООП, функциональном стиле, скорость написания возрастает по ср. с С,С++,Java в несколько раз, объем прогр.уменьшается.
для мат., графики есть SciPy, MatPlotLib, Gnuplot.py, PyX/Metapost, есть интеграция с многими мат.пакетами (Octave, Sage, R, Maxima), есть биндинги для всех GUI-библиотек - PyGTK, PyQT4, wxPython, PyFLTK.
PhX
Цитата(ukpyr @ Mar 1 2009, 19:19) *
Python - текст хорошо структурируется благодаря отступам, можно писать в императивном, ООП, функциональном стиле, скорость написания возрастает по ср. с С,С++,Java в несколько раз, объем прогр.уменьшается.
для мат., графики есть SciPy, MatPlotLib, Gnuplot.py, PyX/Metapost, есть интеграция с многими мат.пакетами (Octave, Sage, R, Maxima), есть биндинги для всех GUI-библиотек - PyGTK, PyQT4, wxPython, PyFLTK.

Да, склоняюсь именно к этому варианту. Подскажите, пожалуйста, ресурс откуда можно быстро начать.
cioma
www.python.org wink.gif

Я, конечно, тоже за питона, но есть вопрос - Вы будете читать курс кому-то (например, студентам)? Если да, то лучше использовать язык, знакомый аудитории.
PhX
Цитата(cioma @ Mar 1 2009, 22:00) *
Если да, то лучше использовать язык, знакомый аудитории.

Да, но эти студенты похоже еще не испорчены конкретным языком программирования. Ладно, попробую приручить эту змеюку.
cioma
Вот Вам тогда правильная книжка по нему: http://oreilly.com/catalog/9780596513986/
Ну и раз начинать приручать будете с нуля, то лучше сразу с версии 3.x (между 2.x и 3.x есть несколько заметных различий)
ukpyr
Готовится новая книга по 3.0:
http://bitbucket.org/BruceEckel/python-3-p...dioms/overview/
Andy Great
Внесу 5коп. Lua - тоже хороший язык, легко изучается, в наборе Lua for Windows есть и графика и т.д.
ukpyr
Цитата
Внесу 5коп. Lua - тоже хороший язык, легко изучается, в наборе Lua for Windows есть и графика и т.д.
подойдет разве что для узкого круга задач, напр. скриптинга в больших программах. очень бедные встроенные возможности и библиотеки, напр. до сих пор проблемы с кодировками (как сделать обработку строк в UNICODE-32,UTF8,CP1251,KOI8 ?), работает только с плавающей точкой (как делать булеву арифметику ?), и многое другое.
DRUID3
Цитата(PhX @ Mar 1 2009, 14:42) *
Нелегкая занесла в сферу образования.
Предстоит читать теорию оптимизации инженерных решений. Информации по теме в Сети хватает. Однако встал вопрос, каким языком программирования пользоваться при практической реализации алгоритмов? Паскаль? С?... Уже старо и плохо с точки зрения визуализации данных. MathCad MatLab хорошо, но дорого. Хочется увидеть язык программирования, который легко читается и хорошо отражает алгоритм работы, имеет мощные средства визуализации (двумерные и трехмерные графики, таблицы).

хорош преподаватель смешивающий мягкое и теплое - biggrin.gif - визуализацию и C. blink.gif

Но, поскольку меня "мучИли" такие-же а деток все-таки "жальче" то дам совет - полнофункциональной альтернативой пакету MatLAB является пакет SciLAB (соответственно simulink - SciCOS). Он принципиально бесплатный, но вместе с этим абсолютно профессиональный - тестируется, обновляется, отлично документирован. Логика работы на нем совершенно такая же как и на "матлабе". Пакет кроссплатформеннен - и предстает в одинаковых ипостасиях как для Win так и для Lin. Вот только лучше с детства учиЦЦо хорошему. Кстати в свободно конвертирует .m скрипты, правда не для всех функций есть эквиваленты - немного придется ручками, но все-равно это помогает "приобщиться" ко всему богатству программ для матлаба "бродящему" по сети. А главное в сети море документации на русском.

Не стОит путать языки программирования (сам "скайлаб" нкаписан на C и Java) и интерпретаторы скриптов для визуализации и автоматической обработки научных данных... biggrin.gif
PhX
Цитата(DRUID3 @ Mar 2 2009, 21:54) *
хорош преподаватель смешивающий мягкое и теплое - biggrin.gif - визуализацию и C. blink.gif

Сарказм не понял. Кто теплый? Кто мягкий?...
За напоминание про SciLab большое спасибо. Похоже для данных задач мне нужно именно это.
Нашел хорошую книгу по данному пакету: http://linux.armd.ru/common/img/uploaded/f.../ScilabBook.pdf

Впредь буду аккуратней в обращении с теплыми и мягкими. biggrin.gif
andrew_b
Цитата(PhX @ Mar 3 2009, 07:21) *
За напоминание про SciLab большое спасибо. Похоже для данных задач мне нужно именно это.
Ещё посмотрите octave + gnuplot.
Andy Great
Цитата(ukpyr @ Mar 2 2009, 16:13) *
подойдет разве что для узкого круга задач, напр. скриптинга в больших программах.

Ну очень узкий круг... И что считать большими программами?
Цитата
очень бедные встроенные возможности и библиотеки,

Встроенные библиотеки - да. Внешние - нет. Я, сторонник простого подхода, не считаю, что в стандарт языка программирования должны включаться все библиотеки на все случаи жизни.
Цитата
напр. до сих пор проблемы с кодировками (как сделать обработку строк в UNICODE-32,UTF8,CP1251,KOI8 ?)

Одновременно в разных кодировках? Привести к одной. Или я не понял вопроса?
Цитата
работает только с плавающей точкой (как делать булеву арифметику ?), и многое другое.

С целыми тоже работает smile.gif Булева арифметика - через внешние библиотеки. Далеко не всем нужно манипулирование битами (мне, например, нужно smile.gif ). Плюс возможность подключать внешние DLL, программы на С и т.д.

Но это все обрамление. Сам же язык весьма впечатляет в части как заложенного потенциала, так и простоты его реализации.
leksa
Если будете выбирать между Scilab и Octave, то учтите, что под Octave проще адаптировать матлабовские скрипты, синтаксис идентичен, часть встроенных функций матлаба в octave реализовано с такими же параметрами (например функции lu, qr, eig, емнип).
Для Octave есть графические фронт-энды, например QtOctave, а также библиотеки функций Octave-forge (гуглом можно найти).
Если все же потребуется работа с классами, т.е. объектно-ориентированное программирование, я выбрал бы, имхо, python.
Кстати, хороший учебник по Python-у именно для полных новичков в программировании можно взять здесь
think python
Более раняя версия этой книги использовалась, например, в MIT в вводном курсе программирования, ряд материалов курса можно посмотреть здесь
MIT OpenCourseWare
haker_fox
Цитата(DRUID3 @ Mar 3 2009, 01:54) *
полнофункциональной альтернативой пакету MatLAB является пакет SciLAB (соответственно simulink - SciCOS).

Можно поинтересоваться, насколько полнофункциональной?
Просто есть же студенческая версия матлаба... бесплатная, вроде, почему бы ее не использовать?
leksa
Цитата(haker_fox @ Mar 9 2009, 17:59) *
Можно поинтересоваться, насколько полнофункциональной?
Просто есть же студенческая версия матлаба... бесплатная, вроде, почему бы ее не использовать?

ради интереса зашел я на mathworks.
Во-первых, этот student edition не бесплатный а 100 баксов причем в составе только вот это:
Includes MATLAB, Simulink, Control System Toolbox, Image Processing Toolbox, Optimization Toolbox, Signal Processing Blockset, Signal Processing Toolbox, Statistics Toolbox, Symbolic Math Toolbox
а за каждый другой тулбокс надо заплатить +60 баксов.
buy matlab
Во-вторых, там надо как-то доказать что ты студент (уж не знаю как).

В-третьих, матлаб уникален по количеству и наполнению своих тулбоксов, то есть библиотек функций.
Бесплатного заменителя всех его библиотек не существует.

В Octave даже не все функции самого Матлаба реализованы, про toolbox-ы я молчу, но зато "free as freedom!", как говорится.
Про SciLab не скажу, практически не работал с ним...
Panukov_ag
Попробуйте QT Creator в связке с MinGV.
_http://www.qtsoftware.com
DRUID3
Цитата(haker_fox @ Mar 9 2009, 16:59) *
Можно поинтересоваться, насколько полнофункциональной?
Просто есть же студенческая версия матлаба... бесплатная, вроде, почему бы ее не использовать?

biggrin.gif матлаб это по-любому темная сторона силы, Вам вот уже объяснили...
А насколько... ну, я так думаю, что на 17... biggrin.gif А если серьезно, то поясните, что Вам надо от MatLAB, а я Васм скажу чего нет в SciLAB.

P.S.: раз здесь приводят скриптовые языки как "хороший тон" в визуализации математических расчетов, но напомню что есть также C-компилятор позволяющий писать С-скрипты используя все многообразие различных библиотек этого языка - tcc....
haker_fox
Цитата(DRUID3 @ Mar 12 2009, 13:19) *
А если серьезно, то поясните, что Вам надо от MatLAB, а я Васм скажу чего нет в SciLAB.

Матлаб более распространен. В инете под него множество примеров, книг по нему, учебных пособий и тд и тп... Мне кажется, это очень значимо. Также различие в синтаксисе... это немаловажно. В общем я просто "побаиваюсь" уходить от стандарта, так сказать... Кто мне окажет поддержку, если я буду работать со SciLAB? С гнутым Си++ в этом плане попроще, т.к. Си++, что коммерческий, что бесплатный - он один.
PhX
Попытался поработать со SciLAB. Впечатления негативные. Очень неустойчивый сырой пакет.
MrYuran
Цитата(haker_fox @ Mar 13 2009, 04:37) *
Кто мне окажет поддержку, если я буду работать со SciLAB?

Сообщество, причём совершенно безвозбеддо!
haker_fox
Цитата(PhX @ Mar 13 2009, 19:48) *
Попытался поработать со SciLAB. Впечатления негативные. Очень неустойчивый сырой пакет.

Можно подробнее, что Вы пытались делать в этом пакете и какие негативные результаты получили?
А также, чем при моделировании пользуетесь?
PhX
Цитата(haker_fox @ Mar 13 2009, 19:00) *
Можно подробнее, что Вы пытались делать в этом пакете и какие негативные результаты получили?
А также, чем при моделировании пользуетесь?

Что понравилось:
1. Размер 90 Мб отлично помещаются на флэшке.
Что не понравилось:
1. Help. Ввожу поиск if комп цвиркает динамиками... Как нету ifа? Не может быть! Роюсь... Действительно есть. Так это я каждый оператор буду так искать? Ну уж нет!
2. SciLAb очень любит исчезать. Ввожу
Код
x = input("Введите число");

Просто исчезает и все. Возможно это баг windows версии не знаю. Причем бывает такое и на некоторых демо примерах. biggrin.gif

Вообщем, удачи всем, кто выбрал светлую сторону силы. biggrin.gif
FireFly
LabVIEW очень простой и наглядный язык програмирования
thermit
Можно попробовать www.jsoftware.com
Замечательные встроенные средства вычислений и визуализации. Все бесплатно для некоммерческого использования.
Недостатки - несколько непривычный синтаксис.
DRUID3
Цитата(PhX @ Mar 13 2009, 21:55) *
Что понравилось:
1. Размер 90 Мб отлично помещаются на флэшке.
Что не понравилось:
1. Help. Ввожу поиск if комп цвиркает динамиками... Как нету ifа? Не может быть! Роюсь... Действительно есть. Так это я каждый оператор буду так искать? Ну уж нет!
2. SciLAb очень любит исчезать. Ввожу
Код
x = input("Введите число");

Просто исчезает и все. Возможно это баг windows версии не знаю. Причем бывает такое и на некоторых демо примерах. biggrin.gif

Вообщем, удачи всем, кто выбрал светлую сторону силы. biggrin.gif


Бред и антиреклама...
visual_wind
Druid3, я тоже как-то пробовал Scilab/Scicos, а именно - в контексте моделирования силовых преобразователей частоты. Версия была 5.х, но одна из ранних (тогда 5-я только появилась). Конечно же, этот пакет ввиду его абсолютной бесплатности перспективен, но на тот момент его использование мною остановилось по следующим причинам:

1. Понятия не имею, какая оконная библиотека использовалась при написании Scicos, но выглядит весьма ограничено и работает весьма тормозово.

2. Тулбокс, аналогичный SimPowerBlockset, сделан на основе языка Modelica. Вот какой в этом смысл? В тулбоксе не было моделей двигателей (никаких). Для создания собственной модели ее необходимо писать именно на этом языке и компилировать отдельным modelica-компилером. Только вот беда, хз, какого стандарта он придерживается. Те modelica-модели двигателей, что я нашел в инете, встроенный компилер компилить отказывался.

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

4. Custom C-function, которые я очень часто использую в Sumulink во избежание лишнего оверхеда, в Scicos имеют значительно меньше возможностей (уже точно и не припомню, чего мне не хватало, но впечатление осталось устойчивое).

5. Собственноручно написанные компоненты с множественными настройками работают медленнее, чем в Simulink, ввиду отсутствия аналога симулинковских tlc-скриптов.

Итог. Scilab/Scicos можно использовать разве что для самых что ни есть базовых вещей и никак для разработки даже средней сложности, то есть его перспективность на данный момент чрезвычайно мала. Если проводить аналогию, то OpenOffice несопоставимо лучше заменяет M$O, а Линукс - Винды , чем Scilab/Scicos заменяет Matlab/Simulink. Так какой смысл студентам его учить на данном этапе?

И еще. Насколько я понимаю, перспективы развития того и ли иного фри-проекта в первую очередь зависят от количества разработчиков со всего мира, которые в нем участвуют. В случае Scilab мы имеем ограничение, связанное с языком, на котором он написан. Конечно же я дремуч, но Druid3, скажи честно, неужели ты когда-нибудь слышал о языке программирования Objective Caml до того, как поставил Scilab? В итоге, развитием Scilab занимаются, в основном, французы из университета Inria (так, кажется, правильно) и больше почти никто. Так что и перспективы достаточно туманны...
PhX
Цитата(DRUID3 @ Sep 7 2009, 16:18) *
Бред и антиреклама...

Ничуть. Исключительно личный опыт.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.