OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 19 Апрель, 2024 05:42

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 123 ]  На страницу Пред.  1, 2, 3, 4, 5 ... 7  След.
Автор Сообщение
СообщениеДобавлено: Пятница, 03 Август, 2007 15:12 

Зарегистрирован: Пятница, 29 Июнь, 2007 12:16
Сообщения: 98
Речь идет не о контроле версий, а о автоматическом создании папок для проектов. По умолчаению считается, что первое слово в названии модуля - это и есть название проекта, но что если в проекте есть несколько подсисем? Например мне удобно, когда это самое первое слово описывает не директорию в общей папке, а поддиректорию в папке проекта.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Август, 2007 15:26 

Зарегистрирован: Среда, 01 Август, 2007 00:13
Сообщения: 162
Darksnake писал(а):
Речь идет не о контроле версий, а о автоматическом создании папок для проектов. По умолчаению считается, что первое слово в названии модуля - это и есть название проекта, но что если в проекте есть несколько подсисем?

Вот-вот... Система каталогов Blackbox определённо "содрана" с UNIX: это я про "расползание" проекта по разным папкам. Тут выхода два: либо уходить от схемы в стиле "каталог с DLL" и переделывать сам BlackBox и вводить понятие проекта (пусть в ущерб академической элегантности), либо добавлять что-то аналогичное RPM в LINUX. Это даже лучше - будет удобно обновлять библиотеки среды и проекта "Информатика-21"... И проект будет аналогом пакета... вот, даже среду переделывать не нужно :)...

К тому же саму систему RPM можно написать на Component Pascal. Вроде бы получилось даже "идеологически выдержанно"...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Август, 2007 15:39 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Пакеты в хорошо продуманном варианте - это было бы весьма гут...
Кроме того, давно уже видится, как это должно быть. Видится, да вот дело делается ох как не скоро :-)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 04 Август, 2007 12:36 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 778
Откуда: Москва
Darksnake писал(а):
в ББ есть команда Capitalize&Expand, которая позволяет не морочиться с ключевыми словами и автоматически создает формочки для основных структурных элементов(очень удобная штука).


:?: Как ее найти в BlackBox'е? Может, нужно установить какой-нибудь модуль?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 04 Август, 2007 12:46 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Это в пакете от Info21... Он встроен в школьную версию и МГУ-шную. Либо возьмите оттуда, либо, если не ошибаюсь, подсистема Info21 должна быть в коллекции Зинна.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 07 Август, 2007 10:18 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 778
Откуда: Москва
Сергей Прохоренко писал(а):
Илья Ермаков писал(а):
А что за построитель выражений в МС Аксесс? Просто я, например, не работал :-)


Это трудно описать словами - нужно попробовать. Скорость и простота разработки запросов в MS Access по сравнению с другими СУБД - просто сказочная. :roll: Разумеется, дело не только в "построителе выражений", но и в нем тоже.

В качестве иллюстрации привожу две ссылки (полезную и официальную):

Полезная: http://adm.jinr.ru/doc/access/page14.htm

Официальная: http://office.microsoft.com/ru-ru/access/HA101061751049.aspx#4

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


:?: Если я напишу ТЗ построителя кода (а не только выражений!) для BlackBox, предназначенного для обучения начинающих программистов и для ускорения написания кода, возьмется ли кто-нибудь его запрограммировать? (Я сам только начал осваивать BlackBox.)

:idea: Построитель будет состоять из следующих частей:
1) узкое боковое трехпанельное окно (левая панель с постоянными пунктами меню, правая - древовидный список, а верхняя - с управляющими кнопками, включая контекстную справку, и кнопками быстрого доступа),
2) временные объекты в тексте программы: подсказки, похожие на РФБН, и кнопки для дублирования, удаления или сохранения в тексте программы вставленных шаблонов кода или их частей.

Разумеется, условия такие:
- если ТЗ понравится
- программист не связан текстом ТЗ
- программа будет общедоступной


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 07 Август, 2007 12:00 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Можно попробовать, глядишь, кто-то возьмется... Либо курсовые будем давать... Либо... Производственная практика у 5 курса на носу, "негры", может, и будут :-)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 07 Август, 2007 15:53 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 778
Откуда: Москва
Илья Ермаков писал(а):
Можно попробовать, глядишь, кто-то возьмется... Либо курсовые будем давать... Либо... Производственная практика у 5 курса на носу, "негры", может, и будут :-)

OK. Скоро будет.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 07 Август, 2007 18:24 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 778
Откуда: Москва
Илья Ермаков писал(а):
Можно попробовать, глядишь, кто-то возьмется... Либо курсовые будем давать... Либо... Производственная практика у 5 курса на носу, "негры", может, и будут :-)


Не удалось приложить файл. Вставляю в сообщение:


ТЕХНИЧЕСКОЕ ЗАДАНИЕ
на разработку построителя кода для BlackBox


Построитель кода для BlackBox предназначен для обучения начинающих программистов, в том числе не имеющих опыта программирования на других языках программирования, и для быстрого написания правильного и отформатированного кода.
Построитель состоит из двух частей:
1) узкое боковое трехпанельное окно (левая панель с постоянными пунктами меню, правая - древовидный список, а верхняя - с управляющими кнопками и кнопками быстрого доступа),
2) временные объекты и служебные символы в тексте программы: подсказки, похожие на РФБН, и внедренные в текст программы кнопки управления вставленным шаблоном кода и его частями.

Постоянные пункты меню
Меню содержит следующие постоянные пункты меню, при выборе которых возникает древовидный список в правой панели:
 Константы (папки по блокам данного модуля, в которых описаны идентификаторы)
 Типы (папки по блокам данного модуля, в которых описаны идентификаторы)
 Переменные (папки по блокам данного модуля, в которых описаны идентификаторы)
 Процедуры (папки по блокам данного модуля, в которых описаны идентификаторы)
 Предопределенные процедуры (папки по назначению процедур)
 Библиотечные процедуры (папки по назначению процедур, процедуры должны быть предварительно классифицированы)
 Импорт (папки по импортированным модулям и блокам, в которых описаны идентификаторы)

Управляющие кнопки
Имеется по крайней мере следующая управляющая кнопка:
 Знак вопроса (при нажатии курсор меняет форму на знак вопроса, а при нажатии затем на другую кнопку или на идентификатор в древовидном списке всплывает окно со справкой по этой кнопке/идентификатору)

Кнопки быстрого доступа
При щелчке по кнопке быстрого доступа соответствующий шаблон кода вставляется в текст программы в положении курсора.
Имеется по крайней мере следующие кнопки быстрого доступа:
 Скобки, операции и отношения, сгруппированные по приоритету ( ) ~ * / DIV MOD & + - OR = # < <= > >= IN IS
 MODULE (соответствующий шаблон кода подробен настолько, насколько это возможно, и содержит, в том числе, части MODULE, IMPORT, CONST, TYPE, VAR, PROCEDURE, BEGIN, CLOSE, END)
 Оператор присваивания :=
 IF
 CASE
 WHILE
 REPEAT
 FOR
 LOOP
 WITH

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

Шаблоны кода
Шаблоны кода содержат все части составных операторов и других составных конструкций языка, включая необязательные, альтернативные или повторяющиеся, подсказки (например, «Выражение» – в этом месте текста программы надо вставить выражение) и кнопки управления шаблоном кода.
Для оформления шаблонов кода используются средства, аналогичные РФБН. Для выделения вставленных и неотредактированных частей шаблонов кода в тексте программы используется цветной шрифт, цвет которого выбирается пользователем (цвет по умолчанию задается программистом). Отредактированные части имеют черный цвет шрифта, кроме случаев, когда другой цвет автоматически устанавливается форматером.
При первом щелчке по подсказке она выделяется целиком, даже если подсказка состоит из нескольких слов.
Шаблоны идентификаторов должны иметь вид и формат идентификаторов, которые должны быть вставлены вместо шаблона, в соответствии с соглашениями по языку (имеется в виду использование строчных и прописных букв, составные имена, глаголы и существительные в качестве идентификаторов).

Кнопки управления шаблоном кода
Имеются по крайней мере следующие кнопки управления, вставляемые в текст программы перед шаблоном кода и его частями:
 «кисть руки с растопыренными пальцами» (выделить вставленный шаблон кода для его перетаскивания мышью, форматирования, копирования, вырезания, или удаления)
 «треугольная стрелка вниз» (развернуть список возможных значений для выбора нужного, например, для выбора типа объявляемой переменной)
 «два одинаковых прямоугольника» (дублировать шаблон кода – эта кнопка заменяет копирование и вставку)
 «галочка» (сохранить, если возможно, настроенный шаблон кода в тексте программы в окончательном виде – с необходимым форматированием, с удалением подсказок и кнопок управления шаблоном кода. Сохранение в окончательном виде может быть отложено на любой срок (например, месяц), пока не возникнет необходимость в компиляции)
 «зачеркивание крест накрест» (удалить вставленный шаблон кода)
 «знак вопроса» (во всплывающем окне отображается справка по вставленному шаблону кода или его части)
Вставляется столько разных кнопок управления, сколько необходимо и возможно для данного шаблона кода или его части.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 07 Август, 2007 22:39 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 778
Откуда: Москва
Илья Ермаков писал(а):
Можно попробовать, глядишь, кто-то возьмется... Либо курсовые будем давать... Либо... Производственная практика у 5 курса на носу, "негры", может, и будут :-)


А вообще мне идея "рабства" нравится. :D Два "раба" будут ваять построитель кода. Еще одному можно поручить создание "мастера" (wizard) создания исполнимых файлов, а четвертому - разработку форматера текста (отключаемая автоматическая цветная подсветка идентификаторов). :wink: А там можно добавить кросс-компилятор для микроконтроллеров, индикаторы, отображающие значения в реальном времени, веб-интерфейс BlackBox и т.д. Глядишь, BlackBox станет самой "крутой" IDE!

Кстати, забыл написать в ТЗ построителя кода использование dll-ек из всяких внешних библиотек и прочие интеграционные моменты (WinAPI?).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 08 Август, 2007 00:21 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Серьёзные вещи "в рабстве" - бесполезно :-)
Особенно с текущим уровнем студентов. Так, кое-что можно дать наваять - и то, ровно потому, что не требуется проработка программного интерфейса, а только конкретный пользовательский инструмент.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 08 Август, 2007 06:46 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 778
Откуда: Москва
Еще один забытый пункт в меню построителя кода BlackBox'а - "Последние использованные идентификаторы". Ускорять написание кода - так ускорять.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 08 Август, 2007 08:45 

Зарегистрирован: Пятница, 02 Декабрь, 2005 14:35
Сообщения: 210
Откуда: Россия, Томск
Сергей Прохоренко писал(а):

ТЕХНИЧЕСКОЕ ЗАДАНИЕ
на разработку построителя кода для BlackBox


Попробуем уточнить. Похоже, автор ТЗ еще недостаточно глубоко знаком с КП/ББ. Я буду ссылаться на школьную версию ББ.
Цитата:
 Константы (папки по блокам данного модуля, в которых описаны идентификаторы)...

Строго говоря, понятие блока в КП отсутствует. Константы, переменные и процедуры описываются либо в модулях, либо в процедурах, либо в новых типах. Соотв.пункты ТЗ надо переформулировать.
Цитата:
 Предопределенные процедуры (папки по назначению процедур)

Здесь просто дать гиперссылку на соответствующий раздел Сообщения о языке. Аналогично нужна гиперссылка на список основных типов КП и их диапазонов
Цитата:
 Библиотечные процедуры (папки по назначению процедур, процедуры должны быть предварительно классифицированы)

Большой вопрос. В ББ довольно много подсистем, находящихся в соответствующих папках. Процедуры разложены по модулям, коих может быть не один в подсистеме. Кроме того, всегда легко добавить новую подсистему(папку с модулями). Хотя есть "главная" подсистема System, модули/процедуры которой должный быть подключены к Построителю в первую очередь.
Однако есть готовый встроенный способ, во многих случаях достаточно удобный. Выделяете имя модуля или полное имя процедуры (т.е. вместе с именем модуля) и нажимаете правую кнопку мыши. В выпадающем меню выбираете пункт Исходный текст или Интерфейс или Документация. В новом окне открывается соответствующий текст (разумеется, документация открывается, если в папке Docu данной подсистемы есть файл-описание с соответствующим именем). Причем возможны переходы по иерархии вызываемых (импортируемых) модулей.
Есть ли шанс еще улучшить этот подход?
Цитата:
Управляющие кнопки
Имеется по крайней мере следующая управляющая кнопка:
 Знак вопроса (при нажатии курсор меняет форму на знак вопроса, а при нажатии затем на другую кнопку или на идентификатор в древовидном списке всплывает окно со справкой по этой кнопке/идентификатору)

Не понял.

Цитата:
Имеется по крайней мере следующие кнопки быстрого доступа:
 Скобки, операции и отношения, сгруппированные по приоритету ( ) ~ * / DIV MOD & + - OR = # < <= > >= IN IS )

Не понимаю, зачем это выносить на какие-то кнопки. Разве доступ будет быстрее, чем нажать "из головы" 1-3 клавиши? Если "программист" не может запомнить такой простой список, то что он будет делать с базовыми классическими алгоритмами вроде сортировки пузырьком или линейного поиска?

Цитата:
 MODULE (соответствующий шаблон кода подробен настолько, насколько это возможно, и содержит, в том числе, части MODULE, IMPORT, CONST, TYPE, VAR, PROCEDURE, BEGIN, CLOSE, END)

Шаблон модуля в нескольких вариантах реализован в модуле Edit. Набираем 1-2 буквы (у нас сделано: m, ь, ч, чч), нажимаем F5 и получаем заготовку кода на месте этих букв. Слишком подробный шаблон модуля не всегда удобен, т.к. его приходится много чистить. Нужны несколько шаблонов разной степени подробности и назначения.
Шаблоны "конструкций" вызываются по 1-3 буквам тоже клавишей F5:
i -> INTEGER;
if -> IF THEN END;
iff -> IF THEN ELSE END;
w -> WHILE DO END;
f -> FOR := TO BY DO END;
v -> VAR
ко -> (* *) - курсивом зеленым цветом комментария!
и т.п. для всех наиболее ходовых конструкций языка.
Причем конструкции подставляются вместе с точкой с запятой, сразу выровненные по стандарту, курсор ставится в позицию наиболее вероятного продолжения работы, например, в цикле FOR - на место параметра цикла, в цикле WHILE - на место условия, и т.д.
Детки очень быстро такой подход осваивают и возмущаются, когда какой-то нужной им конструкции не находят в списке подстановок. Набор текста программы идет с удовольствием, исключаются очень многие ошибки, характерные для начинающих.
Разумеется, надо добиваться полного понимания смысла основных конструкций языка, а не только давать удобный инструмент их вставки в программу. Если человек не в состоянии придумать АЛГОРИТМ той или иной перестановки элементов одномерного массива с помощью цикла, то никакой красивый и удобный инструмент не сделает его программистом.
Цитата:
При щелчке по пункту древовидного списка, кроме папок, соответствующий шаблон кода вставляется в текст программы в положении курсора.

Не совсем понимаю, какие шаблоны тут могут быть предусмотрены.

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

В этом, пожалуй, есть смысл.

Цитата:
При первом щелчке по подсказке она выделяется целиком, даже если подсказка состоит из нескольких слов.
Шаблоны идентификаторов должны иметь вид и формат идентификаторов, которые должны быть вставлены вместо шаблона, в соответствии с соглашениями по языку (имеется в виду использование строчных и прописных букв, составные имена, глаголы и существительные в качестве идентификаторов).

Не понял, прошу пример, из которого вытекала бы потребность в инструменте.

В свете сказанного очень сомневаюсь в следующих "полезностях":
Цитата:
Имеются по крайней мере следующие кнопки управления, вставляемые в текст программы перед шаблоном кода и его частями:
 «кисть руки с растопыренными пальцами» (выделить вставленный шаблон кода для его перетаскивания мышью, форматирования, копирования, вырезания, или удаления)
 «треугольная стрелка вниз» (развернуть список возможных значений для выбора нужного, например, для выбора типа объявляемой переменной)
 «два одинаковых прямоугольника» (дублировать шаблон кода – эта кнопка заменяет копирование и вставку)
 «галочка» (сохранить, если возможно, настроенный шаблон кода в тексте программы в окончательном виде – с необходимым форматированием, с удалением подсказок и кнопок управления шаблоном кода. Сохранение в окончательном виде может быть отложено на любой срок (например, месяц), пока не возникнет необходимость в компиляции)
 «зачеркивание крест накрест» (удалить вставленный шаблон кода)
 «знак вопроса» (во всплывающем окне отображается справка по вставленному шаблону кода или его части)
Вставляется столько разных кнопок управления, сколько необходимо и возможно для данного шаблона кода или его части.


Выделение фрагментов текста и удаление/копирование/перетаскивание мышкой выполняются настолько легко и быстро, что не вижу смысла в дополнительных инструментах.

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

Для тех, кто делает самые первые шаги в программировании, я бы советовал начинать с изучения нашей Черепашки, описание которой появляется на рабочем столе после сразу после запуска Школьного Блэкбокса с любого носителя. Внимательно изучив описание и погоняв прилагаемые примеры, наступит понимание, достаточное для дальнейшего движения.

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 08 Август, 2007 10:27 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Да, мимоходом крайне трудно... Даже перевод методички с Турбо на КП и то требует много вечеров, как показывает практика.

Анатолий Иванович, по поводу Черепашки - Вы на Lab переходить собираетесь, или нет? :-) Там всё то же самое, только удобнее.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 08 Август, 2007 11:11 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 778
Откуда: Москва
Ответы на комментарии А.П.:

Цитата:
Строго говоря, понятие блока в КП отсутствует. Константы, переменные и процедуры описываются либо в модулях, либо в процедурах, либо в новых типах. Соотв.пункты ТЗ надо переформулировать.

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

Цитата:
 Предопределенные процедуры (папки по назначению процедур)
Здесь просто дать гиперссылку на соответствующий раздел Сообщения о языке. Аналогично нужна гиперссылка на список основных типов КП и их диапазонов

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

Цитата:
 Библиотечные процедуры (папки по назначению процедур, процедуры должны быть предварительно классифицированы)
Большой вопрос. В ББ довольно много подсистем, находящихся в соответствующих папках. Процедуры разложены по модулям, коих может быть не один в подсистеме. Кроме того, всегда легко добавить новую подсистему(папку с модулями). Хотя есть "главная" подсистема System, модули/процедуры которой должный быть подключены к Построителю в первую очередь.
Однако есть готовый встроенный способ, во многих случаях достаточно удобный. Выделяете имя модуля или полное имя процедуры (т.е. вместе с именем модуля) и нажимаете правую кнопку мыши. В выпадающем меню выбираете пункт Исходный текст или Интерфейс или Документация. В новом окне открывается соответствующий текст (разумеется, документация открывается, если в папке Docu данной подсистемы есть файл-описание с соответствующим именем). Причем возможны переходы по иерархии вызываемых (импортируемых) модулей.
Есть ли шанс еще улучшить этот подход?

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

Цитата:
Управляющие кнопки
Имеется по крайней мере следующая управляющая кнопка:
 Знак вопроса (при нажатии курсор меняет форму на знак вопроса, а при нажатии затем на другую кнопку или на идентификатор в древовидном списке всплывает окно со справкой по этой кнопке/идентификатору)
Не понял.

Если Вы хотите увидеть описание процедуры или оператора, то достаточно просто щелкнуть сначала по кнопке со знаком вопроса, а затем по интересующему идентификатору или кнопке.

Цитата:
Имеется по крайней мере следующие кнопки быстрого доступа:
 Скобки, операции и отношения, сгруппированные по приоритету ( ) ~ * / DIV MOD & + - OR = # < <= > >= IN IS )
Не понимаю, зачем это выносить на какие-то кнопки. Разве доступ будет быстрее, чем нажать "из головы" 1-3 клавиши? Если "программист" не может запомнить такой простой список, то что он будет делать с базовыми классическими алгоритмами вроде сортировки пузырьком или линейного поиска?

Это эргономика, эффективность которой доказана многолетним применением в построителе выражений MS Access. Речь идет прежде всего о скорости построения кода. Когда у Вас в руке мышь, Вы не сможете ткнуть этой рукой в клавишу, а работать в построителе кода Вы будете преимущественно с мышью. Тем более, что Ваше внимание сосредоточено на окне построителя кода, и Вам ни к чему отвлекаться на ввод с клавиатуры. Группировка кнопок как раз и предназначена для того, чтобы было проще запомнить приоритеты операций (кстати, в разных языках программирования приоритеты разные, и поэтому возможны ошибки и у квалифицированных программистов).

Цитата:
 MODULE (соответствующий шаблон кода подробен настолько, насколько это возможно, и содержит, в том числе, части MODULE, IMPORT, CONST, TYPE, VAR, PROCEDURE, BEGIN, CLOSE, END)
Шаблон модуля в нескольких вариантах реализован в модуле Edit. Набираем 1-2 буквы (у нас сделано: m, ь, ч, чч), нажимаем F5 и получаем заготовку кода на месте этих букв. Слишком подробный шаблон модуля не всегда удобен, т.к. его приходится много чистить. Нужны несколько шаблонов разной степени подробности и назначения.
Шаблоны "конструкций" вызываются по 1-3 буквам тоже клавишей F5:
i -> INTEGER;
if -> IF THEN END;
iff -> IF THEN ELSE END;
w -> WHILE DO END;
f -> FOR := TO BY DO END;
v -> VAR
ко -> (* *) - курсивом зеленым цветом комментария!
и т.п. для всех наиболее ходовых конструкций языка.
Причем конструкции подставляются вместе с точкой с запятой, сразу выровненные по стандарту, курсор ставится в позицию наиболее вероятного продолжения работы, например, в цикле FOR - на место параметра цикла, в цикле WHILE - на место условия, и т.д.
Детки очень быстро такой подход осваивают и возмущаются, когда какой-то нужной им конструкции не находят в списке подстановок. Набор текста программы идет с удовольствием, исключаются очень многие ошибки, характерные для начинающих.
Разумеется, надо добиваться полного понимания смысла основных конструкций языка, а не только давать удобный инструмент их вставки в программу. Если человек не в состоянии придумать АЛГОРИТМ той или иной перестановки элементов одномерного массива с помощью цикла, то никакой красивый и удобный инструмент не сделает его программистом.


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

Слишком подробный шаблон модуля В ВАШЕМ СЛУЧАЕ действительно неудобен, потому что чистить его придется вручную, а не с помощью встроенных в текст кнопок управления шаблоном кода. Насчет шаблонов разной степени подробности - не возражаю, лишь бы не загромоздить интерфейс.

Что касается сортировок, то это прямо мания какая-то! Разве этим исчерпывается список задач программиста? Да надо просто пользоваться готовыми функциями сортировки, не отвлекаясь на давно решенные проблемы. А если у человека нет тяги к сортировкам, и он НЕ ПРОГРАММИСТ (а физик, медик, экономист, химик и т.п.), и даже не хочет им быть, а хочет просто программировать задачи в своей профессиональной области? Что, лишать его удобного инструмента?

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

Например, что-нибудь типа:
"Перевод_строки"
Sort ("Идентификатор_массива", [кнопка_выбора_значения_из_списка]"Направление_сортировки"); (*Ваш любимый пример сортировки*)
"Перевод_строки"

Цитата:
При первом щелчке по подсказке она выделяется целиком, даже если подсказка состоит из нескольких слов.
Шаблоны идентификаторов должны иметь вид и формат идентификаторов, которые должны быть вставлены вместо шаблона, в соответствии с соглашениями по языку (имеется в виду использование строчных и прописных букв, составные имена, глаголы и существительные в качестве идентификаторов).
Не понял, прошу пример, из которого вытекала бы потребность в инструменте.

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

Цитата:
Выделение фрагментов текста и удаление/копирование/перетаскивание мышкой выполняются настолько легко и быстро, что не вижу смысла в дополнительных инструментах.

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

Цитата:
Похоже, ТЗ написано с оглядкой на инструменты гораздо более тяжеловесных систем, в которых без многочисленных "костылей" действительно трудно работать. Попробуйте меня разубедить

Это Acces-то тяжеловесный или Excel? Да ими пользуются в России десятки миллионов "чайников", которые овладели всеми премудростями в течение нескольких недель. Зачем отказываться от инструмента, который так прекрасно себя проявил в этих продуктах?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 08 Август, 2007 12:22 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Цитата:
Тем более, что Ваше внимание сосредоточено на окне построителя кода, и Вам ни к чему отвлекаться на ввод с клавиатуры.[/Quote]

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 08 Август, 2007 12:42 

Зарегистрирован: Пятница, 29 Июнь, 2007 12:16
Сообщения: 98
При таких запросах, я не понимаю, чем вас не устраивает Delphi 6.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 08 Август, 2007 13:28 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 778
Откуда: Москва
Илья Ермаков писал(а):
Цитата:
Тем более, что Ваше внимание сосредоточено на окне построителя кода, и Вам ни к чему отвлекаться на ввод с клавиатуры.[/Quote]

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


Сбивает фокус на самом деле не мышь и не клавиатура сами по себе, а перескоки от мыши к клавиатуре и обратно.

Кстати, насчет визуального контроля за курсором: Вы ведь сначала ищете место в тексте на экране, куда будете вбивать с клавиатуры? :?:

Вы фактически предлагаете всем освоить "слепой" метод печати. А если большинство не способно? :( Может, у них способности, в другой области, более важной. :wink:

Всё развитие интерфейса идет от командной строки, текста, клавиатуры :arrow: к визуальным объектам, отображающим понятия предметной среды. Ведь при проектировании сложных систем человек мыслит сначала образами (большей частью зрительными - вспомните своего любимого Дракона), которые затем облекает в речь, текст. И интерфейс приближается к человеку. То есть, "мышиная" технология более естественная, простая, и она постепенно вытесняет клавиатуру. Да, хакер, молотящий по клавиатуре (что он, интересно, туда вколачивает???), стал привычным персонажем в кино. Но разве в этом профессионализма программиста?

Люди теперь начинают освоение программных продуктов с "мышиного" интерфейса (игры, MS Office). Вы предлагаете их "ломать" и переучивать на клавиатуру? Они, конечно переучатся, если очень надо, но зачем их на это обрекать?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 08 Август, 2007 13:33 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 778
Откуда: Москва
Darksnake писал(а):
При таких запросах, я не понимаю, чем вас не устраивает Delphi 6.


Тем, что в Delphi 6 нет Компонентного Паскаля или Оберона-2. А в Блэкбоксе есть, но это не означает, что я теперь должен полюбить в Блэкбоксе всё остальное, включая отсутствие необходимых вещей.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 08 Август, 2007 16:12 

Зарегистрирован: Пятница, 02 Декабрь, 2005 14:35
Сообщения: 210
Откуда: Россия, Томск
Сергей Прохоренко писал(а):
Ответы на комментарии А.П.
:

В этой ветке мы говорим вроде как о начальном обучении программированию, а Ваши запросы по ТЗ больше претендуют на инструментарий для профи. То, что нужно и удобно некоторым профессионалам, может быть методически мало приемлемым для НАЧАЛЬНОГО обучения именно АЗАМ. В вузе мне жаловались, что студенты, сумевшие в Delphi что-то там запрограммировать (факультет информатики, первый курс), часто недопонимают, где что находится. Слишком навороченный инструмент, заточенный для скоростной работы специалистов, затуманивает "голую суть" алгоритмизации, отвлекает внимание новичков от самого процесса усвоения элементарных алгоритмов.

Видимо, у нас с Вами совершенно разный опыт обучения программированию и использования инструментальной среды. Мой опыт - в обучении именно новичков, преимущественно школьников, самым первым шагам в программировании. Когда они буквально ничего или почти ничего не знают о ячейках, переменных, типах, идентификаторах, операторах присваивания/ветвления/цикла, вводе-выводе и прочих фундаментальных вещах, стабильно путают DIV и MOD, значения элементов массива с их индексами... В такой ситуации слишком мощный, профессиональный инструмент, смею утверждать, только мешает :)
И, честно говоря, программировать одной мышкой на скорость мне не доводилось :D

Цитата:
Цитата:
Строго говоря, понятие блока в КП отсутствует. Константы, переменные и процедуры описываются либо в модулях, либо в процедурах, либо в новых типах. Соотв.пункты ТЗ надо переформулировать.

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

Тут не спорю. Может быть...
Цитата:
Цитата:
 Предопределенные процедуры (папки по назначению процедур)
Здесь просто дать гиперссылку на соответствующий раздел Сообщения о языке. Аналогично нужна гиперссылка на список основных типов КП и их диапазонов

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

Список именно ПРЕДОПРЕДЕЛЕННЫХ процедур КП насчитывает 17 процедур-функций и 11 собственно процедур. В списке нет большинства из перечисленных Вами функциональных групп процедур (обработки массивов, финансовых, статистических, работы с цветом...). Однако, многие из них есть в подсистемах ББ.

Цитата:
Цитата:
Имеется по крайней мере следующие кнопки быстрого доступа:
 Скобки, операции и отношения, сгруппированные по приоритету ( ) ~ * / DIV MOD & + - OR = # < <= > >= IN IS )
Не понимаю, зачем это выносить на какие-то кнопки. Разве доступ будет быстрее, чем нажать "из головы" 1-3 клавиши? Если "программист" не может запомнить такой простой список, то что он будет делать с базовыми классическими алгоритмами вроде сортировки пузырьком или линейного поиска?

Это эргономика, эффективность которой доказана многолетним применением в построителе выражений MS Access. Речь идет прежде всего о скорости построения кода. Когда у Вас в руке мышь, Вы не сможете ткнуть этой рукой в клавишу, а работать в построителе кода Вы будете преимущественно с мышью. Тем более, что Ваше внимание сосредоточено на окне построителя кода, и Вам ни к чему отвлекаться на ввод с клавиатуры. Группировка кнопок как раз и предназначена для того, чтобы было проще запомнить приоритеты операций (кстати, в разных языках программирования приоритеты разные, и поэтому возможны ошибки и у квалифицированных программистов).

Теперь понятно. Это опять же в основном для профи.

Цитата:
Что касается сортировок, то это прямо мания какая-то!

Это не мания. :o Вы посмотрИте на разделы любого курса основ программирования и алгоритмизации. Без натаскивания на уверенную работу с элементами одно- и двумерных массивов невозможно браться за программирование хоть сколько-нибудь полезных практических задач.

Цитата:
Разве этим исчерпывается список задач программиста? Да надо просто пользоваться готовыми функциями сортировки, не отвлекаясь на давно решенные проблемы. А если у человека нет тяги к сортировкам, и он НЕ ПРОГРАММИСТ (а физик, медик, экономист, химик и т.п.), и даже не хочет им быть, а хочет просто программировать задачи в своей профессиональной области? Что, лишать его удобного инструмента?

Возможно, во многих ситуациях им будет достаточно того же офисного пакета (Excel, Access...)? А я речь веду именно о начальном обучении ПРОГРАММИРОВАНИЮ. Если после твердого усвоения базовых навыков и классических алгоритмов программист сможет, не меняя парадигмы, плавно пересесть на более мощный, "скоростной" инструмент, я буду только рад.
Вы же не станете отрицать необхоимость сольфеджио в музыкальной школе или постановки ног и прочих частей тела в танцах? :)

Цитата:
Это Acces-то тяжеловесный или Excel? Да ими пользуются в России десятки миллионов "чайников", которые овладели всеми премудростями в течение нескольких недель.

Насчет "овладения миллионами всеми премудростями за несколько недель", боюсь, Вы сильно преувеличиваете :D Имею опыт обучения программированию макросов на VB взрослых людей, много лет пользовавшихся Excel'ем. Успешных результатов было меньше половины. Считаю, что в значительной степени - из-за сильной перегруженности и ненадежности инструмента.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 123 ]  На страницу Пред.  1, 2, 3, 4, 5 ... 7  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB