OberonCore

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

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




Начать новую тему Ответить на тему  [ Сообщений: 64 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
СообщениеДобавлено: Среда, 05 Сентябрь, 2007 10:22 

Зарегистрирован: Суббота, 09 Декабрь, 2006 08:56
Сообщения: 35
Откуда: Беларусь
Больше ничего, пока не трэба. :lol:


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 05 Сентябрь, 2007 10:43 

Зарегистрирован: Суббота, 09 Декабрь, 2006 08:56
Сообщения: 35
Откуда: Беларусь
Прошу извинить не хорошего человека. :oops: Процедуру размера поля Робота не помешало бы. :roll:


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

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


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

Зарегистрирован: Суббота, 09 Декабрь, 2006 08:56
Сообщения: 35
Откуда: Беларусь
Согласен


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 05 Сентябрь, 2007 14:34 

Зарегистрирован: Четверг, 01 Июнь, 2006 11:14
Сообщения: 240
кхм...
скажите, только у меня такое недоразумение?
работа с черепахой
такой код:
Код:
PROCEDURE a*;
VAR
i:INTEGER;
BEGIN
   Идти(5);Повернуть(60);
   Идти(20);Повернуть(180);Идти(20);
   Повернуть(60);
   Идти(20);Повернуть(180);Идти(20);
   Повернуть(-120);
END a;

PROCEDURE b*;
VAR
i:INTEGER;
BEGIN
   
   ОпуститьПеро;
   
   Повернуть([b]30[/b]);
   FOR i:=1 TO 20 DO
      a;
   END;
   Повернуть(180);Идти(100);Повернуть(-120);
END b;

выделеный угол:
если углы кратны 45 (45, 90 и тд) то черепаха возвращается в исходную точку
а если например задаешь угол 30 или 60, то накапливается ошибка и черепаха возвращается в др точку
по моему это критично
или это только у меня так?


Последний раз редактировалось ___ Среда, 05 Сентябрь, 2007 15:00, всего редактировалось 2 раз(а).

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

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


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

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Ошибка действительно может накапливаться. Возможным выходом может быть - угол черепашки при поворотах приводить в диапазон, скажем, [-pi, pi], т.к. sin/cos разложением в ряд считаются лучше всего вблизи 0.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 05 Сентябрь, 2007 15:07 

Зарегистрирован: Четверг, 01 Июнь, 2006 11:14
Сообщения: 240
Евгений Темиргалеев писал(а):
Ошибка действительно может накапливаться. Возможным выходом может быть - угол черепашки при поворотах приводить в диапазон, скажем, [-pi, pi], т.к. sin/cos разложением в ряд считаются лучше всего вблизи 0.

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


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

Зарегистрирован: Четверг, 01 Июнь, 2006 11:14
Сообщения: 240
Илья Ермаков писал(а):
Странно, надо будет посмотреть...
С этими накоплениями ошибок вечная проблема. Причём в исходном варианте с хранением в REAL накопление было ещё большим...
(Возможно, сказывается отсутствие у меня опыта работы с плавающей арифметикой. За последние два года случаи, когда приходилось её использовать, можно по пальцам перечесть, уж такова специфика задач...) :-)

по документауции, как я понял черепаха - обертка чертежника
получается у него будет такая же проблема?


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

Зарегистрирован: Четверг, 01 Июнь, 2006 11:14
Сообщения: 240
мысли по поводу использования бблаб в курсе Кушниренко:
1) в кумире все операторы на русском, смотрится более органично. Но в данном случае я это пропущу тк например у нас в школе хоть и были русифицированные логомиры, программы мы писали анг командами
так что тут не все однозначно
2) цикл FOR не может быть заменой циклу n раз у Кушниренко, тк его курс построен таким образом, что циклы и ветвления идут ДО введения переменных
тут это принципиально

FOR более подходит для цикла "для"
получается курс все же нужно модифицировать
пропускается параграф "цикл n раз" и один из пунктов в параграфе "цикл пока" в версии учебника 2002г
в принципе не смертельно)
переход пройдет не совсем бескровно

пока вот такие мысли


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

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
___ писал(а):
по документауции, как я понял черепаха - обертка чертежника
получается у него будет такая же проблема?

Неа, причём тут чертёжник? Чертёжник - это обычная растровая графика. Откуда там взяться накоплению ошибок, если координаты каждого примитива задаются явно?

Черепашку посмотрю...


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

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

Да, есть такой момент... В принципе, я не считаю его особо важным - основным компонентом курса является всё-таки обучение обращению с WHILE.
В принципе, у меня была сначала идея сделать транслятор КуМир - КП, но из-за нехватки времени и больших сомнений в необходимости так и не стал...


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

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Подготовил новую версию Lab.
вложение удалено. см. viewtopic.php?p=48199#p48199
Код:
Изменения в версии 1.0.1 от 10.09.2007

Исправлены ошибки:

1. При щелчке по другому заголовку задачи не изменялась информация в полях диалога свойств задачи.

2. В документе, открытом в режиме "только чтение", можно было изменять свойства задач.

Добавления:

1. Таблица стандартных цветов (добавлена ссылка в карте документации).

2. Доработан исполнитель Робот.

   1) Введена возможность быстро строить большие стенки.
   Удерживайте нажатым Shift и проведите мышью линию, вдоль которой требуется построить стену, или прямоугольник, который требуется ограничить (однако для тех фрагментов, где уже есть стена, она будет убрана. Т.е. разметка "инвертируется").
   
   2) Добавлены команды:
      FillColor (ЗакраситьЦветом) - позволяет закрашивать клетку определённым цветом.
      EditClear (РедактОчистить) - очищает разметку на поле.
      Load (Загрузить), Save (Сохранить) - загружает и сохраняет поле Робота.
      Подробнее см. документацию модулей LabRobot и LabRobotRu.


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


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

Зарегистрирован: Понедельник, 29 Январь, 2007 19:00
Сообщения: 370
Откуда: Украина, Запорожье
Илья Ермаков писал(а):
Что касается погрешностей в Черепашке, то серьёзно пока этой проблемой не занимался и с ходу даже не знаю, в какую сторону копать... Буду признателен за советы или помощь.

Исправленный модуль Черепашки без накопления погрешностей :wink:


Вложения:
Turtle.zip [5.24 КБ]
Скачиваний: 501
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 12 Сентябрь, 2007 16:32 
Модератор
Аватара пользователя

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


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

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
PGR писал(а):
Исправленный модуль Черепашки без накопления погрешностей :wink:

При использовании REAL координат, нужно еще малые значения Sin/Cos округлять до 0. Т. е. учитывать машинный ноль. Иначе следующий код приводит к постепенному накоплению погрешности - и в итоге, при очень большом числе повторений, черепашка сместится на пиксел вверх или вниз.
Код:
Идти(100); Повернуть(180); Идти(100); Повернуть(-180)

Хотя всё это больше теория нежели практика...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 14 Сентябрь, 2007 13:49 

Зарегистрирован: Понедельник, 29 Январь, 2007 19:00
Сообщения: 370
Откуда: Украина, Запорожье
Евгений Темиргалеев писал(а):
При использовании REAL координат, нужно еще малые
значения Sin/Cos округлять до 0. Т. е. учитывать машинный ноль. Иначе следующий
код приводит к постепенному накоплению погрешности - и в итоге, при очень
большом числе повторений, черепашка сместится на пиксел вверх или вниз.
Хотя всё это больше теория нежели практика...

И насколько большое это число повторений? Больше 10^10? Сколько времени BlackBox Lab
будет выполнять такой алгоритм? Больше суток? :wink:

В общем, как говорил info21...
info21 писал(а):
Оставить самый простой вариант.
Потом экспериментально обосновывать сложный.


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

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
PGR писал(а):
Евгений Темиргалеев писал(а):
При использовании REAL координат, нужно еще малые
значения Sin/Cos округлять до 0. Т. е. учитывать машинный ноль. Иначе следующий
код приводит к постепенному накоплению погрешности - и в итоге, при очень
большом числе повторений, черепашка сместится на пиксел вверх или вниз.
Хотя всё это больше теория нежели практика...

И насколько большое это число повторений? Больше 10^10? Сколько времени BlackBox Lab
будет выполнять такой алгоритм? Больше суток? :wink:

Если черепашка через сутки сместится на пиксел, объясним детям, что она очень устала и у неё лапы заплетаются :-)


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

Зарегистрирован: Четверг, 01 Июнь, 2006 11:14
Сообщения: 240
Илья Ермаков писал(а):
PGR писал(а):
Евгений Темиргалеев писал(а):
При использовании REAL координат, нужно еще малые
значения Sin/Cos округлять до 0. Т. е. учитывать машинный ноль. Иначе следующий
код приводит к постепенному накоплению погрешности - и в итоге, при очень
большом числе повторений, черепашка сместится на пиксел вверх или вниз.
Хотя всё это больше теория нежели практика...

И насколько большое это число повторений? Больше 10^10? Сколько времени BlackBox Lab
будет выполнять такой алгоритм? Больше суток? :wink:

Если черепашка через сутки сместится на пиксел, объясним детям, что она очень устала и у неё лапы заплетаются :-)

разве нельзя черепахе выставить режим выполнять команды мгновенно?
хотя 10^10...


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

Зарегистрирован: Понедельник, 29 Январь, 2007 19:00
Сообщения: 370
Откуда: Украина, Запорожье
___ писал(а):
разве нельзя черепахе выставить режим выполнять команды мгновенно?

Речь именно о таком режиме, что будет в замедленном -- даже представить сложно...
Хотя проверил у себя -- на N=10^7 BlackBox уходит в своп и не возвращается :) В Lab формируется очередь отложенных команд для дальнейшего отображения, так что до накопления погрешности в 1 пиксел, наверное, дойти не получится и за сутки -- памяти не хватит.

Можете использовать Черепашку без всяких опасений :wink:


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

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


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

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


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

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