OberonCore https://forum.oberoncore.ru/ |
|
Запуск простейшей программы в Blackbox https://forum.oberoncore.ru/viewtopic.php?f=35&t=6873 |
Страница 1 из 4 |
Автор: | Shull [ Понедельник, 28 Ноябрь, 2022 09:42 ] | ||
Заголовок сообщения: | Запуск простейшей программы в Blackbox | ||
Добрый день всем! Я тут недавно, решил зарегистрироваться после вчерашней (27 ноября 2022г) конференции. Сегодня начал разрабатывать учебный курс для детей на основе Компонентного Паскаля. Заодно знакомлюсь с Blackbox. В этой теме я буду выражать "детскую" точку зрения на Blackbox. Проблема: Базовая сборка 1.8- на английском языке. Дети его зачастую не знают. Русификацию пришлось искать на форуме. Для детей это может стать проблемой. Кстати, если русифицировать сборку 1.8, а потом перенести её на другой комп - настройки языка сбиваются Вопрос 1: в школьной сборке есть пункт меню "Компилировать и перегрузить", отсутствующий в базовой сборке. Как запускается программа в базовой сборке? В справке нашёл следующее: Цитата: "Компилировать и перегрузить" "^F9" "i21sysCompiler.ConvertCompileAndReload" "TextCmds.F Хм, может быть, "перезагрузить", а не "перегрузить"? Там же Reload. Или мы говорим именно о перегрузке? Вопрос 2: Попробовал запустить самый простой код - и сразу сел в лужу. Двое знакомых, также знающих классический Паскаль, не помогли. В чём тут дело?(см картинку внизу) P.S: Огромное спасибо участникам oberon-сообщества. Вы тепло приняли меня, самоучку, на конференции, выслушали меня и терпеливо объясняли непонятные моменты
|
Автор: | Иван Денисов [ Понедельник, 28 Ноябрь, 2022 17:04 ] |
Заголовок сообщения: | Re: Запуск простейшей программы в Blackbox |
Добрый день, Сергей! Рад нашему знакомству, и тому, что вы готовы подключиться к созданию новой школьной сборки для Блэкбокса. Давайте делать новую школьную сборку всё же на Блэкбоксе 2.0, так как она ближе к тому, чего ожидают школьники от современной среды разработки, там есть и возможность настройки цветовых схем интерфейса, — один из вопросов, который вы поднимали на встрече. |
Автор: | Иван Денисов [ Понедельник, 28 Ноябрь, 2022 17:11 ] |
Заголовок сообщения: | Re: Запуск простейшей программы в Blackbox |
В Компонентном Паскале код должен быть после слова 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 ] |
Заголовок сообщения: | Re: Запуск простейшей программы в Blackbox |
Я придумал такую формулу для школьников, чтобы объяснить про слово BEGIN. Компьютерная программа это данные и алгоритм над ними. Так вот слово BEGIN всегда отделяет данные от алгоритма. |
Автор: | Comdiv [ Понедельник, 28 Ноябрь, 2022 19:21 ] |
Заголовок сообщения: | Re: Запуск простейшей программы в Blackbox |
Иван Денисов писал(а): В Компонентном Паскале код должен быть после слова BEGIN в модуле или в процедуре. Да и в Паскале, в целом, также. Интересно, о каком классическом Паскале, который знают знакомые, идёт речь? |
Автор: | Shull [ Понедельник, 28 Ноябрь, 2022 23:28 ] |
Заголовок сообщения: | Re: Запуск простейшей программы в Blackbox |
Иван Денисов писал(а): ...Давайте делать новую школьную сборку всё же на Блэкбоксе 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 ] |
Заголовок сообщения: | Re: Запуск простейшей программы в Blackbox |
От отступов точно в Обероне ничего не зависит. Это может вы модуль не выгрузили. Если в таком стиле оформлять учебные примеры, то вот так можно их запускать: Вложение: тогда гарантированно старый модуль будет выгружен перед перезапуском. Сборка Блэкбокс 2.0 достаточно стабильно работает для учебных задач. А если будут жалобы, скриншоты с окошками аварийной остановки, то будет больше мотивации поскорее исправить некоторые недочёты. |
Автор: | Artyemov [ Вторник, 29 Ноябрь, 2022 00:50 ] |
Заголовок сообщения: | Re: Запуск простейшей программы в Blackbox |
Нет никакой семантики отступов: Вложение: Но так делать не надо: исходник нужен для изучения\прочитывания PS: а кстати, видеозапись конференции будет? |
Автор: | Иван Денисов [ Вторник, 29 Ноябрь, 2022 01:43 ] |
Заголовок сообщения: | Re: Запуск простейшей программы в Blackbox |
Для школьной сборки, для программ, состоящих из одного модуля вот эти команды для компиляции, выгрузки, загрузки, и даже для линковки консольной программы, их можно добавить все на одну команду меню и соответственно на одну горячую клавишу. |
Автор: | Иван Денисов [ Вторник, 29 Ноябрь, 2022 01:55 ] |
Заголовок сообщения: | Re: Запуск простейшей программы в Blackbox |
Вот ещё идея в правой области сделать холст и журнал. Тогда технические сообщения будут сыпаться в журнал слева, а сообщения пользователя в отдельный журнал справа. И там же справа будет холст для простого рисования без ООП. Также как сделано в онлайн обероне. |
Автор: | Shull [ Пятница, 09 Декабрь, 2022 23:26 ] |
Заголовок сообщения: | Re: Запуск простейшей программы в Blackbox |
Всем добрый день! Скоро я поговорю с своим научным руководителем. Будем общаться на тему обучения Оберону/КП детей и взрослых. Если повезёт, всё это будет утверждено как тема моей работы в магистратуре. |
Автор: | Oleg N. Cher [ Суббота, 10 Декабрь, 2022 00:26 ] |
Заголовок сообщения: | Re: Запуск простейшей программы в Blackbox |
Привет и добро пожаловать! Мы только "за" |
Автор: | Иван Денисов [ Среда, 14 Декабрь, 2022 09:40 ] | ||
Заголовок сообщения: | Re: Запуск простейшей программы в Blackbox | ||
Сделал сборку на пробу после обсуждений с Сергеем. Попробуйте, пожалуйста. Тут пока самый самый минимум из задуманного, и даже то, что задумано в первом приближении. Называется BlackBox21 - так как это для проекта Информатика - 21. Пишет сразу файл main.exe, чтобы школьнику сразу был распространяемый результат, его консольная программка. Из базовых модулей, которые проверены и линкуются пока Out.
|
Автор: | Иван Денисов [ Среда, 14 Декабрь, 2022 15:10 ] | ||
Заголовок сообщения: | Re: Запуск простейшей программы в Blackbox | ||
Да, это перебор. Исправил, чтобы галочка с компиляцией работала на любом тексте. А вот сборка приложения и автоматический запуск с выгрузкой старого модуля только для Main пока. Модуль In сейчас не продуман, для запуска без коммандеров не совсем понятно, как его делать. Еще поразмыслю.
|
Автор: | Shull [ Среда, 14 Декабрь, 2022 15:12 ] |
Заголовок сообщения: | Re: Запуск простейшей программы в Blackbox |
То есть, быстрая "волшебная" сборка работает только при соблюдении двух условий: 1. файл называется main 2. файл лежит в папке Блэкбокса Правильно? |
Автор: | Иван Денисов [ Среда, 14 Декабрь, 2022 15:13 ] |
Заголовок сообщения: | Re: Запуск простейшей программы в Blackbox |
Shull писал(а): То есть, быстрая "волшебная" сборка работает только при соблюдении двух условий: 1. файл называется main 2. файл лежит в папке Блэкбокса Правильно? Файл может как раз где угодно лежать. Главное, чтобы модуль назывался Main. Но при запуске открывается тот Main, который лежит в корне Блэкбокса. Теоретически это возможно вынести в некоторые настройки проекта. Однако может для школьной сборки не стоит усложнять. |
Автор: | Иван Денисов [ Среда, 14 Декабрь, 2022 16:28 ] | ||
Заголовок сообщения: | Re: Запуск простейшей программы в Blackbox | ||
Вот сразу на пользу дело идёт. Исправил проблему с загрузкой ненужного модуля. Который ломал окна при запуске поиска по файлам, где есть объекты OleClient, они тянули загрузку при чтении старого WinWindows, и он ломал систему.
|
Автор: | adimetrius [ Среда, 14 Декабрь, 2022 20:56 ] |
Заголовок сообщения: | Re: Запуск простейшей программы в Blackbox |
Полезно знать, особенно школьникам, делающим один модуль, что если зажать Ctrl при щелчке по коммандеру, то командный модуль выгружается, прежде чем команда из него выполняется - т.е. получается команда "перезагрузи и выполни". Ну и их преподавателям тоже полезно это может быть )) |
Автор: | Shull [ Среда, 14 Декабрь, 2022 21:30 ] |
Заголовок сообщения: | Re: Запуск простейшей программы в Blackbox |
Цитата: если зажать Ctrl при щелчке по коммандеру, то командный модуль выгружается, прежде чем команда из него выполняется Хм, поясните, плиз, что такое "выгрузка модуля"? Откуда и куда он выгружается? Я в КП и ББ новичок, поэтому задаю глупые вопросы. |
Страница 1 из 4 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |