OberonCore

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

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




Начать новую тему Ответить на тему  [ Сообщений: 102 ]  На страницу 1, 2, 3, 4, 5, 6  След.
Автор Сообщение
 Заголовок сообщения: Еще один робот (подсистема Sk)
СообщениеДобавлено: Среда, 06 Февраль, 2008 18:18 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
Вот, сделал для проверки идеи.

Исполнитель, язык и примеры заимствованы из "вводного курса" Школьника.


Вложения:
Sk.zip [28.04 КБ]
Скачиваний: 853
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Среда, 06 Февраль, 2008 19:05 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
А я что-то только с клавиатуры порулить смог, а скрипт запустить не сумел... Что надо сделать?
При нажатии DoThis в Tool.odc он ставит квадратик с ошибкой перед началом скрипта.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Среда, 06 Февраль, 2008 22:50 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
Меня терзают смутные подозрения начет юникода, русификации и разных версий ББ.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Среда, 06 Февраль, 2008 22:53 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
1.5, с SP3.

А Вы уже на 1.6 перебрались, наверное? :-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Четверг, 07 Февраль, 2008 10:02 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
Точно. Сейчас установил 1.5 - как раз квадратик без текста.
Собствено, так и должно быть :-(, "настоящие" руссикие буквы он игнорирует.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Четверг, 07 Февраль, 2008 20:40 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Trurl писал(а):
Вот, сделал для проверки идеи.

Исполнитель, язык и примеры заимствованы из "вводного курса" Школьника.


Выражаю интерес, скачал, но быстро не смогу посмотреть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Среда, 13 Февраль, 2008 03:33 
Аватара пользователя

Зарегистрирован: Среда, 13 Февраль, 2008 02:52
Сообщения: 13
Откуда: Penza
Скачал файл и как ни странно тоже выставляет ошибку вначале... :?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Среда, 13 Февраль, 2008 10:00 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
Ничего странного. Вот, перекодировал для 1.5.


Вложения:
Sk15.zip [27.77 КБ]
Скачиваний: 824
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Среда, 25 Июнь, 2008 21:05 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Добрался до робота:

Робот хороший, простой -- то, что надо.

Только бы еще документацию для тех, кто первый раз про робот слышит.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Понедельник, 30 Июнь, 2008 14:02 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
В ближайшее время буду отлучен от компьютера, полноценную документацию сделать не успею. Пока очень кратко.

Первоисточник: http://www.sch57.msk.ru/collect/progboo ... /part1.zip
Там в первой части про робота, с примерами.

Про Sk:
SkScript – интерпретатор, выполняющий в фоне простенькие программки, состоящие из команд и проверок без параметров.

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

SkRobot – исполнитель "робот" и редактор лабиринтов. Возможно, надо бы эти функции разделить. Можно использовать и отдельно.

SkRoboScript – модуль с процедурой инициализации. Подключает к SkScript SkLangRu и SkRobot.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Понедельник, 30 Июнь, 2008 14:04 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
Код:
MODULE SkScript
управление интерпретатором:
PROCEDURE Compile; - "скомпилировать" программу в активном окне.
PROCEDURE CompileThis; - то же, для коммандера.
PROCEDURE Run; - запустить программу.
PROCEDURE Stop; - остановить.
PROCEDURE Do; скомпилировать и запустить.
PROCEDURE DoThis;
две команды для пошагового выполнения:
PROCEDURE Start; - начать сначала.
PROCEDURE Step; - выполнить шаг.

описание исполнителя:
PROCEDURE DefPerfomer (IN name: ARRAY OF CHAR; init: PROCEDURE);
PROCEDURE DefCommand (IN name: ARRAY OF CHAR; cmd: PROCEDURE);
PROCEDURE DefTest (IN name: ARRAY OF CHAR; tst: PROCEDURE (): BOOLEAN);
 
остальное - интерфейс с парсером и т.п.
END SkScript.


Код:
MODULE SkRobot;
управление роботом:
PROCEDURE Up;
PROCEDURE Down;
PROCEDURE Right;
PROCEDURE Left;
PROCEDURE Paint;
PROCEDURE Erase;

PROCEDURE UpClear (): BOOLEAN;
PROCEDURE DownClear (): BOOLEAN;
PROCEDURE LeftClear (): BOOLEAN;
PROCEDURE RightClear (): BOOLEAN;
PROCEDURE Painted (): BOOLEAN;

PROCEDURE Start; - устанавливает все в начальное состояние.

окошко:
PROCEDURE OpenView;
PROCEDURE CloseView;
PROCEDURE Deposit;

лабиринт: создание, сохранение, загрузка.
PROCEDURE InitMaze;
PROCEDURE CreateMaze;
PROCEDURE OpenMaze;
PROCEDURE OpenThisMaze (IN name: ARRAY OF CHAR);
PROCEDURE SaveMaze;
PROCEDURE SaveMazeAs;
END SkRobot.


Код:
MODULE SkRoboScript;
 (* Вызов SkRoboScript.Init предполагается вставлять куда-нибудь в Config.Setup *)
PROCEDURE Init;
BEGIN
  (* выбираем язык *)
  SkScript.SetParser(SkLangRu.Parse);

  (* определяем исполнителя: имя, процедура инициализации *)
  SkScript.DefPerfomer('Robot', SkRobot.Start);

  (* описываем команды и проверки: имя, процедура *)
  SkScript.DefCommand('Вверх', SkRobot.Up);
  SkScript.DefCommand('Вниз', SkRobot.Down);
  SkScript.DefCommand('Вправо', SkRobot.Right);
  SkScript.DefCommand('Влево', SkRobot.Left);
  SkScript.DefCommand('Закрасить', SkRobot.Paint);
  SkScript.DefTest('СверхуСвободно', SkRobot.UpClear);
  SkScript.DefTest('СнизуСвободно', SkRobot.DownClear);
  SkScript.DefTest('СправаСвободно', SkRobot.RightClear);
  SkScript.DefTest('СлеваСвободно', SkRobot.LeftClear);
  SkScript.DefTest('Закрашено', SkRobot.Painted);

  (* устанавливаем обработчик ошибок *)
  SkRobot.SetErrorHandler(SkScript.HandleError)
END Init;


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Понедельник, 30 Июнь, 2008 15:42 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4695
Откуда: Россия, Орёл
Trurl писал(а):
В ближайшее время буду отлучен от компьютера,

...звучит как приговор инквизиции...
:mrgreen:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Понедельник, 30 Июнь, 2008 15:55 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Trurl писал(а):
В ближайшее время буду отлучен от компьютера, полноценную документацию сделать не успею. Пока очень кратко.


Спешки нет, пока пусть так, остальное после обратного прилучения :-)
Мне нужно позаниматся своей главной работой :-), поэтому ограничусь указочкой в новостях.

Всем хорошо отдохнуть!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Четверг, 26 Январь, 2012 13:05 

Зарегистрирован: Четверг, 01 Июнь, 2006 11:14
Сообщения: 240
подскажите, возможно ли малой кровью сделать "не моментальное" исполнение робота (используя SkRobot, без SkScript)?
в справке:
Цитата:
Интерпретатор позволяет исполненять программы на учебном языке медленно или даже пошагово. Для запуска программы надо открыть окно, содержащее её текст и выбрать пункт "Выполнить" в меню "Программа".

но используя интерпретатор работаем не с модулями бб, а с учебным языком... (свои плюсы есть конечно, но...)

Русифицировать сами команды робота легко, в школьной сборке команды кп на русском есть, т.е. робот на русском получается и работает норм (разбиваясь об стены трап не выкидывает), но все происходит моментально.
Код:
МОДУЛЬ  задание1;
   ПОДКЛЮЧИТЬ  Р:=SkRobotRu, Ч := i21eduЧерепашка, Ввод := i21eduВвод, Вывод := i21eduВывод;
   
НАЧАЛО
   ПОКА Р.СнизуСвободно() ДЕЛАТЬ
      Р.Вниз;
   КОНЕЦ;
КОНЕЦ задание1.


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

сам слабо в бб разбираюсь, но ощущение, что просто не получится...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Четверг, 26 Январь, 2012 14:00 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
Малой кровью не выйдет. Собсвенно, интерпретатор ради этого и делался.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Четверг, 26 Январь, 2012 15:50 

Зарегистрирован: Четверг, 01 Июнь, 2006 11:14
Сообщения: 240
Trurl писал(а):
Малой кровью не выйдет. Собсвенно, интерпретатор ради этого и делался.

понятно, т.е. либо учебный интерпретируемый с задержками, либо как у черепахи с модулями, но моментальный.
хм...

скажите(исходники посмотрел, но не разобрался), сложилось впечатление, что интерпретатор не завязан на операторы кп (цикл пока, если и тд), т.е. в интерпретаторе можно (малой кровью) реализовать цикл "повтори Н раз"? (хотя вроде процедуры параметров не поддерживают, так, что реализовать влево_на (50) в котором используется цикл н-раз все равно не получится...)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Четверг, 26 Январь, 2012 16:39 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Чтобы робот не был светом в оконце, засвидетельствую, что люди более опытные в школьной тематике замечали, что Кумир сам противоречит своим же принципам: слишком много исполнителей etc.

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

Робот попадает в нехороший резонанс из-за легкости сочинения множества задач.
Но не в этом цель алгоритмики.

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

Я пока не вижу, что без подобных роботов нельзя обойтись. Пока обойтись удается, и вполне содержательно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Пятница, 27 Январь, 2012 09:33 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
___ писал(а):
скажите(исходники посмотрел, но не разобрался), сложилось впечатление, что интерпретатор не завязан на операторы кп (цикл пока, если и тд), т.е. в интерпретаторе можно (малой кровью) реализовать цикл "повтори Н раз"? (хотя вроде процедуры параметров не поддерживают, так, что реализовать влево_на (50) в котором используется цикл н-раз все равно не получится...)

Там внутре "цикл Дейктры". :) Можно и "повтори Н раз" сделать, но, действительно, без переменных пользы от него немного.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Пятница, 27 Январь, 2012 09:41 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
Info21 писал(а):
Робот попадает в нехороший резонанс из-за легкости сочинения множества задач.

Да, для робота легко сочинять содержательные алгоритмические задачи. Не вижу в этом никакого вреда, кроме пользы.

Info21 писал(а):
Но не в этом цель алгоритмики.

А в чём?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще один робот
СообщениеДобавлено: Пятница, 27 Январь, 2012 19:46 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Trurl писал(а):
Info21 писал(а):
Робот попадает в нехороший резонанс из-за легкости сочинения множества задач.
Да, для робота легко сочинять содержательные алгоритмические задачи. Не вижу в этом никакого вреда, кроме пользы.
Плохо, что роботу уделяется непропорциональное внимание, в ущерб другим, не менее -- а, может, и более -- важным темам. Вот и всё.
Trurl писал(а):
Info21 писал(а):
Но не в этом цель алгоритмики.
А в чём?
Скорее, цель школьного предмета алгоритмики -- учить решать задачи.


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

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


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

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


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

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