OberonCore

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

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




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

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3776
Shull писал(а):
П.С: Тот же вопрос про Оберон Онлайн. Как тамошнему юзеру вбить свои данные?

Для ввода данных там есть некоторые экспериментальный модули, которые делают всплывающие диалоги с полем ввода.
https://visual.sfu-kras.ru/model/124
Либо через поле по типу формы, как в этом примере:
https://visual.sfu-kras.ru/ready/272


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

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

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

Что скажете?


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

Зарегистрирован: Понедельник, 28 Ноябрь, 2022 09:03
Сообщения: 35
ИМХО, главное - не навредить Блэкбоксу. Он не должен превратиться в нагромождение непойми чего.
- Всегда ли нужен программистам документ№3(с холстом)?

- Документ для ввода данных и документ с журналом для вывода Out - это великолепно для школьников.
Но не повредит ли он тем же школьникам, которые уже вот-вот станут студентами?

- Документ с холстом для рисования. Я пока не очень понял, это инструмент вывода и моделирования, типа аквариума для черепашки?

- я правильно понял, что модуль In смотрит, что именно я выделил мышкой в документе?
Получается, если программа просит меня представиться, то я должен написать там (в доке) своё имя и выделить его , а потом запустить программу?

Цитата:
модуль Console, и в нем есть процедура ReadLn, которая считывает строку.

Только что где-то прослезились старые преподавательницы Паскаля. Ваш социальный рейтинг в замшелых школах вырос. :lol:
Я понимаю, это ужасный костыль, но я вам искренне за это благодарен.
Пользуясь случаем, благодарю ещё раз за волшебную кнопку упихивания в exe. Это глубоко порочная практика, но это очень поможет мне в защите перед ученым советом.


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

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3776
Shull писал(а):
- Всегда ли нужен программистам документ№3(с холстом)?

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

Shull писал(а):
- Документ для ввода данных и документ с журналом для вывода Out - это великолепно для школьников.
Но не повредит ли он тем же школьникам, которые уже вот-вот станут студентами?

Это упрощённое поле ввода. Думаю, что это не может навредить. Считывание данных из поля ввода - это в любой среде может быть потом использовано.

Shull писал(а):
- Документ с холстом для рисования. Я пока не очень понял, это инструмент вывода и моделирования, типа аквариума для черепашки?

Да, всё верно. По нему будут бегать черепашки. На нём можно рисовать домики и ёлочки.

Shull писал(а):
- я правильно понял, что модуль In смотрит, что именно я выделил мышкой в документе?
Получается, если программа просит меня представиться, то я должен написать там (в доке) своё имя и выделить его , а потом запустить программу?
Да.

Shull писал(а):
Цитата:
модуль Console, и в нем есть процедура ReadLn, которая считывает строку.

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

Этот модуль Console, спроектировал Александ Ширяев, мы только им пользуемся уже. Ну и школьникам его не надо будет использовать. Для них это будет всё тот же In, а модуль Console - это будет некая реализация для собранной программы main.exe. Я больше про него рассказал вам, чтобы вы понимали понемногу, как это в самом Блэкбоксе внутри устроено.

Shull писал(а):
Пользуясь случаем, благодарю ещё раз за волшебную кнопку упихивания в exe. Это глубоко порочная практика, но это очень поможет мне в защите перед ученым советом.

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


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

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

Сначала достаточно, не объясняя, что это, не давая определений и пояснений, просто сказать: делай так. Вот тут пиши вот это, вот тут - присваивание, вот тут - ЕСЛИ, здесь пишешь Out.String('Молодец!'), нажимаешь сюда - и - о! - твой желанный результат.

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

Так преподается физика, например. Ее понимание школьником и ее преподавание учителем основано на важной предпосылке: школьник уже на протяжении 14 лет взаимодействует с физическими явлениями, имеет опыт. Все объяснения в школьной физике даются не аксиоматически, а от жизненного опыта. Все школьники имеют опыт езды, сидя в вагоне поезда; поэтому им и можно объяснить относительность движения, а не потому, что они готовы воспринять понятие инерциальных/неинерциальных систем отсчета.

И то же с программированием. Можно сначала дать небольшой опыт взаимодействия, а потом - этот опыт объяснить и обобщить. И про переменные, и про тип переменной, и про подпрограммы.
Я предлагал начать с квадратного уравнения: показывал пример
MODULE M;
VAR m*: INTEGER;
PROCEDURE P; BEGIN m := 1, END P;
END M.
и просил составить программу для вычисления дискриминанта: Пусть даны коэффициенты a, b, c, тебе нужно вычислить D: PROCEDURE Discr (a, b, c: INTEGER; VAR D: INTEGER);
Следующим шагом - просил собсно найти корни. Тут можно объяснить вызов процедуры Discr, вызов Math.Sqrt (подобрав коэф-ты так, чтобы были только действительные корни), затем дать другие коэффициенты и показать аварийный останов, объяснить ветвление.
С девятиклассником все это я проделывал. Он был оч доволен, что заставил комп решать (за себя) квадратные уравнения.

Иван Андреич верно отметил, что вообще-то можно и приборы (контролы) использовать для ввода-вывода. И вот идея: можно сделать обертку над коммандером, которая будет на лету составлять форму с приборами для процедурных параметров, содержать кнопку "Готово", в ответ на которую - показывать результат из VAR/OUT - параметров и результат процедуры-функции. При этом школьников вообще не нужно (до времени) загружать вводом-выводом и консолью.


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

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1449
Откуда: Киев
Борис Рюмшин писал(а):
А что тогда понимать в качестве программы (если процедуры и функции это подпрограммы)?
Ну не секцию инициализации модуля же.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 16 Декабрь, 2022 19:05 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4695
Откуда: Россия, Орёл
Comdiv писал(а):
Тут связь ровно такая же, как каталога с подкаталогом. Подпрограмма - это программа, вызываемая из другой программы. Любая программа может стать подпрограммой точно так же как любой каталог подкаталогом.

Ну если только так.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 16 Декабрь, 2022 19:36 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1449
Откуда: Киев
Иван Денисов писал(а):
можно и вот так
вывод, подпрограмма (процедура без аргументов), переменная, типы данных, арифметика, ветвление, ввод, цикл, массив подпрограмма (процедура с аргументами и процедура-функция)

Выглядит логично с учётом того, что вывод осуществляется через подпрограммы, то и ввод подпрограмм сразу после вывода не оставляет магических средств, взятых ниоткуда. Единственное, что процедуры с аргументами я бы вводил после переменных-типов данных, потому что разница между переменными и параметрами невелика.


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

Зарегистрирован: Воскресенье, 18 Декабрь, 2022 21:39
Сообщения: 32
Обязательное изучение Информатики начинается с 7-го класса. Есть хорошие учебники Кушниренко А.Г. и др. Информатика 7, Информатика 8, Информатика 9. В качестве системы программирования используется КуМир (его здесь не жалуют). Интерес представляет вопрос перехода со Школьного алгоритмического языка на промышленный язык программирования, например, CP или Oberon.


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

Зарегистрирован: Понедельник, 28 Ноябрь, 2022 09:03
Сообщения: 35
https://rosuchebnik.ru/kompleks/umk-liniya-umk-kushnirenko-informatika-7-9/
Он?

P.S: Сейчас абсолютно нереально выделить время для Оберона, закрываю сессию в магистратуре.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 22 Декабрь, 2022 13:00 

Зарегистрирован: Воскресенье, 18 Декабрь, 2022 21:39
Сообщения: 32
Да. Это те самые учебники.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 22 Декабрь, 2022 16:00 

Зарегистрирован: Воскресенье, 18 Декабрь, 2022 21:39
Сообщения: 32
Система программирования КуМир позволяет:
1. Выявлять синтаксические ошибки в процессе написания текста программы.
2. Автоматически вставлять отступы в тексте программы.
3. Выполнять программу в 2-х пошаговых режимах.
4. Отображать на "полях" значения условий и результаты команд присваивания.


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

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

Кумир и Паскаль АБЦ прекрасны тем, что работают "из коробки", без "выкрутасов".
Но нам-то нужен Оберон. Это проблема. :-)


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

Зарегистрирован: Понедельник, 28 Ноябрь, 2022 09:03
Сообщения: 35
Раз - два - три - и программа ломается, не выдержав моей тупости. Что я сделал не так?
1. Пока всё хорошо.
Вложение:
1.png
1.png [ 16.33 КБ | Просмотров: 2607 ]

2. Запустить! Запустилось. Ну, наверное, оно откомпилировалось. Иначе, как бы оно запустилось?
Вложение:
2.png
2.png [ 19.94 КБ | Просмотров: 2606 ]

3. Компилировать. Бац. Всё. "Должен быть MODULE" - так он есть. Крестик какой-то... Зачем он? Что происходит? Непонятно :-(
Вложение:
3.png
3.png [ 22.29 КБ | Просмотров: 2606 ]


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

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1449
Откуда: Киев
Программа не поломалась. Поломалось только ваше понимание происходящего, отчасти вызванное тем, что вся эта история со сборкой Main - это лишь быстрая (лишняя?) нашлёпка над BlackBox. А BB всё равно откуда брать модуль, хоть из журнала. Вы выделили журнал и теперь собираете из него, оттого и ошибки про отсутствие модуля. Можно было бы догадаться, потому что BB выдаёт ошибки не в журнал, а в сам модуль. Уровень вашей невнимательности крайне высок, но это только хорошо в некотором смысле. У вас есть открытый код, чтобы посмотреть?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 25 Декабрь, 2022 01:18 

Зарегистрирован: Пятница, 13 Март, 2015 16:40
Сообщения: 597
Да-а-а, уж...)))-8Ж
Никогда в голову не приходило в log-е Ctrl-K жмакать (BB 1.6), а вот попробовал и:
    - в пустом - действительно (кто-бы мог подумать) MODULE ожидается;
    - а скопипастил в log текст коротенькой программульки - всё скомпилялось; там же запустил коммандером и исходник исчез, ибо log ею предварительно очищался. (((-8Ж
В общем, это как-то не правильно, компилять и исполнять откуда ни попадя (Б - безопасность)... это ж можно, получается, вывод в текст с исходником организовать (с предварительной очисткой) Ж8-/

PS: в начале темы звучало как компилять, коммандеры и т.п. - вот что было с МГУ-шной сборкой
Вложение:
i21.pdf [1.79 МБ]
Скачиваний: 67


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

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


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

Зарегистрирован: Понедельник, 28 Ноябрь, 2022 09:03
Сообщения: 35
Главное - не наломать дров и не превратить Blackbox в VisualStudio :D
Цитата:
Можно было бы догадаться, потому что BB выдаёт ошибки не в журнал, а в сам модуль. Уровень вашей невнимательности крайне высок, но это только хорошо в некотором смысле. У вас есть открытый код, чтобы посмотреть?

Понимаете, у меня в голове чётко прошито "ввод"=>"программа"=>"вывод".
Представьте, что вы собрались пообедать, взяли ложку, а она вдруг сказала: "М-м-м, неплохой суп".
Мне в страшном сне не могло присниться, что можно что-то выдавать в сам модуль.
И, тем более, что журнал может служить орудием ввода. Это уже какой-то дневник Волдеморта из "Гарри Поттера".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 25 Декабрь, 2022 11:16 

Зарегистрирован: Воскресенье, 18 Декабрь, 2022 21:39
Сообщения: 32
Я думал, что проблема в том как учить школьников программированию, а какой инструмент Вы для этого выберите и на каком этапе - это другой вопрос.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 25 Декабрь, 2022 17:24 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1449
Откуда: Киев
Shull писал(а):
Понимаете, у меня в голове чётко прошито "ввод"=>"программа"=>"вывод".
Это заметно, что прошито, но Вы окажете большую услугу своим подопечным, если не будете их прошивать, а попытаетесь воспитать мыслящими, подмечающими детали, людьми. Это задача непростая, но именно это должно служить ориентиром, а не прошивка детей какими-то, зачастую, случайными знаниями.

Цитата:
Мне в страшном сне не могло присниться, что можно что-то выдавать в сам модуль.
Даже в вашем 1-м сообщение в этой теме видно, что Вы видели, что сообщения об ошибках оказываются в исходном коде. И если для Вас это не удобно, а хуже страшного сна, может, прекратите себя так "истязать"? Если нет, то прочитайте, всё-таки, документацию - это гораздо проще, чем биться головой о стену, беспорядочно носясь по комнате с завязанными глазами.

Цитата:
И, тем более, что журнал может служить орудием ввода. Это уже какой-то дневник Волдеморта из "Гарри Поттера".
Из-за того, что многие разработчики наглухо прошиты таким же неглубоким пониманием, то во многих системах в журнале даже нельзя толком провести поиск, ведь поиск требует ввода. И так с каждым "благом цивилизации", доступным для текста - всё даётся как отдельный подвиг разработчика, зачастую, через костыли. В некоторых даже копирование под вопросом, это, кстати, тоже требует ввода. В BlackBox же журнал - это просто окно редактора сразу со всеми возможностями, которые не нужно добавлять снова. И хотя кое-что стоило бы запретить, например, редактирование, в остальном такое решение выглядит простым и удобным.


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

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


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

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


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

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