Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.12.17;
Скачать: [xml.tar.bz2];

Вниз

Общедоступная среда и язык   Найти похожие ветки 

 
Думкин ©   (2006-11-23 06:35) [0]

Допустим вы пишите книгу имеющую отношение к физике, математике, экономике...
При этом вы пишите некоторые программы, которые иллюстрируют идеи, помогают решать поставленные задачи. По пути предлагаете новые задачи, которые можно решить используя программирование на современных ПК.
И прилагаете к книге диск с текстами программ и..?

На каком языке и какую среду программирования предлагать в этом случае наиболее кузяво и при этом в рамках законопослушания и себя и своих читателей?
Желательно, чтобы результат компиляции(интерпретации) работал достаточно быстро, при этом была наглядность - наличие графики и т.п.

Можно ограничится расписыванием алгоритма, но если все-таки не только им, но и так?


 
Ega23 ©   (2006-11-23 08:58) [1]

Java Script + HTML ?


 
Думкин ©   (2006-11-23 09:00) [2]


> Ega23 ©   (23.11.06 08:58) [1]

Допустим, моделируем поведение трех массивных тел в космосе. На предложенном это можно проиллюстрировать?


 
Ega23 ©   (2006-11-23 09:13) [3]

А что ещё, кроме цикла, надо для численных решений?

<OFFTOP> Дай книжку посмотреть, а?</OFFTOP>


 
Elen ©   (2006-11-23 09:19) [4]


> Допустим, моделируем поведение трех массивных тел в космосе.
> На предложенном это можно проиллюстрировать?

Мочему нет закатать это в swf и продемонстрировать. А swf можно сделать скажем в Flash или Maya


 
Александр Иванов ©   (2006-11-23 09:27) [5]

> [0] Думкин ©   (23.11.06 06:35)

А .NET не подходит? Компилятор - бесплатен, в Висту бдет встроен.


 
Anatoly Podgoretsky ©   (2006-11-23 09:28) [6]

> Думкин  (23.11.2006 06:35:00)  [0]

> На каком языке и какую среду программирования предлагать в этом случае наиболее кузяво и при этом в рамках законопослушания и себя и своих читателей?

Какие ОС


 
palva ©   (2006-11-23 09:57) [7]

Если не жалко усилий, то хорошо бы предоставить два варианта
VB .NET Express и Turbo Delphi
Если задачи чисто вычислительные, без графиков и кудрявого интерфеса, то хорош Borland С++ ver 5 бесплатный и делающий эффективные программы.


 
Ega23 ©   (2006-11-23 09:58) [8]


> Если не жалко усилий, то хорошо бы предоставить два варианта
> VB .NET Express и Turbo Delphi
> Если задачи чисто вычислительные, без графиков и кудрявого
> интерфеса, то хорош Borland С++ ver 5 бесплатный и делающий
> эффективные программы.


А Linux?


 
Чапаев ©   (2006-11-23 10:06) [9]

> Если задачи чисто вычислительные, без графиков и кудрявого
> интерфеса, то хорош Borland С++ ver 5
Неправда. В этой области Фортрану нет равных.


 
NeyroSpace ©   (2006-11-23 10:07) [10]

Script Pascal? Есть бесплатный вариант, с поддержкой классов.


 
palva ©   (2006-11-23 10:13) [11]


> А Linux?

Послать нафиг. ИМХО. Линукс не для читателей таких книг.


 
Ega23 ©   (2006-11-23 10:15) [12]


> Линукс не для читателей таких книг.

????????????????
Большинство известных мне пацанов, которые по физике-математике прибиваются и поступать в соответствующие ВУЗы собираются, как раз под Линуксом сидят. Заранее изучают.


 
Jeer ©   (2006-11-23 10:17) [13]

Почему не Java ?

Если же только реализация алгоритма - можно взглянуть в сторону alglib.source.
Реализация алгоритмов там приводится уже на 6-ти языках, в том числе псевдо.
Для паскалевских реализаций - freepascal.


 
Думкин ©   (2006-11-23 11:26) [14]

1. Книги нет. Вчера про криптографию читал и простые числа чуток. Вспомнил свои наработки по простым. Еще что-то вспомнилось. И подумалось: а если подобный материал замутить и с примерами программ. То что делать с этими примерами и на чем показывать, как самому что либо делать?

Если книга по языку программирования - то ясно. Если по ОС и т.п - то выбор тоже почти ясен.

А вот тут как? "Паскаль в применении к физике"? "Си в поисках наилучшего криптографирования"? "Демонстрация физических явлений в ПХП"?

Дельфи - проблемы с лицензионностью. Турбо Дельфи - большой и не все найти смогут, а на диск ложить...? ПХП и Перл - не то. И т.д. и т.п.
Вот и спросил.

Флеш не катит - сами делать должны. Пусть экспериментируют с оглядкой на примеры.


 
Думкин ©   (2006-11-23 11:30) [15]

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

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


 
Думкин ©   (2006-11-23 11:32) [16]


> Anatoly Podgoretsky ©   (23.11.06 09:28) [6]

Вот и это вопрос. На что ориентироваться тогда?


 
Ega23 ©   (2006-11-23 11:33) [17]


> Пусть экспериментируют с оглядкой на примеры.


Turbo Pascal?


 
Romkin ©   (2006-11-23 11:38) [18]

Питон. Если математика, физика и тд - именно Питон :)
Единственный недостаток - интерпретатор, но работает вроде быстро.
Куча библиотек.


 
Romkin ©   (2006-11-23 11:39) [19]

http://www.python.ru/


 
wicked ©   (2006-11-23 12:30) [20]

поддержу
> Jeer ©   (23.11.06 10:17) [13]
> Почему не Java ?

как это можно сделать на java, можно посмотреть здесь - http://mrl.nyu.edu/~perlin/
очень познавательно, имхо

и как бонус, если хочется на Питоне, то можно тогда использовать Jython :)


 
Jeer ©   (2006-11-23 12:47) [21]

Думкин ©   (23.11.06 11:30) [15]

А ты начни сразу с исследовательских проектов.
К тому времени, когда читающие начнут писать - вполне возможно, что эти языки и среды станут основными.
Для примера - язык Zennon  (наследник Pascal, Modula-2, Oberon,..)
www.zonnon.ethz.ch
Среда - Win + MVS 2005

Можно использовать новую ОС Bluebottle + Active Oberon - наследница Native Oberon.
http://bluebottle.ethz.ch/index.html

Исследовательский  центр в Цюрихе.
http://www.cs.inf.ethz.ch/gutknecht/


 
Vga ©   (2006-11-23 12:48) [22]

Java, Python - довольно хороший выбор, программы не зависят от ОС. Можно делать и на открытых компиляторах (GCC/MinGW, Free Pascal), с учетом кроссплатформенности. Пример последнего - Боресковские примеры к книгам по расширениям и шейдерам и примеры к статьям на сайте.


 
pasha_golub ©   (2006-11-23 13:08) [23]

В текст книги вставлять токмо алгоритм. На диске предлагать пару вариантов сорсов. Например, для FreePascal, BCC и т.д. Питон тоже можно. :)


 
Игорь Шевченко ©   (2006-11-23 13:10) [24]

На С, разумеется


 
Tab   (2006-11-23 13:19) [25]

MinGW + QT и то и другое GPL + есть и под винду и под линукс
легко досутпно в сети и не так уж и объемно


 
Anatoly Podgoretsky ©   (2006-11-23 13:21) [26]

> Думкин  (23.11.2006 11:32:16)  [16]

Без опоры на ОС - jscript/vbscript/php/perl - есть практически на всех ОС


 
euru ©   (2006-11-23 13:43) [27]

Если книга имеет прикладную направленность (напр., "Моделирование физических процессов"), то я предпочёл увидеть в ней описание алгоритмов на каком-нибудь псевдоязыке. Это позволит мне реализовать эти алгоритмы на любом удобном для меня и подходящем для их реализации реальном языке программирования. В конце книги в качестве приложения автор может привести собственные решения на предпочитаемом им языке программирования.


 
Jeer ©   (2006-11-23 13:50) [28]


> euru ©   (23.11.06 13:43) [27]


Так и сделано на alglib.source.ru.

Кроме того, была серия выпусков "Алгоритмы" под ред Агеева на основе алгоритмов, опубликованных в CACM, где реализация приводилась на Algol, предшественнике Pascal.


 
TUser ©   (2006-11-23 14:34) [29]

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

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


 
Eraser ©   (2006-11-23 14:44) [30]

экзотических языков не надо!
или C/C++ или Pascal.


 
TUser ©   (2006-11-23 14:49) [31]

> Eraser ©   (23.11.06 14:44) [30]

Почему? "Думкин. Brainfuck для физиков". Звучит :)


 
Alien1769 ©   (2006-11-23 14:51) [32]

Borland Pascal - самое простое и не требует много ресурсов.
К тому же есть и классы и объекты и полиморфизм.


 
Eraser ©   (2006-11-23 14:56) [33]

Еще, как вариант, в самой книге в виде примеров распечатывать не целиком весь листинг программ, а только отдельные функции, а на диске поставлять уже полноценные примеры на C/C++ или Delphi. Тому человеку, у которого нечем открыть, или который не знает, что такое MSVC++/Delphi ваша книга не нужна :)


 
Игорь Шевченко ©   (2006-11-23 16:27) [34]

Гораздо проще посмотреть, на чем написаны примеры в аналогичных книгах и не изобретать велосипедов


 
oldman ©   (2006-11-23 16:30) [35]


> Допустим вы пишите книгу имеющую отношение к физике, математике,
>  экономике...
> При этом вы пишите некоторые программы, которые иллюстрируют
> идеи,
> ...........
> На каком языке и какую среду программирования предлагать
>


На каком писал, тот и предлагаей.
А еще лучше предлагать не листинги программ, а алгоритмы решения. А уж читатель пусть включит разум.


 
Eraser ©   (2006-11-23 16:35) [36]

> [35] oldman ©   (23.11.06 16:30)


> А еще лучше предлагать не листинги программ, а алгоритмы
> решения

ну языки программирования на то и созданы, чтобы ими описывали алгоритмы :)


 
oldman ©   (2006-11-23 16:37) [37]


> Eraser ©   (23.11.06 16:35) [36]
> > [35] oldman ©   (23.11.06 16:30)
> ну языки программирования на то и созданы, чтобы ими описывали
> алгоритмы :)


улыбнуло...


 
Джо ©   (2006-11-23 16:42) [38]

> [36] Eraser ©   (23.11.06 16:35)
> ну языки программирования на то и созданы, чтобы ими описывали
> алгоритмы :)

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


 
Иксик ©   (2006-11-23 16:43) [39]

Не надо псевдоязыков!!


 
Джо ©   (2006-11-23 16:44) [40]

> [39] Иксик ©   (23.11.06 16:43)
> Не надо псевдоязыков!!

Присоединяюсь! :)


 
Anatoly Podgoretsky ©   (2006-11-23 16:46) [41]

> Джо  (23.11.2006 16:42:38)  [38]

Микрософт сейчас приводит примеры в MSDN по СОМ на VB и C#, С++ ушел куда следует, согласно генеральной линии.


 
Джо ©   (2006-11-23 16:48) [42]

> [41] Anatoly Podgoretsky ©   (23.11.06 16:46)
> > Джо  (23.11.2006 16:42:38)  [38]
>
> С++ ушел куда следует, согласно генеральной линии.

И скатертью дорога, счастливого пути ему! :)

---
По сабжу. Предлагаю использовать какой-нибудь диалог Паскаля. В качестве бесплатного компилятора — тот же FreePascal.


 
Джо ©   (2006-11-23 16:49) [43]

> какой-нибудь диалог

какой-нибудь диалект.


 
Иксик ©   (2006-11-23 16:51) [44]


> Джо ©   (23.11.06 16:44) [40]
> > [39] Иксик ©   (23.11.06 16:43)
> > Не надо псевдоязыков!!
>
> Присоединяюсь! :)

:)) Просто по опыту, так приятно, когда можно откомплировать и получить результат. Иногда только после этого появляется стимул копаться в исходниках :)

Среду желательно поставлять на CD с книгой, хорошо бы, чтобы язык был более-менее актуальный, так человек еще и навык полезный приобретет :))

Имхо, для таких вещей особенно хорош какой-нибудь паскаль, но вот с актуальностью тут не ясно.


 
ferr ©   (2006-11-23 16:52) [45]

> :)) Просто по опыту, так приятно, когда можно откомплировать
> и получить результат. Иногда только после этого появляется
> стимул копаться в исходниках :)
>
> Среду желательно поставлять на CD с книгой, хорошо бы, чтобы
> язык был более-менее актуальный, так человек еще и навык
> полезный приобретет :))

тогда java)


 
euru ©   (2006-11-23 17:13) [46]


> Джо ©   (23.11.06 16:42) [38]
> Зачем какой-то еще свой "псевдокод"
> придумывать, когда полно готовых языков для выражения этих
> алгоритмов? Просто выбрать язык с прозрачным и ясным синтаксисом
> и всё.
И какой, например, язык отвечает этому критерию?


 
Джо ©   (2006-11-23 17:17) [47]

> [46] euru ©   (23.11.06 17:13)
> И какой, например, язык отвечает этому критерию?

Например, Паскаль или Модула.


 
Джо ©   (2006-11-23 17:18) [48]

Или Оберон.


 
Jeer ©   (2006-11-23 17:21) [49]

+ Zennon :)


 
euru ©   (2006-11-23 17:22) [50]

А если я не знаю ни одного из этих языков? А, с другой стороны, например, отлично знаю, Фортран, Аду или тот же Ассемблер?


 
wal ©   (2006-11-23 17:24) [51]


> euru ©   (23.11.06 17:22)
> или тот же Ассемблер?
Каой именно? ;)


 
Jeer ©   (2006-11-23 17:24) [52]


> Ассемблер?


asm чего ?


> А если я не знаю ни одного из этих языков


они намного проще, чем F и A.


 
euru ©   (2006-11-23 17:34) [53]


> wal ©   (23.11.06 17:24) [51]
А без разницы. Допустим, я Ассемблеры для всех типов процессоров всех времён и народов знаю. А, например, с языками высокого уровня не дружу. :)

Да и у программистов С/С++, думаю, мнение о прозрачном и ясном языке будет отличаться.


 
Джо ©   (2006-11-23 17:53) [54]

> [50] euru ©   (23.11.06 17:22)
> А если я не знаю ни одного из этих языков? А, с другой стороны,
> например, отлично знаю, Фортран, Аду или тот же Ассемблер?

А если я, например, не знаю "псевдокода", который использует автор книги? И зачем мне его учить, с учетом того, что этот псевдоязык только автором этой книги и используется?


 
euru ©   (2006-11-23 18:07) [55]


> Джо ©   (23.11.06 17:53) [54]

Обычно в начале книги автор даёт описание применяемого им в книге псевдокода.
Для него достаточно определить только управляющие конструкции (ветвления, циклы, подпрограммы и их вызовы). Всё остальное оформить в виде текста и математических формул.


 
Джо ©   (2006-11-23 18:08) [56]

> [55] euru ©   (23.11.06 18:07)
>
> > Джо ©   (23.11.06 17:53) [54]
>
> Обычно в начале книги автор даёт описание применяемого им
> в книге псевдокода.

Ничто не мешает привести ему формальную грамматику виртовского Паскаля. Она крайне формализована и совсем невелика. А у Оберона — еще более формализована и еще меньше по объему :)


 
Anatoly Podgoretsky ©   (2006-11-23 18:51) [57]

> Джо  (23.11.2006 16:48:42)  [42]

> И скатертью дорога, счастливого пути ему! :)

Не знаю, но я обратил внимание, что в последних статьях C++ больше не фигурирует.


 
wicked ©   (2006-11-23 18:56) [58]

> Anatoly Podgoretsky ©   (23.11.06 18:51) [57]

> > Джо  (23.11.2006 16:48:42)  [42]
> > И скатертью дорога, счастливого пути ему! :)
> Не знаю, но я обратил внимание, что в последних статьях
> C++ больше не фигурирует.

он и раньше не сильно фигурировал... либо "сырой" C, либо VB


 
Anatoly Podgoretsky ©   (2006-11-23 19:08) [59]

> wicked  (23.11.2006 18:56:58)  [58]

> он и раньше не сильно фигурировал... либо "сырой" C,

Хорошо, пускай так "и сырой Си более не фигурирует."


 
oldman ©   (2006-11-23 19:18) [60]

Я себе представляю простейший алгоритм. Например "нахождение минимума значений из БД", реализованный на asm "для простоты".
Бедный юзер!!!
И после этого говорить, что "если компильнулось, появляется желание разбираться в коде"?

Да здравствует халява, будь она проклята!!!


 
programania ©   (2006-11-23 19:30) [61]

Лучше использовать самый простой и распространенный язык, не требующий
компиляторов, виртуальных машин, framework, flash, работающий во всех ОС.
Что может быть проще:

<html>
<body onload="bal()" bgcolor=#0000BB>
<script type="text/javascript">
var f=0,r1,r2,c;
function bal(){
 if (f==0) {
   resizeTo(screen.width,screen.height);
   c=screen.width/2-180;
   r1=screen.width/2-300;
   r2=screen.width/2-400;
 }
 b1.style.left=c+r1*Math.cos(f)*1.2;     b1.style.top=c+r1*Math.sin(f);
 b2.style.left=c+r2*Math.sin(f*0.7)*1.3; b2.style.top=c+r2*Math.cos(f*0.7);
 f=f+0.06;
 setTimeout("bal()",5);
}
</script>
</body>
<img id=b1 style="position:absolute" src="http://programania.com/f/b.gif">
<img id=b2 style="position:absolute" src="http://programania.com/f/b.gif" width=120 height=80>
</html>


 
oldman ©   (2006-11-23 19:32) [62]


> programania ©   (23.11.06 19:30) [61]


СпамераМазДай!!!!!!!!!!! :)))

Вот только не надо нам тута дешевых реклам.
"Что может быть проще?" Да что угодно!


 
iZEN ©   (2006-11-23 19:52) [63]


> Думкин ©   (23.11.06 06:35)
>
> Допустим вы пишите книгу имеющую отношение к физике, математике,
>  экономике...
> При этом вы пишите некоторые программы, которые иллюстрируют
> идеи, помогают решать поставленные задачи. По пути предлагаете
> новые задачи, которые можно решить используя программирование
> на современных ПК.
> И прилагаете к книге диск с текстами программ и..?


Всё зависит от парадигмы программирования алгоритмов.


> Думкин ©   (23.11.06 06:35)
>
> На каком языке и какую среду программирования предлагать
> в этом случае наиболее кузяво и при этом в рамках законопослушания
> и себя и своих читателей?

Для чисто процедурной парадигмы — Си (без плюсов!) или Паскаль (реализация во freepascal).
Если применяется ООП-парадигма, то, конечно же, Java, так как кроссплатформенна бинарно, не нужно мудрить с перекомпиляцией исходников.


> Думкин ©   (23.11.06 06:35)
> Желательно, чтобы результат компиляции(интерпретации) работал
> достаточно быстро, при этом была наглядность - наличие графики
> и т.п.


Куда уж быстрее?! Си, Паскаль и Java — компилируемые языки. Не скажу, насчёт отрисовок GDI или DirectDraw, используемых в Си и Паскаль, но отрисовки современной суббиблиотеки Java2D быстры как никогда, так как задействуется клиент-серверная архитектура совместно с системным DirectDraw — на ней весь Swing держится, а Java3D использует к.-с. вызовы DirectX (Windows) или OpenGL (Windows и *nix).


> Думкин ©   (23.11.06 06:35)
> Можно ограничится расписыванием алгоритма, но если все-таки
> не только им, но и так?

GCC для перекомпиляции исходников на Си есть в Linux и FreeBSD изначально, основная проблема написать правильный Makefile для утилиты сборки make. FreePascal тоже легко ставится из репозиториев (Linux) или портов (FreeBSD), либо скачивается отдельными дистрибутивами (кладутся на CD к книге).

JRE (по ~15МБ) для разных операционок тоже легко положить на диск. Если преследуется цель дать возможность изменять исходники и перекомпилировать их, то просто кладутся JDK для разных операционок.  Плюс библиотеки Java3D тоже. Автоматизировать пересборку примеров из исходников лучше всего с помощью Ant (ставится отдельно).


 
programania ©   (2006-11-23 20:40) [64]

>oldman
>Вот только не надо нам тута дешевых реклам.

А мне то зачем?

>"Что может быть проще?" Да что угодно

Угодно, например, delphi, сможете то же самое проще? или пустые слова?


 
Ne-Ld   (2006-11-23 21:16) [65]

Более менее серьезные алгоритмы надо давать в виде псведокода.
Читать n страниц листингов - пусть даже комментированных - больно мозг, очень больно. Пожалейте читателя. С алгоритмами\методами надо разбираться не по исходнику - а по теореме доказывающей его корректность, и считающей его сложность\устойчивость\...
p.s. А что за книжка будет? Интересно!


 
Alien1769 ©   (2006-11-23 21:47) [66]

Это только проект от Думкина :)


 
iZEN ©   (2006-11-23 21:56) [67]


> Ne-Ld   (23.11.06 21:16) [65]
>
> Более менее серьезные алгоритмы надо давать в виде псведокода.
>
> Читать n страниц листингов - пусть даже комментированных
> - больно мозг, очень больно. Пожалейте читателя. С алгоритмами\методами
> надо разбираться не по исходнику - а по теореме доказывающей
> его корректность, и считающей его сложность\устойчивость\.
> ..

Да ну :O

Осталось придумать теорему и доказать, что библиотеки Си, Паскаля и др. языков корректны. :)

(Юнит-тесты на что?)


 
Gero ©   (2006-11-23 22:14) [68]

> [14] Думкин ©   (23.11.06 11:26)
> Флеш не катит - сами делать должны

А как одно другому мешает?


 
Petr V. Abramov ©   (2006-11-23 22:15) [69]

на паскале или на бейсике, и без всяких классов. Алгоритм будет понятен всякому


 
Gero ©   (2006-11-23 22:21) [70]

> [69] Petr V. Abramov ©   (23.11.06 22:15)
> Алгоритм будет понятен всякому

...кто знаком с программированием.


 
Petr V. Abramov ©   (2006-11-23 22:23) [71]

> Gero ©   (23.11.06 22:21) [70]
а остальные примеры читать не будут.
словесное описание алгоритма должно быть все же.


 
Gero ©   (2006-11-23 22:25) [72]

> [71] Petr V. Abramov ©   (23.11.06 22:23)

Ты представляешь себе книжку по физике с алгоритмами на паскале?


 
Ne-Ld   (2006-11-23 22:36) [73]

2iZEN
его - говорилось об алгоритме, вы видимо не поняли.

> Осталось придумать теорему и доказать, что библиотеки Си,
>  Паскаля и др. языков корректны. :)


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

Хотя если книга -  сборник рецептов, то тогда, скорее всего надо давать рецепт, сразу на желаемом языке и все. Сомневаюсь, что у читателя будет время\желание разбираться со внутренним механизмом.


 
Petr V. Abramov ©   (2006-11-23 22:39) [74]

> Gero ©   (23.11.06 22:25) [72]
не могу, это хуже хуже квадратного трехчлена из известного анекдота, нету алгоритмов в физике.


 
Vga ©   (2006-11-23 23:05) [75]

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


 
Petr V. Abramov ©   (2006-11-23 23:11) [76]

> Псевдокод - и в самом деле хорошая вещь для приведения алгоритмов...
вот бейсик с паскалем за место псевдокода и сойдут отлично.


 
Vga ©   (2006-11-24 00:24) [77]

> [76] Petr V. Abramov ©   (23.11.06 23:11)

Угку. Только ТАКОЙ паскаль - не скомпилирует ни один компилер, кроме Homo Sapiens.


 
Горгер ©   (2006-11-24 00:30) [78]

Fortran или Java


 
euru ©   (2006-11-24 00:33) [79]

А вот интересно, как на Бейсике или Паскале какой-нибудь интеграл записать? Неужели вместо того чтобы сосредоточиться на концепции алгоритма, вы будете ещё в нём и численные методы вычисления интеграла описывать?

А потом читаешь на форуме удивления: откуда любители готового кода берутся?


 
Горгер ©   (2006-11-24 00:40) [80]

Если интегралы - тогда фортран, конечно


 
Горгер ©   (2006-11-24 00:40) [81]

Если интегралы - тогда фортран, конечно


 
Petr V. Abramov ©   (2006-11-24 00:41) [82]

> Только ТАКОЙ паскаль - не скомпилирует ни один компилер, кроме Homo Sapiens.
 А если у человека дойдут руки до скомпилировать, то он будет для себя знать в какой среде и  пятнице это сделать, и, если ему ИНТЕРЕСЕН алгоритм, на свой диалект перейдет.
 Ессно, людей, которые увидили алгоритм, и озадачились вопросом, аа как же и на чем вообще можно программировать, это не касается. Но, имхо, это и не читатели книги (в первом чтении, по кр. мере)


 
Vga ©   (2006-11-24 00:49) [83]

> [82] Petr V. Abramov ©   (24.11.06 00:41)

Псевдокод понятнее при условии незнания языка, это раз. Два - и это главное - в нем записывается одним предложением то, что непосредственно к задаче отношения не имеет, однако на языке программирования реализуется сотнями строк.


 
Vga ©   (2006-11-24 00:50) [84]

> [83] Vga ©   (24.11.06 00:49)

Кроме того, я упоминал еще и реализацию. Не нравится псевдокод - можно посмотреть код. И скомпилить.


 
Petr V. Abramov ©   (2006-11-24 01:09) [85]

да чем это самый "псевдокод" от бейсика с паскалём принципиально отличается-то?


 
Petr V. Abramov ©   (2006-11-24 01:23) [86]

1.
Ежели Хэ больше Зэ тогда
 иди на запад
а если нет
 иди на восток
а если все не фигня
 сиди и не рыпайся

2.
if x > z then
 GoWest
else
 if x < z then
   Go GoEarth
 else
   DoNothing
во втором варианте бкув меньше, смысл тот же


 
euru ©   (2006-11-24 01:34) [87]


> Petr V. Abramov ©   (24.11.06 01:09) [85]

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

В языке программирования основное внимание уделяется реализации алгоритма на этом языке. При этом могут быть задействованы особенности данного языка, что, в свою очередь, может затруднить портирование алгоритма на другой язык программирования (особенно если читатель не знаком с языком программирования, используемым в книге).


 
KilkennyCat ©   (2006-11-24 01:36) [88]

> [87] euru ©   (24.11.06 01:34)

согласен.
Книгу не обязательно программист читать может.


 
Думкин ©   (2006-11-24 06:31) [89]

Спасибо за подробное рассмотрение вопроса. Я думаю, это полезно многим присутствующим.

Многие верно уловили. что я просил. Речь идет о человеке, которому интересно не программирование как таковое. Компьютер инструмент помогающий в иллюстрации или решении задач. И хочется, чтобы по прочтении раздела, обратившись к диску он смог получать как предоставленные решения одной проблемы, так и ваяя свои. Без лазанья по инету, без необходимости похода в ближайший киоск за пиратским и не только и т.п.

Например, у Фоменко - того самого, в книге "Наглядная геометрия и топология" приводится такой пример. Точно не помню, по памяти. Рассматривается представление чисел в виде степенных сумм. Там есть ряд результатов начиная из глубины веков. Они стали исследовать этот вопрос выводя информацию в определенном виде на экран. Получились картинки, которые соответсвовали ранее доказанным теоремам. Увеличили параметры и на каком-то шаге получили другие картинки, на основании которых выдвинули гипотезу. Впоследствии она была доказана и получился новый мат. результат.
При этом Фоменко не приводит реализации на языке - только картинки в тексте. Но можно проверить - сделав реализацию самому по описанию. И было бы неплохо, если бы это уже было на прилагаемом диске и я спокойно мог перейти к рассмотрению вопроса "вживую", а далее изменив или доработав - двинуться дальше.

Очень многое описываемое воспринимается с трудом. Для иллюстрации используют картинки. Но время идет. И можно иллюстрировать иначе, и даже дать возможность самому двинуться в исследования.

Вот что было у TButton? Он создавал случайным образом систему частиц со случайными начальными характеристиками, которая взаимодействовала между собой гравитацией. Они кружились как Солнечная система. Но! Постепенно эта система съезжала с экрана. Дефект? На самом деле это была иллюстрация закона сохранения импульса. И съезжание можно было легко избежать. Это физика.

Или применение решета Эратосфена к поиску первого миллиарда простых чисел. На Дельфи я наваял это довольно быстро и работало соответсвующе. Многие ли из предложенного выше справятся с этим похоже?

Язык и среда не важны. Главное, чтобы он давал возможность влегкую переходить к наглядному. И главное, чтобы они были доступны и законны. Ряд предложенного выше этому не соответсвует.

Другие видимо соответсвуют. Спасибо.


 
Думкин ©   (2006-11-24 06:33) [90]

Да, печатать в книге листинги программ - считаю моветоном.


 
Иксик ©   (2006-11-24 09:00) [91]

Удалено модератором


 
wal ©   (2006-11-24 09:22) [92]


> [53] euru ©   (23.11.06 17:34)
> > wal ©   (23.11.06 17:24) [51]
> А без разницы. Допустим, я Ассемблеры для всех типов процессоров
> всех времён и народов знаю.

<offtop>
Смелое допущение. Ну тогда, допустим, ты мне расскажешь, что тут присходит:
LD HR16.00
OUT TR0
AND HR20.00
AND NOT 013.00
LD NOT HR00.01
LD 010.00
LD HR00.04
AND NOT 124.00
AND 015.00
OR LD
AND LD
LD NOT 124.00
LD HR00.03
AND 010.00
OR LD
AND LD
LD HR00.01
AND 014.00
LD NOT 124.00
OR HR00.03
AND LD
OR LD
AND LD
LD TR0
AND NOT HR20.00
LD TR0
AND 013.00
AND 137.00
LD NOT HR00.02
AND 010.00
LD HR00.02
AND 014.00
OR LD
AND LD
OR LD
KEEP 013.00

Жутко интересно
</offtop>


 
KilkennyCat ©   (2006-11-24 10:02) [93]

> Ну тогда, допустим, ты мне расскажешь, что тут присходит

Печаит кассового чека?


 
wal ©   (2006-11-24 10:26) [94]


> [93] KilkennyCat ©   (24.11.06 10:02)
Не угадал ;) Настолько полного ответа не нужно. Хотя бы откуда данные берутся, при каких условиях и куда попадают.


 
euru ©   (2006-11-24 10:46) [95]


> wal ©   (24.11.06 09:22) [92]

Ну, и к чему этот код? Какое отношение он имеет к теме?

Допустим, я рассказал. Что тогда?
А допустим, я не рассказал. Какой вывод следует?

P.S. Кстати, приведённый код - это как раз антипример целесообразности использования в обсуждаемых книгах конкретных языков программирования вместо описания алгоритма в виде псевдокода.


 
wal ©   (2006-11-24 11:05) [96]


> [95] euru ©   (24.11.06 10:46)
> Ну, и к чему этот код? Какое отношение он имеет к теме?

Какое отношение к теме я указал в псевдотэгах

> Допустим, я рассказал. Что тогда?

Тогда можно допустить что ЭТОТ ассемблер ты знаешь, но это еще не значит, что ты "Ассемблеры для всех типов процессоров всех времён и народов знаю"

> А допустим, я не рассказал. Какой вывод следует?

Вывод, что "Ассемблеры для всех типов процессоров всех времён и народов" ты не знаешь.

> Кстати, приведённый код - это как раз антипример целесообразности
> использования в обсуждаемых книгах конкретных языков программирования
> вместо описания алгоритма в виде псевдокода.

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


 
euru ©   (2006-11-24 12:25) [97]


> wal ©   (24.11.06 11:05) [96]

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

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


> Не каждый, кто слышал страшное слово "программирование",
>  может перевести псевдокод в набор инструкций.
Смотря что под псевдокодом понимать. Например, на alglib.source.ru псевдокодом обозвали некую придуманную помесь Алгола и Паскаля, которая, по мнению её авторов, я так понимаю, должна упростить понимание словесного описания алгоритма. Но если я не знаю ни эти языки, ни какие-либо другие языки высокого уровня, мне этот псевдокод будет ненамного полезен, чем код на том же Паскале.

Пример псевдокода.

Алгоритм решения квадратного уравнения.
Входные параметры: a, b, c - коэффициенты уравнения
Результат: x1, x2 - искомое решение уравнения

Вычислить детерминант:
                           2
                  D =  b   - 4ac

if D > 0
                 ___                    ___
          -b -V D             -b + V D
   x1 = ---------;   x2 = ---------
              2a                     2a


elseif D = 0
                  -b
   x1 = x2 = ----
                  2a


else
   Решения нет.
endif.  

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

Другой пример псевдокода.
Форматы представления налоговой и бухгалтерской отчетности в электронном виде. Версия 3.00
http://www.nalog.ru/document.php?id=8952&topic=nal_otch_300


 
wal ©   (2006-11-24 13:18) [98]


> [97] euru ©   (24.11.06 12:25)
> ....
> Пример псевдокода.
> Алгоритм решения квадратного уравнения.
> ....

Предлагаю дать этот алгоритм какому-нибудь специалисту в <cite>физике, математике, экономике</cite>, для того, чтобы он реализовал его на каком-либо ЯП. Опять же, если реализует - это еще не заначит, что реализует любой, а если не реализует - значит не любой сможет. Как следствие, до некоторой группы читателей не будет доведена часть информации, возможно существенная.


 
Ермак ©   (2006-11-24 13:27) [99]

Посмотрите среду BlackBox: blackbox.metasystems.ru. Бесплатна, в открытых исходниках. Язык - Компонентный Паскаль (Оберон-2). Промышленный продукт, глюков в 1.5-версии не выявлено, акромя русских кодировок, для которых уже год как выпущены полные патчи.
Для научного программирования и научной графики среда идеальна, многие европейские ученые ее обожают. В частности, на ней работают в Институте ядерной физики РАН и в Европейском центре ядерных исследований CERN.
Хотя на первый взгляд кажется, что под графику среда не заточена - на самом деле наоборот - охрененно мощная концепция составных документов, когда все что угодно, можно вкладывать во все, что угодно. Рюшечки и финтифлюшечки сейчас без WinApi не сделаешь, а вот деловая и научная графика - сколько угодно...


 
Думкин ©   (2006-11-24 13:29) [100]

> Ермак ©   (24.11.06 13:27) [99]

Богатым будете. По поводу Оберона вспоминал вас недавно. Посмотрим.


 
Ермак ©   (2006-11-24 13:31) [101]

Если заинтересуетесь и будут вопросы, на blackbox.metasystems.ru есть форум, а можно мне на мыло: ermakov [at] metasystems.ru.


 
Ермак ©   (2006-11-24 13:32) [102]

Ну надо же, в кои-то веки за несколько месяцев зашел на форум - и вовремя! :-) Пишите, если что, с удовольствием отвечу на любые вопросы...


 
Думкин ©   (2006-11-24 13:41) [103]

> Ермак ©   (24.11.06 13:32) [102]

Посмотрим. Уже качают оттуда.
У меня дома какой-то Оберон есть, но он не вставил - огрызок. Может с этим пойдет дело.


 
Думкин ©   (2006-11-24 13:42) [104]


> Ермак ©   (24.11.06 13:32) [102]

Да, вы книги смотрю пишите:

Физико-математический факультет ОГУ, Декада науки-2006
Сборник материалов секции-семинара
"Языки программирования и технологии "Оберон": перспективы для индустрии и образования"
Авторы: Ермаков И.Е., Темиргалеев Е.Э., Рюмшин Б.В.


 
euru ©   (2006-11-24 14:17) [105]


> wal ©   (24.11.06 13:18) [98]
>
> Предлагаю дать этот алгоритм какому-нибудь специалисту в
> <cite>физике, математике, экономике</cite>, для того, чтобы
> он реализовал его на каком-либо ЯП. Опять же, если реализует
> - это еще не заначит, что реализует любой, а если не реализует
> - значит не любой сможет.

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


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

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


 
wal ©   (2006-11-24 16:14) [106]


> [105] euru ©   (24.11.06 14:17)
> А я разве где-то утверждал, что алгоритм на псевдокоде будет
> понятен абсолютно всем специалистам?
Внимательно прочитай вопрос. Там русским по белому написано "Можно ограничится расписыванием алгоритма, но если все-таки не только им, но и так?"

> А уж как им воспользоваться (программу писать или на логарифмической
> линейке вычислять), это дело десятое.
Там же: "Желательно, чтобы результат компиляции(интерпретации) работал достаточно быстро, при этом была наглядность - наличие графики и т.п.". Не думаю, чтобы на логарифмической линейке возможно наглядно и быстро продемонстрировать "поведение трех массивных тел в космосе" ([2]).

> Мне интересно, в каком из этих алгоритмов "специалист в
> физике, математике, экономике" разберётся быстрее?
Я, кажется, уже говорил, что нужно словесное описание алгоритма, а листинг с комментариями. Любой (почти) специалист, если он владеет компьютером, в состоянии набить (взять с диска) предложенный листинг и ввести его в предлагаемую (на диске) среду программирования.
Предположим, мне приспичило написать книгу с примерами на этом асме, то я бы написал словами примерно следующее:
Решение квадратного уравнения производится по следующему алгоритму:
Сначала вычисляется дискриминант по формуле ...
Если дискриминант больше или равен нулю, то решения уравнения вычисляются по формулам ...
Если дискриминант меньше нуля, то уравнение не имеед решений.
Данный алгоритм не применим, если квадратное уравнение вырождено в линейное, то есть коэффициент a равен нулю.
Ниже приводится пример программы для решения квадратного уравнения
a заносится в dm0-1
b заносится в dm2-3
c заносится в dm4-5
Результаты в dm6-7 и dm8-9, результаты верные, если установлен 15.0
в ходе работы программы используются dm10-13, 14.0.

LD P_On   ;загрузить линию выполнения значением "истина"
OUT TR0   ;запомнить линию выполнения
/F DM0 DM0 DM12 ;a/a заносим в dm12-13
AND NOT P_ER  ;продолжить линию выполнения, если нет ошибок
OUT 14.00   ;запомнить состояние линии в флаге 14.00, в результате в 14.00 имеем "истина", если a не равно 0
LD TR0   ;восстановить линию выполнения
AND 14.00   ;продолжить линию выполнения, если a не равно нулю
OUT TR0    ;запомнить линию выполнения
*F DM2 DM2 DM10 ;b*b заносим в dm10-11
FLT #4 DM12  ;заносим 4 в dm12-13
*F DM12 DM0 DM12 ;dm12 умножаем на a
*F DM12 DM4 DM12 ;dm12 умножаем на c, в результате в dm12-13 имеем 4*a*c
-F DM10 DM12 DM10 ;вычитаем из dm10 dm12, в результате в dm10-11 имеем дискриминант b*b-4*a*c
SQRT DM10 DM10  ;вычисляем квадратный корень из дискриминанта
AND NOT P_ER  ;продолжить линию выполнения, если нет ошибок
OUT 15.00   ;запомнить состояние линии в флаге 15.00, в результате в 15.00 имеем "истина", если дискриминант вычислен, иначе "ложь"
LD TR0   ;восстановить линию выполнения
AND 15.00   ;продолжить линию выполнения, если дискриминант вычислен
FLT #2 DM12  ;заносим 2 в dm12-13
*F DM12 DM0 DM12 ;dm12 умножаем на a, в результате в dm12-13 имеем 2*a
FLT #0 DM6  ;заносим 0 в dm6
-F DM6 DM2 DM6 ;вычитаем из dm6 b, в результате в dm6-7 имеем -b
+F DM6 DM10 DM6 ;прибавляем к dm6 корень дискриминанта
/F DM6 DM12 DM6 ;делим dm6 на 2*a, в результате в dm6-7 имеем первое решение
FLT #0 8  ;заносим 0 в dm8
-F DM8 DM2 DM8 ;вычитаем из dm8 b, в результате в dm8-9 имеем -b
-F DM8 DM10 DM8 ;вычитаем из dm8 корень дискриминанта
/F DM8 DM12 DM8 ;делим dm8 на 2*a, в результате в dm8-9 имеем второе решение


 
euru ©   (2006-11-24 18:08) [107]


> wal ©   (24.11.06 16:14) [106]
</>

> Внимательно прочитай вопрос. Там русским по белому написано
> "Можно ограничится расписыванием алгоритма, но если все-
> таки не только им, но и так?"
Если не ограничиваться словесным описанием алгоритма, то это ещё не означает, что нужно присать на некотором языке программирования.


> Там же: "Желательно, чтобы результат компиляции(интерпретации)
> работал достаточно быстро, при этом была наглядность - наличие
> графики и т.п.". Не думаю, чтобы на логарифмической линейке
> возможно наглядно и быстро продемонстрировать "поведение
> трех массивных тел в космосе" ([2]).
Во-первых, я не отрицал необязательнось наличия исходных текстов. Но, как я писал выше, это в конце книги в качестве бонуса.
А про логарифмическую линейку не согласен. В своё время я с помощью тетради в клетку и калькулятора моделировал движение небесных тел. Вряд бы мне помог такой ассемблерный листинг, если бы не было словесного описания с математическими формулами.


 
kaif ©   (2006-11-24 18:11) [108]

Я бы писал все примеры сразу на двух языках:

C++ и Object Pascal

Я так понимаю, что быстродействие существенно?

И еще указал бы, что приведенный код может быть свободно использован. Ну или же указал бы, что код может быть использован при условии ссылки на автора. Или что вообще не может быть использован иначе, чем для ознакомления. Одним словом тщательно оговорил бы этот момент, чтобы люди знали, с чем имеют дело.

ИМХО, все, кого интересуют подобные вещи, хотя бы С знают или могут освоить в нужном объеме.

Важно тщательно указать, как откомпилировать и запустить любой пример  (небольшая инструкция в начале книги)

Я бы так сделал.
C++ придаст универсальность и переносимость кода, а Object Pascal создаст дружественность для тех читателей, которые знают или любят Delphi.


 
Думкин ©   (2006-11-25 06:44) [109]

> kaif ©   (24.11.06 18:11) [108]

Тут одна деталь - Дельфи, по честному, денег стоит. Если этот момент опускать - то вопрос и не возник бы.
Если Турбо Дельфи - то его качать или дополнительно искать надо, и потом еще регистрироваться на сайте.

Сейчас, смотрю БлекБокс. Пока мнение не составил полное.


 
Джо ©   (2006-11-25 06:45) [110]

> [109] Думкин ©   (25.11.06 06:44)
> > kaif ©   (24.11.06 18:11) [108]
>
> Тут одна деталь - Дельфи, по честному, денег стоит. Если
> этот момент опускать - то вопрос и не возник бы.
> Если Турбо Дельфи - то его качать или дополнительно искать
> надо, и потом еще регистрироваться на сайте.

FreePascal! (К тому же — кросспалформен, зараза!)
;)


 
Думкин ©   (2006-11-25 06:52) [111]


> Джо ©   (25.11.06 06:45) [110]

Да, предложено несколько вариантов. :)


 
Sergey Masloff   (2006-11-25 07:46) [112]

kaif ©   (24.11.06 18:11) [108]
>Я бы так сделал.
>C++ придаст универсальность и переносимость кода,
щаз. Пробовал переносить между компиляторамицепепешный код? Извини но скорее всего нет если пишешь про переносимость.

По сабжу - java, с (без плюсов), Free Pascal - нормально
Oberon - тоже наверное нормально но это секта ;-))) просто очень многие не станут устанавливать. Комьюнити по сравнению с верхней тройкой мизерное со всеми вытекающими
Delphi С++ C# имхо совсем не годится.


 
Vga ©   (2006-11-25 10:49) [113]

> [112] Sergey Masloff   (25.11.06 07:46)

Вполне реализуемо...
Хотя дефайнов и настроек в конфигам действительно изрядно... А главное, все это наде тестить минимум в 2-3 компиляторах (минимум - MSVC, GCC, MinGW).


 
Vga ©   (2006-11-25 10:50) [114]

> [109] Думкин ©   (25.11.06 06:44)

БлэкБокс - очень интересная штука... Взглянуть стоит...
А вот здесь http://www.zinnamturm.de - есть изрядно компонентов под него, в том числе архиватор PAC.


 
Sergey Masloff   (2006-11-25 10:57) [115]

Vga ©   (25.11.06 10:49) [113]
Я не говорю что нереализуемо. Я говорю что в книге это будет смотреться просто глупо. Или не будет компилироваться или там будет не код а лапша и все равно никто не даст гарантии что на каком-нибудь Borland C v3 все скомпилируется. Согласись что на C а тем более java гораздо легче достичь цели.


 
Vga ©   (2006-11-25 11:18) [116]

> [115] Sergey Masloff   (25.11.06 10:57)

Нет, в книге будет один вариант кода. Дефайны обычно все оказываются в начале, а в книге приводят только основной код. Весь мусор, необходимый для компиляции - только в примерах на диске. В принципе, у Борескова все замечательно компилится в обоих осях, а код в статьях твиков под компилеры не содержит. Да и в самих примерах тоже редко.
Вообще, можно и так писать, что твиков вообще не понадобится, не тот тут случай, когда без них не обойтись, ИМХО. Если использовать GCC+Qt(если надо GUI), то еще и о makefile"ах нету заботы, qmake неплохо их из проекта генерит. А синтаксис проекта куда проще.


 
Ермак ©   (2006-11-25 14:54) [117]

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


 
Vga ©   (2006-11-25 15:02) [118]

> [117] Ермак ©   (25.11.06 14:54)

Да, как раз это в среде BlackBox прикольно. Для библиотек с http://www.zinnamturm.de/ типично наличие файла <component_subdirectory>\Docu\[subcomponent_name]-Quick-Start.odc, где расписана установка компонента вперемешку с кнопочками - читаешь, нажимаешь нужные кнопочки, при необходимости вписываешь строчки в конфигурационные файлы (на которые к тому же гиперссылки есть в тексте) и готово. Можно прямо в документ вписывать код и исполнять его оттуда.


 
Eraser ©   (2006-11-25 15:17) [119]

> [89] Думкин ©   (24.11.06 06:31)


> Без лазанья по инету, без необходимости похода в ближайший
> киоск за пиратским и не только и т.п.

мы живем в России, на вскидку 90% (а то и больше) читателей книги или уже сбегали в киоск за "лицензионной" версией IDE или сбегают. поэтому лично я наплевал бы на бесплатность IDE для примеров и написал бы все на BDS, тем более что сейчас есть действительно бесплатная Turbo Delphi.
А тому, кто не знаком с программированием или кому оно не интересно хоть 10 компилторов на диск запишите - ничего пробовать не станет, да и книгу подобной направленности вряд ли купит.

PS в крайнем случае можно поставлять компилятор паскаля, но тогда и примеры, которые будут распчатаны в книге, нужно будет писать с учетом особенностей такого старого копилятора.

PPS еще один минус полу-экзотических компиляторов/IDE - там черт ногу свернет, пока ему получится хоть что-то скомпилировать :)


 
Vga ©   (2006-11-25 15:20) [120]

> PPS еще один минус полу-экзотических компиляторов/IDE -
> там черт ногу свернет, пока ему получится хоть что-то скомпилировать
> :)

Вот как раз BlackBox этого лишен :)


 
Джо ©   (2006-11-25 15:32) [121]

> [120] Vga ©   (25.11.06 15:20)
> Вот как раз BlackBox этого лишен :)

Так уж и лишен ;) Я, было время, пока с ним хоть чуть-чуть смог разобраться — не один час потратил. Как-то оно в моем мозгу не укладывалось и все тут! :)


 
Vga ©   (2006-11-25 15:49) [122]

Разобраться - это одно, а вот трахаться с компилером С++, который сыпет мессагами об ошибках и отсутствующих библиотеках - это совсем другое...


 
kaif ©   (2006-11-25 15:56) [123]

Мне еще идея псевдокода нравится


 
Eraser ©   (2006-11-25 16:04) [124]

> [122] Vga ©   (25.11.06 15:49)

У меня MSVC++ не сыплет ошибками и мессагами почем зря :)


 
Ермак ©   (2006-11-25 16:31) [125]


> Так уж и лишен ;) Я, было время, пока с ним хоть чуть-чуть
> смог разобраться — не один час потратил. Как-то оно в моем
> мозгу не укладывалось и все тут! :)

Знакомая история - после классических IDE, где есть четкий цикл "написал-откомпилировал-слинковал-запустил-потестил-закрыл-обратно в среду", модель динамической модульности и интегрированной среды разработки/выполнения в мозгу не сразу укладывается... Однако те, кто привык работать с интерпретируемыми средами типа LISP, Smalltalk, Python и т.п., усваивают сразу... С тем лишь отличием, что Обероны - это 100%-компиляция.

По поводу "экзотики" скажу, что рекомендую смело потому, что полтора года работаю как на основном инструменте. Задачи были всякие - бизнес-ПО, научные, системные и даже мультимедийные энциклопедии (вот изданный продукт на нашем движке на базе Блэкбокс, формат составных документов - собственный блэкбоксовый) - http://djone.ru. Ни одного глюка в среде я не видел, прет как танк, при том, что запускаем модули в том же адресном пространстве, что и разрабатываем, но ведь язык безопасный...


 
Vga ©   (2006-11-25 21:16) [126]

> [124] Eraser ©   (25.11.06 16:04)

С сорцом повезло. Либо ты компилировал свои программы, а не чужие. Скачай StarDict, GTK2 (и все его зависимости) в сорцах и попробуй собрать. После этого думаю твое мнение изменится.

> [125] Ермак ©   (25.11.06 16:31)

Круто... Правда, он не 100% компилируемый, а типа VM с JIT компиляцией. Это как раз Вирта сотоварищи идея - при компиляции произвести только разборы и сохранить их результат как программу, а при запуске быстро без оптимизации сгенерировать код и запустить. Затем по кусочкам перегенерировать код, но уже с оптимизацией и подменить им быстро сгенерированный неоптимальный код. Разумеется, к собранным в среде независимым ехе это не относится, но сама среда AFAIK работает так.


 
Ермак ©   (2006-11-25 21:41) [127]

Уважаемый VGA, Вы правы относительно того, что "Это как раз Вирта сотоварищи идея - при компиляции произвести только разборы и сохранить их результат как программу, а при запуске быстро без оптимизации сгенерировать код и запустить." Эта идея была предложена в 1993 году Михаэлем Францем в ETH в диссертации.
Однако Блэкбоксовый кодовый файл модуля - это 100% x86 машинный код + дексприпторы типов + символьная информация (которая присутствует всегда и делает возможным метапрограммирование на этапе выполнения). Кстати, ББ-модули высокого уровня, в которых нет системных вызовов, могут запускаться на Линуксе без перекомпиляции. Правда, Линуксовая версия есть только в закрытом экспериментальном варианте и без ГУЯ.
(Уж внутреннее устройство среды я знаю вдоль и поперек, т.к. возглавляю российскую команду сопровождения среды. Есть даже собственный вариант Run-Time-подсистемы для среды - Active BlackBox, с поддержкой многопоточности, активных процедур, активных объектов и слабых указателей - WeakPointers).


 
TUser ©   (2006-11-25 22:09) [128]

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


 
Vga ©   (2006-11-25 22:13) [129]

> [127] Ермак ©   (25.11.06 21:41)

Чтож, поверю на слово, хотя со временем возможно проверю...
А вот ник перевирать не надо, даже в регистре.


 
Vga ©   (2006-11-25 22:19) [130]

> [129] Vga ©   (25.11.06 22:13)

Да, действительно, если скормить .ocf дизассемблеру, то он выдает похожий на реальный код, хотя конечно с мусором вместо адресов. Я ошибался насчет того, что там JIT.


 
Ермак ©   (2006-11-25 22:34) [131]


> А вот ник перевирать не надо, даже в регистре.

Прошу прощения, ни в коем случае не хотел обидеть!! Просто случайно вышло...


 
Vga ©   (2006-11-25 22:37) [132]

> [131] Ермак ©   (25.11.06 22:34)

Я не обиделся, а предупредил.


 
euru ©   (2006-11-26 03:07) [133]

Уважаемый Думкин.

На какую аудиторию будут рассчитаны эти книги?
Какова цель этих книг?

Допустим, имеется книга "Моделирование макроэкономических явлений с алгоритмами на языке программирования Smalltalk". Может также фигурировать любой другой язык: Delphi, С++, Java и т.д.

Кто действительно заинтересуется этой книгой? Из специалистов (в данном случае экономистов), я думаю, она будет интересна только тем, кто уже использовал либо планирует использовать в своей работе указанный язык программирования. Не думаю, что таких экономистов, использующих именно этот язык, окажется подавляющее большинство. Остальным экономистам, заинтересовавшимся именно алгоритмами, придётся отказаться от этой книги, ибо не каждый из них решится на изучение языка программирования, ради того чтобы понять алгоритмы.
Конечно, если в книге будет сильная теоретическая часть, то это также может привлечь к ней специалистов. Но они, скорее всего, этой теоретической частью и ограничатся, а все листинги автора оставят без внимания за их ненадобностью.
Из программистов такой книгой заинтересуются только те, чьи работа или хобби связаны с предметной областью книги. Но если они всю свою сознательную жизнь работали на "ясном и прозрачном" С++ или на "безопасной и кроссплатформенной" Джаве, многие ли из них захотят изучать алгоритмы, написанные на языке "кнопкокидателей и студентов" Дельфи? Тем более, что для этого ещё и соответствующее ПО придётся устанавливать.

Мне также непонятна цель, преследуемая такой книгой. Расширить возможности специалиста в своей области или сделать из него программиста на используемом в книге языке программирования? Ведь наверняка, ему, после того как он тупо введёт эти лмстинги с книги или скопирует с прилагаемого к ней диска и посмотрит результаты своего труда, захочется несколько модифицировать или расширить эти алгоритмы. И если он не знаком с данным языком программирования, то ему придётся сначала его изучить. Не факт, кстати, что в этом процессе будет положительный результат. А это может привести к антирекламе книги.

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


 
Думкин ©   (2006-11-26 06:21) [134]


> Eraser ©   (25.11.06 15:17) [119]

Я не хочу чтобы авторы способствовали дурному поведению читателей. Надо все-таки воспитывать лучшее, а не поддерживать дурное.

Про Паскаль - пока лишь Фри, Турбо - насколько знаю, попрежнему платен.

> Ермак ©   (25.11.06 14:54) [117]

Цель - не только демонстрация. Для этого есть и другие средства.

> euru ©   (26.11.06 03:07) [133]

Основная аудитория - школьники средних и старших классов. Для специалистов - и темы такой не надо, там все ясно.

Псевдокод - не тянет. Речь все-таки не об алгоритмах. А почти о батонокидательстве. Кинул, нажал, - удивился, сделал вывод. :)


 
Vga ©   (2006-11-27 00:38) [135]

> [134] Думкин ©   (26.11.06 06:21)

Турбо - есть бесплатная версия Explorer. Хотя для ее запуска надо зарегистрироваться у Бормана, как я понял.


 
Vga ©   (2006-11-27 02:07) [136]

> > euru ©   (26.11.06 03:07) [133]
>
> Основная аудитория - школьники средних и старших классов.
> Для специалистов - и темы такой не надо, там все ясно.
>
> Псевдокод - не тянет. Речь все-таки не об алгоритмах. А
> почти о батонокидательстве. Кинул, нажал, - удивился, сделал
> вывод. :)

Вот для этого BlackBox вроде как раз хорош


 
Vga ©   (2006-11-27 04:23) [137]

> [127] Ермак ©   (25.11.06 21:41)

Оффтоп: вы видимо неплохо знакомы с BB. Можете подсказать хорошие источники для его изучения, кроме его доков? Желательно на русском языке.


 
TUser ©   (2006-11-27 04:36) [138]

> Основная аудитория - школьники средних и старших классов.

Значит выбираем между Паскалем и Бейсиком. Для П код составить так, чтобы компилировался хоть в ТР, хоть в TD, хоть FreePascal"ем (да, вот такой я оптимист). Для Б - не знаю я чего там сейчас в ходу бесплатного.


 
Ермак ©   (2006-11-27 09:35) [139]


> Оффтоп: вы видимо неплохо знакомы с BB. Можете подсказать
> хорошие источники для его изучения, кроме его доков? Желательно
> на русском языке.

Все, что есть на русском языке, сейчас лежит на нашем сайте "BlackBox по-русски" (blackbox.metasystems.ru). Документация переведена на русский практически полностью. Для начала рекомендую самоучитель от Информатики-21 в разделе "Документация" - там же есть и англоязычная книжка для начинающих, там первых 4 главы переведено...
В разделе Образование есть подборка около 360 задачек по алгоритмике, решенных на Компонентном Паскале.
Плюс ветки форума, на сегодняшний день достаточно активного.
Поскольку сам сейчас преподаю в ОГУ спецкурс "Программное конструирование" на Блэкбоксе, то планирую в скором времени по своим конспектам лекций сделать книжку...


 
Polevi ©   (2006-11-27 10:08) [140]

Visual C# 2005 Express Edition, включает в себя .Net Framework 2.0 SDK
бесплатно скачивается с microsoft.com


 
Думкин ©   (2006-11-27 11:15) [141]


> Polevi ©   (27.11.06 10:08) [140]

Я же говорил про инет.


 
Polevi ©   (2006-11-27 12:17) [142]

да, извини, не заметил сразу


 
iZEN ©   (2006-11-27 13:45) [143]


> Polevi ©   (27.11.06 10:08) [140]
>
> Visual C# 2005 Express Edition, включает в себя .Net Framework
> 2.0 SDK
> бесплатно скачивается с microsoft.com


У меня FreeBSD, так что это мимо темы.


 
Eraser ©   (2006-11-27 17:26) [144]

> [134] Думкин ©   (26.11.06 06:21)


> Турбо - насколько знаю, попрежнему платен.

ну уж на это можно плевать смело :) в 100% наших вузов преподают на пиратских версиях TP/BP и ничего )


 
Eraser ©   (2006-11-27 17:29) [145]

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


 
Думкин ©   (2006-11-27 18:53) [146]


> Eraser ©   (27.11.06 17:26) [144]
> > [134] Думкин ©   (26.11.06 06:21)
>
>
> > Турбо - насколько знаю, попрежнему платен.
>
> ну уж на это можно плевать смело :)

Ты и плюй. Ветер в спину. Каждый делает выбор сам. У тебя свой. У меня свой.ю


 
Eraser ©   (2006-11-27 19:02) [147]

> [146] Думкин ©   (27.11.06 18:53)


> Каждый делает выбор сам. У тебя свой. У меня свой.ю

да не спорю, но не для того ли эта ветка, чтобы каждый высказал свое мнение.
естесственно выбор то за вами.


 
Думкин ©   (2006-11-27 19:08) [148]


> Eraser ©   (27.11.06 19:02) [147]

При этом я очертил рамки. Вы же уже который раз эти рамки пытаетесь сломать. Это я могу и без вас. Если бы вопрос не ставился мной в такой плоскости - то он бы и не возник. Как пользовать нелицензионное я и сам вас могу научить. Речь все-таки об ином.


 
Eraser ©   (2006-11-27 19:12) [149]

> [148] Думкин ©   (27.11.06 19:08)


> Вы же уже который раз эти рамки пытаетесь сломать.

на то они рамки :-)

> Если бы вопрос не ставился мной в такой плоскости - то он
> бы и не возник.

ферштейн.



Страницы: 1 2 3 4 вся ветка

Форум: "Прочее";
Текущий архив: 2006.12.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.94 MB
Время: 0.047 c
1-1162460096
Дмитрий Белькевич
2006-11-02 12:34
2006.12.17
Условная компиляция нескольких форм


1-1162229507
Morrison
2006-10-30 20:31
2006.12.17
Работа со SciZipFile. Как создать архив и запаковать туда файлы?


2-1164736539
Krab1234
2006-11-28 20:55
2006.12.17
Службы


6-1153812560
Kacnep
2006-07-25 11:29
2006.12.17
Динамическая привязка OnConnect в КОНСОЛЬНОМ приложении


15-1164707664
ocean
2006-11-28 12:54
2006.12.17
Желтая пресса





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский