Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Усилители интеллекта: теории, эксперименты, технологии


Усилители интеллекта: конструкторы алгоритмов 3

Уважаемые любители интеллектуальных программ!

Мы идем дальше в мир программирования. Первым шагом было освоение алгоритмического мышления с помощью ДРАКОНа. На очереди - HiAsm, способный быстро реализовать алгоритмическую идею без помощи профессионального программиста.

Это маленькое (14 Мб) чудо создал в 2003-2009 годах Dilma (при участии nesco, tsdmitri, iarspider). HiAsm доступен на сайте http://www.hiasm.com/ на условиях freeware; там же указаны кошельки для материальной поддержки проекта (из спасибо ведь шубу не сошьешь... ;0).

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

Но имя HiAsm имеет другое происхождение. В программировании Asm устойчиво ассоциируется с Ассемблером, языком машинных кодов, а приставка Hi означает высокий (как в модерновых Hi-Tech/Высокие технологии, Hi-End/Эксклюзивная аудиоаппаратура и Hi-Fi/Звук, точно воспроизводящий оригинальное звучание). Вот и получается "Высокий Ассемблер" (хайЭсм) - мост от интуитивно понятных блок-схем сразу к зауми кодинга.
Впрочем, к Ассемблеру HiAsm имеет отношение лишь в переносном смысле - он не какой-то новый язык программирования, а всего лишь оболочка над Паскалем, Delphi, Assembler, C++, Basic, PHP и прочими менее именитыми языками  программирования.

Владимир КладовHiAsm хорош тем, что не требует написания какого-либо кода, так как все программы в нём собираются из кубиков, как в конструкторе. Это значительно ускоряет творчество, вплоть до того, что несложные программы делаются за одну минуту. Да и размер программ в 5-15 раз меньше, чем в Delphi, за счет использования кодоэкономичных библиотек, разработанных новосибирским программистом Владимиром Кладовым.

Выбирая кубики и соединяя их связями, мы избегаем тарабарщины кодов, но у этой простоты есть обратная сторона, вызванная сложностью операций, инициируемых схемой:

  1. "Кубики" - в HiAsm их называют компонентами - устроены достаточно хитро, имеют много настроек - и нужно потратить некоторое время, чтобы научиться легко и быстро ими пользоваться. 

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

Для тех, кто готов учиться работать с компонентами, могу порекомендовать блог-курс Сергея Сергеева http://hi-asm.blogspot.com/  По состоянию на ноябрь 2009 в этом курсе насчитывалось 50 занятий, на которых демонстрировалось создание самых разных программ: от удобного таймера-будильника до граббера картинок, обходящего запреты на PrintScreen. Первые занятия этого курса продублированы в видеолекциях, наглядно демонстрирующих работу с компонентами.
Я и сам прошел этот курс - возникшие у меня при этом вопросы, а также ответы ведущего представлены в комментариях к занятиям блога. По ходу курса удалось реализовать некоторые идеи, вроде кнопки, случайно меняющей свой цвет при каждом нажатии, и медитативной программы "Зарядка души", о которой я расскажу ниже.
Кстати, когда будете скачивать дистрибутив HiAsm, то возьмите последнюю версию программы HiAsm 4.03.181 (скачать 14,3 Мб) - в новых версиях исправлены баги, не выявленные в ранних версиях, и доступны новые компоненты, которые ничем не мешают старым. (Тем, у кого стоит Vista или Windows 7, - не выбирайте для установки диск с операционной системой, а уж если этого не избежать, то в свойствах папки HiAsm дайте себе как пользователю права полного доступа, чтобы настройки программы сохранялись) 

Когда будете знакомиться с сайтом http://www.hiasm.com/ и программой, то неизбежно столкнетесь с рядом странностей, вызванных замкнутым характером сообщества программистов, сложившегося вокруг HiAsm. Имхо, дело в том, что этот инструмент программирования много лет разрабатывается энтузиастом-одиночкой, которому уже вполне достаточно сложившегося круга сподвижников; ни времени, ни сил на вопросы новичков, слетающихся на HiAsm, как пчелы на варенье, уже не хватает. Поэтому при формально открытом характере форума в регистрации на нем есть подводные камни. На сайте представлены две версии форума - новая и старая. Старая устроена понятнее, но регистрация там выполняется для виду и ни к чему не приводит. Только на новом форуме барьер регистрации будет пройден.
Другая странность, искупаемая доступностью и мощностью программы, некая недоработанность интерфейса: отдельные гиперссылки на стартовом окне не работают, в списках свойств компонентов иногда встречаются настройки, не имеющие силы. Вот как Dilma объяснился по поводу таких недоработок: "Очень многие элементы не являются вылизанными до совершенства. Их можно было доводить, и это было бы иное качество продукта. Но в этом случае мы не имели бы и половины сегодняшних фичей HiAsm. Более рациональным признана адресная доводка элементов, на основании опыта общения с пользователями. На форуме, например. Такой принцип функционирования, прежде всего, позволяет хоть как-то распараллелить процесс работы над пакетом. Кроме того, благодаря именно такому подходу не удалось сбыться мечтам противников визуального конструирования, которые утверждают, что на чистом энтузиазме такие проекты долго не протягивают. Это действительно так, если заниматься каждым компонентом и функцией среды подробно и досконально. Например, реализовывать все методы StrList, которые когда-либо могут понадобиться, и тестировать их...".
Впрочем, многие неясности и умолчания снимаются подробной Справкой к программе, окошками Советов, а также массой дополнительных материалов в виде схем HiAsm, уложенных в папки внутри директории программы (полазьте по папкам Elements, Help, Tutorial - там масса любопытного).

В рамках данного выпуска я ограничусь быстрым введением в HiAsm / пакет Windows - это позволит Вам сразу начать работать с программой, а все остальное можно почерпнуть из курса С.Сергеева, видеоуроков на сайте, справок и собственного опыта. (Чтобы не загромождать текст инструкциями, полезные советы по первым шагам в HiAsm Вы найдете в "подвале" выпуска)

Знакомимся с интерфейсом и его настройкой

Для начала взгляните на рабочее окно программы:

Общий вид HiAsm
 

Центральное поле, на котором размещены квадратики-компоненты, - это рабочее поле, служащее для сборки программы.
По бокам и снизу раскрыты инструментальные панели, наиболее востребованные при работе. По умолчанию они сворачиваются в закладки, но удобнее зафиксировать их в открытом виде, для чего достаточно открыть панель двойным щелчком мыши.
Левая панель "Элементы" содержит богатый набор компонентов, собранных в рубрики. Именно отсюда они попадают на рабочее поле.
Правая панель "Свойства" представляет настраиваемые свойства выделенного компонента и точки, которые можно добавить к этому компоненту (связи идут именно через точки).
Нижняя панель "Справка" выдает подсказки при наведении курсора мыши на компоненты и, что особенно полезно, на их точки.
Остальные панели, видимые в виде закладок: Отладка, Информация, hiChat, Каталог проектов, Дерево проекта, - носят вспомогательный характер и в работе почти не используются.
Сверху расположена Панель управления - самые важные кнопки там: Новый проект, Сохранить, Сохранить как, Редактор формы (показывает, как будет выглядеть окно программы) и Запустить (схема программы компилируется в exe-файл и запускается).

Как видите, интерфейс достаточно прост. Его дополняют контекстные меню.
Если щелкнуть правой кнопкой мыши на компоненте, то можно его скопировать, удалить, заменить на другой компонент или добавить комментарий.
Хитрее устроено меню для свободной области рабочего поля. Быстрый щелчок правой кнопкой мыши дает обычное контекстное меню, а если кнопку придержать, то появляется кружок с 4 секторами; перемещение курсора на сектор и отпуск кнопки запускает соответствующую команду. Общими для этих меню являются команды Вставить, Отменить предыдущее действие.   Среди отличающихся команд может пригодиться Выделить (все или группу элементов под линией). Остальные команды вряд ли пригодятся на первых порах - и их можно удалить через меню Сервис / Редактор команд. Там же можно настроить состав иконок на панели управления, контекстные меню связей и др.

Из общих настроек HiAsm: файлы проектов можно будет открывать щелчком мыши, если включить интеграцию (меню Сервис / Настройка / Интеграция).

Выбираем и настраиваем компоненты

Если Вы решите собрать программу, работающую под Windows, то HiAsm 4.02.179 предложит на выбор 564 компонента. В новейшей версии 4.03.181 к ним добавилось еще 42 (и исключены 5) - всего 601 компонент.
Козьма Прутков заметил как-то, что нельзя объять необъятного, а Тадеуш Костюшко в 1794 году сказал: "Нужно пожертвовать многим, чтобы спасти всё" - и с тех пор эту фразу включают во все сборники афоризмов. Вот и нам предстоит выбрать арсенал молодого бойца, а остальными компонентами на время пожертвовать. (Для знакомства с компонентами пригодятся справки: подробная вызывается клавишей F1 при нахождении курсора мыши на рабочем поле, тогда как  для выделенного компонента F1 покажет короткую справку о нем)

Мне для реализации алгоритмических идей на первых порах хватило дюжины компонентов - вот о них я Вам и расскажу (по порядку слева направо):

Панель "золотой дюжины"

Нумерация в программировании начинается с 0 - так что привыкайте... ;0)

0. Форма - компонент, который по умолчанию присутствует в проекте интерфейсного приложения для Windows (сборка таких программ - первая и главная задача HiAsm). Задает вид, расположение, размеры окна программы, его заголовок, цвет, характер реагирования на указатель мыши и т.п. параметры.

1. Надпись - помещает короткий текст в окно программы. (Из рубрики Интерфейс)

2. Поле ввода - создает поле для набора одной строки текста. (Интерфейс)

3. Кнопка с картинкой - позволяет пользователю запускать этапы программы. В отличие от обычной кнопки имеет широкий спектр настроек. (Интерфейс)

4. Расширенный редактор текста - обеспечивает набор, редактирование и вывод на экран многострочных текстов, в т.ч. цветных. (Интерфейс)

5. Сообщение - прерывает работу программы и показывает в отдельном окошке текст, требующий ответной реакции пользователя. (Контролы)

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

7. Случайное число - генератор случайных чисел. Вносит в работу программы фактор непредсказуемости. (Логика)

8. Цикл со счетчиком - организует циклы/этапы в работе пользователя с программой. (Логика)

9. Условный блок - переключает каналы воздействия в зависимости от сравнения поступающих чисел или строк. Позволяет оценивать промежуточные результаты.  (Логика)

10. Память - запоминает число или строку текста для передачи компонентам программы. Может нести функции как долговременной, так и оперативной памяти. (Инструменты)

11. Поток-данные - переносит данные из памяти на вход компонентов. (Инструменты)

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

Чаще других настраиваются свойства caption (заголовок, надпись), strings (список строк), data (данные), font (шрифт), color (цвет).   Последнее можно сделать динамичным, добавив точку к настраиваемому компоненту. И если Вы захотите, чтобы цвет менялся случайным образом, то в настройках компонента "Случайное число" измените диапазон чисел с исходного 100 на 16777215, т.к. именно в такой интервал укладывается вся палитра цветов (в заданный по умолчанию диапазон 0 - 100 попадают только темные тона). 

Собираем схему программы

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

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

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

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

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

Реализуем и развиваем алгоритм программы

Перейдем от слов к делу. Скопируйте этот код в буфер и вставьте на рабочее поле нового проекта HiAsm "Приложение Windows" - появится схема программы "Зарядка души" (той самой, что на снимке рабочего окна HiAsm выше). Нажав кнопку "Запустить" Панели управления, Вы увидите окно программы и сможете поднять себе настроение... ;0)

Add(BitBtn,12382016,238,210)
{
Left=80
Top=175
Caption="Ещё"
Point(doColor)
link(onClick,7448418:doFor,[])
}
Add(Message,8456892,350,245)
{
Message="А ты человек, ты сильный и смелый"
Type=1
Point(onCANCEL)
link(onMessage,12381616:doEvent1,[(387,251)(387,216)])
link(onCANCEL,16374204:doEvent1,[(412,258)(412,335)])
}
Add(MainForm,2426505,287,119)
{
Width=981
Height=650
Color=65535
Font=[MS Sans Serif,8,0,8388736,1]
Point(doColor)
}
Add(Message,4716745,420,245)
{
Message="Своими рукам судьбу свою сделай"
Type=1
Point(onCANCEL)
link(onMessage,5610237:doEvent1,[(457,251)(457,216)])
link(onCANCEL,16374204:doEvent2,[(463,319)(530,319)(530,342)])
}
Add(Message,15991853,490,245)
{
Message="Иди против ветра, на месте не стой"
Type=1
Point(onCANCEL)
link(onMessage,8200242:doEvent1,[(530,251)(530,216)])
link(onCANCEL,16374204:doEvent3,[(546,308)(566,308)(566,349)])
}
Add(Message,5895846,567,245)
{
Message="Пойми, не бывает дороги простой"
Type=1
Point(onCANCEL)
link(onMessage,2682361:doEvent4,[(611,251)(611,230)(583,230)(583,209)])
link(onCANCEL,16374204:doEvent4,[(604,258)(624,312)(624,356)])
}
Add(Label,6222629,364,119)
{
Left=120
Top=40
Width=160
Height=28
Color=536870911
Font=[Times New Roman,18,1,0,0]
Transparent=0
Caption="Зарядка души"
}
Add(Label,5269490,434,119)
{
Left=40
Top=100
Width=319
Height=20
Color=536870911
Font=[MS Sans Serif,10,0,0,1]
Transparent=0
Caption="Повторять до насыщения, но не меньше 7-ми раз"
}
Add(For,7448418,294,210)
{
Start=1
End=7
link(onEvent,8456892:doMessage,[(338,216)(338,251)])
}
Add(Random,15624622,651,210)
{
Max=16777215
link(onRandom,10762176:doEvent1,[(691,216)(691,188)])
}
Add(Label,8008474,504,119)
{
Left=186
Top=175
Width=119
Height=17
Color=536870911
Transparent=0
Caption="Цвет - состояние души"
}
Add(Hub,2682361,595,182)
{
InCount=4
link(onEvent1,15624622:doRandom,[(630,188)(630,216)])
}
Add(Hub,12381616,392,210)
{
link(onEvent1,2682361:doEvent1,[(435,188)])
link(onEvent2,4716745:doMessage,[(413,223)(413,251)])
}
Add(Hub,5610237,462,210)
{
link(onEvent2,15991853:doMessage,[(483,223)(483,251)])
}
Add(Hub,8200242,539,210)
{
link(onEvent1,2682361:doEvent3,[(574,216)(574,202)])
link(onEvent2,5895846:doMessage,[(560,223)(560,251)])
}
Add(Hub,10762176,700,182)
{
link(onEvent1,2426505:doColor,[(726,188)(726,170)(275,170)(275,153)])
link(onEvent2,12382016:doColor,[(722,195)(722,289)(226,289)(226,223)])
}
Add(Hub,16374204,644,329)
{
InCount=4
link(onEvent1,2426505:doClose,[(675,335)(675,389)(275,389)(198,388)(191,388)(191,146)])
}

Чтобы написать такой код вручную или прочесть и понять его, определенно, нужно сойти с ума... ;0) Но HiAsm автоматически переводит его в схему, причем не простую, а простейшую - Зарядка принадлежит именно к такой категории.
Алгоритм "Зарядки души" заключается в появлении серии окошек-сообщений с аффирмациями. Чтобы закрыть окошко и перейти к следующему, пользователь должен подтвердить свое согласие с предъявленным тезисом, нажав кнопку ОК.
На рисунке выше показана первая версия программы. Там для оживления экрана случайным образом менялся цвет стартовой кнопки. В той же версии, что Вы скопируете отсюда, - назовем ее для важности "финальной" ;0) - сделаны два существенных дополнения: 1) цвет теперь меняется у всего окна программы, 2) пользователь может покинуть программу в любой момент, а не только по окончании цикла из 7 повторений.
В разделе авторских прав обычно пишется, что автор запрещает вносить изменения в исходный код. Я же, напротив, предлагаю Вам ее в качестве материала для опытов. Вставьте вместо моих тезисов свои излюбленные аффирмации, поместите на окно программы картинки, развивайте алгоритм - все для того, чтобы "Зарядка души" нравилась Вам и Вашим близким...


Для интересующихся подробностями

1. Как настроить стартовое окно intro и работать с ним

При запуске HiAsm первое, что Вы видите - окно intro. Гиперссылки на нем срабатывают от щелчка мышкой при нажатой клавише Ctrl. Так Вы можете попасть на форум, страничку видеоуроков и начать новый проект.
Остальные 3 ссылки требуют пояснений и исправлений.
Ссылка на каталог готовых примеров программ - это просто адрес папки в директории, куда установлен HiAsm. Вы можете исследовать эту папку через Проводник Windows или, что проще, через вкладку "Каталог проектов", расположенную на правой границе окна программы.
Ссылки на проблемы антивирусов и компиляторов ведут на странички уже не существующего сайта. Двойной клик на них откроет окно редактора - исправьте начало адреса на www.hiasm.com - тогда эти странички будут доступны.
Если intro мешает Вам, то достаточно закрыть его окно и выходить из HiAsm при открытом проекте. Тогда повторный запуск программы откроет только этот проект. Чтобы intro снова появился, достаточно выйти из HiAsm, закрыв все проекты.

2. Улучшенная организация рабочего поля

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

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

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

При работе над проектами обычно пользуются небольшим набором компонентов. Их можно скопировать в отдельную панель, размещенную в удобном для Вас месте окна HiAsm (описание). Для этого на панели Элементы выберите нужный компонент и щелкните на нем правой кнопкой мыши. В появившемся контекстном меню выберите пункт Добавить в панель.  Новая панель упрощает выбор часто используемых компонентов, а основную панель Элементы можно свернуть в закладку, еще больше увеличив рабочее поле.

3. Универсальный набор базовых компонентов

Предложенный выше набор из 12 компонентов пригодится для начала работы с HiAsm / пакет Windows, если интересующие Вас программы нацелены на работу пользователя с текстами на экране. И отражает он лишь мой собственный опыт.
Однако есть другой, гораздо более универсальный набор. Примечательно, что самая первая версия HiAsm стартовала именно с него. Вот его перечень (в скобках указана рубрика, где компонент находится):
1. Форма (по умолчанию на рабочем поле нового проекта). 2. Надпись (Интерфейс). 3. Поле ввода (Интерфейс). 4. Кнопка (Интерфейс). 5. Редактор текста (Интерфейс). 6. Список строк (Строки). 7. Таймер (Контролы). 8. Сообщение (Контролы). 9. Проигрывание звука (Мультимедиа). 10. Математический парсер (Логика). 11. Цикл со счетчиком (Логика). 12. Условный блок (Логика). 13. Перебор массива (Массивы). 14. Поток-данные (Инструменты). 15. Событие из данных (Инструменты). 16. Память (Инструменты). 17. Выбор значения (Инструменты). 18. Вложенная схема (Инструменты).

4. Как работают точки (связи) компонента

Galkov описывает работу компонентов так:
Простейший способ объяснения у нас называется "моделью паровозиков". Допустим, от кнопки прилетело событие к левой точке компонента Math (Арифметика в рубрике Логика). Все, далее начинает функционировать именно Math. В процессе функционирования компонент может активизировать свои верхние/правые точки. Первым делом верхняя левая: читает значение с подсоединенного компонента. Пока читает, линия занята. Чтение закончено - начинается чтение по каналу следующей верхней точки. Последний актом активности элемента Math - вызов события onResult, правая точка. Кончилась активность Math - освободилась линия, которая его активизировала. Для данного компонента на этом все и кончается, но теоретически - активность линии есть следствие внешнего проявления активности некого другого компонента. И у всякого элемента есть свое "расписание" для активизации верхних/правых точек в ответ активирование какой-то из левых. Всегда работает только одно событие - никаких чудес. "Расписание" у HUB-а (узла, разветвителя связей) такое - сначала верхняя, потом ниже, потом еще ниже, и т.д.. "Потом" - означает после окончания активности предыдущей.
Что такое If_Else (Условный блок): активизируются верхние точки (сначала левая, потом правая, манера у нас такая - у всех элементов слева направо или сверху вниз, если в персональной справке на элемент не указано иного), и одна из правых по результатам сравнения. Естественно - после.
Что такое For (Цикл со счетчиком): активизируются верхние точки (сначала левая, потом правая), и далее - нужное количество раз правая onEvent. Тот же вышеупомянутый прикол про занятость - повтор не начнется пока не отработает ВСЯ алгоритмическая ветка, начинающаяся в onEvent. В отличие от ранее описанного, после окончания активности ветки, активизируется не "следующая в расписании элемента", а та же самая.
Ну и так далее, примерно в том же стиле... Вот собственно и вся наука, если по большому счету-то.
Наши наблюдения (5 лет) пока говорят об оптимальности восприятия схемы размером примерно 20-30 элементов...

5. Как собирать схемы

У пословицы "Нет худа без добра" есть не менее справедливый антипод - "Нет добра без худа". Вот и визуальное программирование несет в себе невидимые пни, о которые спотыкаются даже опытные программисты, не говоря уже о новичках: связи не тянутся, компоненты не слушаются поступающих команд, нужные свойства отсутствуют или не реагируют на настройки. Ситуация усугубляется тем, что отладка HiAsm не завершена и не может быть завершена в принципе - такую уж стратегию избрал Dilma. Наверное, это оправдано по ряду причин: ограниченности ресурсов у разработчика, быстрой эволюции программы, участия пользователей в апробации версий.
Чтобы меньше спотыкаться при сборке схем, есть надежный способ - идти от испытанных прототипов. Благо HiAsm оснащен богатой библиотекой схем. Каталог проектов доступен с закладки на правой границе окна. Двойной клик на выбранном проекте откроет его схему, а перемещение курсора мыши на закладку "Информация" внизу окна покажет описание проекта (хотя описание встречается не у всех проектов).
Для начала пригодится проект Demo (в папке Windows\Example) - показ работы многих компонентов из палитры Конструктора. Остальные проекты специализированы, и их приходится подбирать под конкретные задачи. Но и непрофильные проекты могут пригодиться - тем, как в них задействованы отдельные компоненты, как комплектуются контейнеры и т.п.

* * *

Под занавес - история о чудесах алгоритмического мышления:

Программист ставит себе на тумбочку перед сном два стакана.
Один с водой - на случай, если захочет ночью пить.
А второй пустой - на случай, если не захочет.

* * *

Вот и всё... Вопросы и замечания mailto:feod@narod.ru

До новых встреч!
Юлий Феодоритов
 


В избранное