Наука — Школе |
Программисты не просто постоянно читают свои и чужие программы на бумаге и на экране монитора, они их тщательно исследуют символ за символом, проводя за этим занятием огромную часть своего рабочего времени. Систематическое использование отступов, следование определенным соглашениям по использованию пробелов, выбор шрифта, использование цвета и т.п. — все это настолько существенно облегчает работу при минимуме усилий, что не может считаться второстепенными факторами. Примерно треть человеческого мозга вовлечена в обработку зрительной информации — глупо "отключать" от мыслительного процесса эту треть.
Прежде всего отметим, что текстовый редактор Блэкбокса является весьма мощным:
Во-первых, его команды следуют стандартам MS Windows (использование Shfit+стрелки для выделения фрагмента текста, комбинации клавиш Ctrl+X, Ctrl+C, Ctrl+V для манипуляций с фрагментами текста, и т.д.).
Во-вторых, допускается произвольное количество отмен (Ctrl+Z или Правка --> Отменить), так что редактируемый документ всегда можно вернуть в то состояние, в котором он был на момент последнего выполнения команды Файлы --> Сохранить (Ctrl+S).
В-третьих, документы Блэкбокса являются составными.
В-четвертых, все средства редактора доступны из программ, написанных на Компонентном Паскале, т.е. сам Компонентный Паскаль играет роль полноценного и весьма эффективного макроязыка для редактора.
Отступы — важнейшее средство выявления структуры программы. |
Форматирование текста программ с помощью отступов — важнейший способ выявления структуры программ. См., например, простейшую программу, в которой имеется два уровня отступов: содержимое модуля сдвинуто на один отступ относительно открывающего (MODULE Привет;) и закрывающего (END Привет.) операторов, а тело процедуры (состоящее из одного оператора StdLog.String("Привет!")) сдвинуто еще на один отступ относительно "скобок" BEGIN и END. См. также другие примеры здесь.
Блэкбокс предоставляет два простых и удобных средства для управления отступами. (Предполагается, что отступы делаются с помощью табуляции (клавиша Tab), а не пробелами.)
Во-первых, если мы только что закончили печатать очередную строку и курсор стоит в конце строки, то нажатие клавиши Enter не только приведет к созданию новой строки, но и вставит в ее начале столько же символов табуляции, сколько их было в начале у предыдущей:
Замечание Давно признано, что рисование блок-схем — занятие бесполезное, и лучше всего использовать отступы для выявления структуры программы (см. об этом Дж. Фокс, Программное обеспечение и его разработка, Москва, Мир, 1985). На этом фоне странно выглядит как сохранение блок-схем в школьных программах программирования, так и явный недостаток внимания, уделяемого четкому оформлению программ с помощью отступов. |
На картинке переход курсора показан красной стрелкой.
Во-вторых, нередко возникает необходимость менять уровень отступа для группы строк (например, после того, как группа строк была вынесена во вновь создаваемую процедуру). Это удобно делать с помощью функциональных клавиш F11 и F12. Сначала с помощью мышки выделим нужные строки (достаточно кликнуть мышкой в любое место первой строки и, не отпуская кнопки, "потянуть" курсор мышки в любое место последней строки). После этого нажатие F11/F12 будет сдвигать выделенные строки влево/вправо на один отступ (в начале строк будет удаляться/вставляться один символ табуляции).
Хорошие соглашения по оформлению программ описаны в документации Блэкбокса (F1, Programming conventions), где даны примеры хорошего и плохого оформления отдельных элементов программ. Кроме того, можно поизучать тщательно написанные примеры программ в подсистеме Form (документы в папке Form\Mod\).
Блэкбокс использует шрифт Ариал по умолчанию во всех вновь создаваемых документах. Этот выбор обусловлен соображениями переносимости. На экране лучше смотрится, например, шрифт Verdana, особенно при малой величине букв (скажем, 8 пунктов — ведь на экране желательно уместить побольше текста, поэтому выбирают шрифт помельче). В школе при работе с небольшими программами можно предпочесть более крупный шрифт — например, 12 пунктов.
Чтобы поменять шрифт, используемый по умолчанию в текстовых документах Блэкбокса, нужно выполнить команду меню Правка --> Настройки..., после чего откроется примерно такой диалог, как показан в левой части картинки:
Клик по кнопке Шрифт по умолчанию... вызовет стандартный диалог операционной системы (показан справа). Выбрав шрифт и размер, кликнуть OK в обоих диалогах.
Полоску статуса в школьных условиях можно предпочесть "простую" — например, чтобы видеть полностью сообщения компилятора (их можно сделать более подробными, отредактировав файл Dev\Rsrc\Errors.odc).
При серьезной работе полоску статуса лучше выбрать двойную (как показано на левом диалоге). В левой половине Блэкбокс пишет сообщения компилятора и т.п., а в правой сообщает о размере памяти, распределенной под данные (динамические структуры данных, созданные загруженными модулями, например, для открытых документов, и т.п.).
Цвет — мощная помощь в разметке визуальной информации, но от излишней пестроты "рябит в глазах", что тоже не хорошо. В Компонентном Паскале — в отличие от менее продуманных языков — нет нужды выделять ключевые слова цветом, т.к. они пишутся большими буквами (см. об этом здесь). Это позволяет эффективно задействовать цвет для более полезных целей.
Например, удобно использовать цвет для новых, еще не проверенных вставок в программный текст. Можно определенным цветом выделять комментарии, и т.п. Хорошо выделять, скажем, красным цветом символы экспорта (звездочки и минусы после идентификаторов) в виду их большой важности (см. примеры).
Цвет (как и шрифт, размер, и т.п.) выделенного фрагмента текста легко менять командами меню (Атрибуты --> Красный и т.д.).
Кроме того, рекомендуется использовать курсив для комментариев, а жирным шрифтом выделять идентификаторы процедур в их заголовках, а также операторы RETURN и EXIT, т.к. последние могут передавать управление за пределы программных конструктов, внутри которых они находятся (см. примеры).
Предположим, Вы уже задали определенные атрибуты для некоторого фрагмента текста (цвет, шрифт, размер, курсив ...), и теперь хотите, чтобы другой фрагмент имел точно такие же атрибуты. Этого можно добиться стандартным способом (таким же, как, например, в MS Word): скопировать атрибуты одного фрагмента текста (Ctrl+Shift+C, или из меню Правка --> Копировать атрибуты), а затем выделить нужный фрагмент и применить к нему скопированные атрибуты (Ctrl+Shift+V или Правка --> Применить атрибуты). Можно повторять этот процесс, применяя скопированные атрибуты к другим фрагментам текста.
Наконец, можно открыть несколько окон на один и тот же документ (Окна --> Новое окно). Каждое окно может показывать свой фрагмент текста независимо от остальных окон. Однако следует помнить, что закрытие первичного окна (первого окна, в котором был показан документ) приводит к закрытию всех вторичных окон; это поведение отличается от некоторых других программ.
Наука — Школе |