OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 19:10

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




Начать новую тему Ответить на тему  [ Сообщений: 79 ]  На страницу 1, 2, 3, 4  След.
Автор Сообщение
СообщениеДобавлено: Понедельник, 28 Ноябрь, 2022 09:42 
Аватара пользователя

Зарегистрирован: Понедельник, 28 Ноябрь, 2022 09:03
Сообщения: 35
Добрый день всем!
Я тут недавно, решил зарегистрироваться после вчерашней (27 ноября 2022г) конференции.
Сегодня начал разрабатывать учебный курс для детей на основе Компонентного Паскаля.
Заодно знакомлюсь с Blackbox.
В этой теме я буду выражать "детскую" точку зрения на Blackbox.

Проблема: Базовая сборка 1.8- на английском языке. Дети его зачастую не знают. Русификацию пришлось искать на форуме. Для детей это может стать проблемой.
Кстати, если русифицировать сборку 1.8, а потом перенести её на другой комп - настройки языка сбиваются :-)

Вопрос 1: в школьной сборке есть пункт меню "Компилировать и перегрузить", отсутствующий в базовой сборке.
Как запускается программа в базовой сборке?
В справке нашёл следующее:
Цитата:
"Компилировать и перегрузить" "^F9" "i21sysCompiler.ConvertCompileAndReload" "TextCmds.F

Хм, может быть, "перезагрузить", а не "перегрузить"? Там же Reload.
Или мы говорим именно о перегрузке?

Вопрос 2: Попробовал запустить самый простой код - и сразу сел в лужу. Двое знакомых, также знающих классический Паскаль, не помогли.
В чём тут дело?(см картинку внизу)

P.S: Огромное спасибо участникам oberon-сообщества. Вы тепло приняли меня, самоучку, на конференции, выслушали меня и терпеливо объясняли непонятные моменты :-)


Вложения:
1.png
1.png [ 8.26 КБ | Просмотров: 4038 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 28 Ноябрь, 2022 17:04 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Добрый день, Сергей!

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

Давайте делать новую школьную сборку всё же на Блэкбоксе 2.0, так как она ближе к тому, чего ожидают школьники от современной среды разработки, там есть и возможность настройки цветовых схем интерфейса, — один из вопросов, который вы поднимали на встрече.


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

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
В Компонентном Паскале код должен быть после слова BEGIN в модуле или в процедуре.

Если код идёт прямо в модуле, то он выполняется при загрузке модуля. А если в процедуре, то при вызове процедуры.

В системе Блэкбокс удобно вызывать процедуры, поэтому лучше сразу разместить код в процедуре:

Код:
MODULE ConsHello0;

IMPORT Log;

   PROCEDURE Do*;
   BEGIN
      Log.String("hello world"); Log.Ln
   END Do;

BEGIN
   Do

END ConsHello0.



Посмотрите документацию к модулю ConsLog
Там сразу и команда для сборки простого консольного приложения.


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

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Я придумал такую формулу для школьников, чтобы объяснить про слово BEGIN.

Компьютерная программа это данные и алгоритм над ними.
Так вот слово BEGIN всегда отделяет данные от алгоритма.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 28 Ноябрь, 2022 19:21 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1447
Откуда: Киев
Иван Денисов писал(а):
В Компонентном Паскале код должен быть после слова BEGIN в модуле или в процедуре.
Да и в Паскале, в целом, также.

Интересно, о каком классическом Паскале, который знают знакомые, идёт речь?


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

Зарегистрирован: Понедельник, 28 Ноябрь, 2022 09:03
Сообщения: 35
Иван Денисов писал(а):
...Давайте делать новую школьную сборку всё же на Блэкбоксе 2.0, ...

С радостью! Вот только, я думал, что она пока в альфа-версии.
Разве она уже готова для применения?

Иван Денисов писал(а):
В системе Блэкбокс удобно вызывать процедуры, поэтому лучше сразу разместить код в процедуре:

Да, дети отлично воспринимают процедуры. Но пусть они сперва увидят "голый" код. Потом, конечно, я подключу процедуры.

Comdiv писал(а):
Интересно, о каком классическом Паскале, который знают знакомые, идёт речь?

Вот, посмотрите:
Код:
MODULE Hello;
    IMPORT Log;
BEGIN
    Log.String("hello world");Log.Ln;
END Hello.

Тут END с уточнением, что именно подошло к завершению. Именно эта мелочь мешала. Мы её даже не сразу увидели :-)

Ещё кое-что. Я не зря спрашивал на конференции про семантику отступов:
Вот тут всё работает.
Код:
MODULE Hello;
    IMPORT  Log;
BEGIN
    Log.String( 'Привет!' );  Log.Ln;
END Hello.

А вот тут - не работает. Разница - в одном отступе.
Код:
MODULE Hello;
IMPORT  Log;
BEGIN
    Log.String( 'Привет!' );  Log.Ln;
END Hello.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 29 Ноябрь, 2022 00:03 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
От отступов точно в Обероне ничего не зависит. Это может вы модуль не выгрузили.

Если в таком стиле оформлять учебные примеры, то вот так можно их запускать:
Вложение:
callModule.png
callModule.png [ 39.11 КБ | Просмотров: 3994 ]


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

Сборка Блэкбокс 2.0 достаточно стабильно работает для учебных задач. А если будут жалобы, скриншоты с окошками аварийной остановки, то будет больше мотивации поскорее исправить некоторые недочёты.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 29 Ноябрь, 2022 00:50 

Зарегистрирован: Пятница, 13 Март, 2015 16:40
Сообщения: 597
Нет никакой семантики отступов:
Вложение:
NO_INDENTS.JPG
NO_INDENTS.JPG [ 79.3 КБ | Просмотров: 3993 ]

Но так делать не надо: исходник нужен для изучения\прочитывания

PS: а кстати, видеозапись конференции будет?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 29 Ноябрь, 2022 01:43 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Для школьной сборки, для программ, состоящих из одного модуля вот эти команды для компиляции, выгрузки, загрузки, и даже для линковки консольной программы, их можно добавить все на одну команду меню и соответственно на одну горячую клавишу.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 29 Ноябрь, 2022 01:55 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Вот ещё идея в правой области сделать холст и журнал. Тогда технические сообщения будут сыпаться в журнал слева, а сообщения пользователя в отдельный журнал справа. И там же справа будет холст для простого рисования без ООП. Также как сделано в онлайн обероне.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 09 Декабрь, 2022 23:26 
Аватара пользователя

Зарегистрирован: Понедельник, 28 Ноябрь, 2022 09:03
Сообщения: 35
Всем добрый день! Скоро я поговорю с своим научным руководителем. Будем общаться на тему обучения Оберону/КП детей и взрослых.
Если повезёт, всё это будет утверждено как тема моей работы в магистратуре.


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

Зарегистрирован: Вторник, 28 Август, 2007 00:55
Сообщения: 520
Откуда: Украина, Днепропетровская обл.
Привет и добро пожаловать! Мы только "за" :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 14 Декабрь, 2022 09:40 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Сделал сборку на пробу после обсуждений с Сергеем. Попробуйте, пожалуйста.
Тут пока самый самый минимум из задуманного, и даже то, что задумано в первом приближении.

Называется BlackBox21 - так как это для проекта Информатика - 21.
Пишет сразу файл main.exe, чтобы школьнику сразу был распространяемый результат, его консольная программка. Из базовых модулей, которые проверены и линкуются пока Out.


Вложения:
BlackBox21_221214_.zip [6.28 МБ]
Скачиваний: 79
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 14 Декабрь, 2022 13:05 
Аватара пользователя

Зарегистрирован: Понедельник, 28 Ноябрь, 2022 09:03
Сообщения: 35
Попробовал. Сразу вопрос.
Я открыл ББ. Там по умолчанию открыт пример main. Я могу его скомпилировать. ОК.
Теперь я пробую открыть такой же файл main_2.odc, в той же папке. Не могу скомпилировать.
В чём тут дело?
P.S: Иван, дизайн отличный, открывается всё быстро, кнопочки красивые :-)


Вложения:
2022-12-14_13-04-08.png
2022-12-14_13-04-08.png [ 44.69 КБ | Просмотров: 3624 ]
2022-12-14_13-03-44.png
2022-12-14_13-03-44.png [ 45.08 КБ | Просмотров: 3624 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 14 Декабрь, 2022 15:10 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Да, это перебор. Исправил, чтобы галочка с компиляцией работала на любом тексте. А вот сборка приложения и автоматический запуск с выгрузкой старого модуля только для Main пока.
Модуль In сейчас не продуман, для запуска без коммандеров не совсем понятно, как его делать. Еще поразмыслю.


Вложения:
BlackBox21_v2_121214.zip [6.18 МБ]
Скачиваний: 75


Последний раз редактировалось Иван Денисов Среда, 14 Декабрь, 2022 15:12, всего редактировалось 1 раз.
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 14 Декабрь, 2022 15:12 
Аватара пользователя

Зарегистрирован: Понедельник, 28 Ноябрь, 2022 09:03
Сообщения: 35
То есть, быстрая "волшебная" сборка работает только при соблюдении двух условий:
1. файл называется main
2. файл лежит в папке Блэкбокса
Правильно?


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

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Shull писал(а):
То есть, быстрая "волшебная" сборка работает только при соблюдении двух условий:
1. файл называется main
2. файл лежит в папке Блэкбокса
Правильно?

Файл может как раз где угодно лежать. Главное, чтобы модуль назывался Main.
Но при запуске открывается тот Main, который лежит в корне Блэкбокса.
Теоретически это возможно вынести в некоторые настройки проекта.
Однако может для школьной сборки не стоит усложнять.


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

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Вот сразу на пользу дело идёт. Исправил проблему с загрузкой ненужного модуля. Который ломал окна при запуске поиска по файлам, где есть объекты OleClient, они тянули загрузку при чтении старого WinWindows, и он ломал систему.


Вложения:
BlackBox21_v3_121214.zip [6.15 МБ]
Скачиваний: 76
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 14 Декабрь, 2022 20:56 
Аватара пользователя

Зарегистрирован: Суббота, 16 Февраль, 2008 02:47
Сообщения: 660
Полезно знать, особенно школьникам, делающим один модуль, что если зажать Ctrl при щелчке по коммандеру, то командный модуль выгружается, прежде чем команда из него выполняется - т.е. получается команда "перезагрузи и выполни".

Ну и их преподавателям тоже полезно это может быть ))


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 14 Декабрь, 2022 21:30 
Аватара пользователя

Зарегистрирован: Понедельник, 28 Ноябрь, 2022 09:03
Сообщения: 35
Цитата:
если зажать Ctrl при щелчке по коммандеру, то командный модуль выгружается, прежде чем команда из него выполняется

Хм, поясните, плиз, что такое "выгрузка модуля"? Откуда и куда он выгружается?
Я в КП и ББ новичок, поэтому задаю глупые вопросы.


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

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


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

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


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

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