[Logo] Форум DL
  [DL]  На главную страницу 
Индекс форума ->Учебный процесс ГГУ/СШ 27 ->Обучение программированию "с начала" 1, 2, 3, 4, 5, 6, ... 9, 10, 11
Автор Сообщение
Andrey Logvinenko

Темы: 0
Сообщений: 68

Мой профиль


Владислав Макаренко:

http://dl.gsu.by/differentialStudy.jsp?dSid=1195
ЧЯРис\8. Задачи на заливку\1 - "Создать Квадрат" 193709 Andrey Logvinenko  


Подумаю как изменить условие чтобы задача стала более прозрачной. Штриховка должна быть с интервалом в одну клетку.
Пример для N=5


Посмотрите свое решение на нечетных входных данных - вам станет понятно что у вас не так.

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

Первая итерация: Отрисовка контура и штриховка.
Отрисовка контура была в задачах ранее - там все понятно.
Задачу штриховки разбить на две подзадачи:
- штриховка до главной диагонали и
- штриховка после главной диагонали.

Штриховка - нарисовать N диагональных линий по возрастанию длины. Банальный цикл.

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

ps: Желаю удачи на задаче со штриховкой прямоугольника. Там аналогичная задача, но с нюансами разных длин (больше не скажу, будет интереснее самим найти все нюансы).
Andrey Logvinenko

Темы: 0
Сообщений: 68

Мой профиль


Владислав Макаренко:


Я отправил задачу, не прошло вот решение:
uses charis;
begin 
  js(3);rd;ru;d;ru;rs(2);rd;d;l;lu;ld;rd;d;lu;l;ds(n);
//..содержимое выкушено чтобы не могли другие сдать задачу скопировав..
  pause;
end.
 


Берем решение, запускаем на N=10 M=10, считаем количество "травинок" 14-ть... а должно быть 2xM

И... как получить чтобы их было на экране 20-ть?
Владислав Макаренко

Темы: 0
Сообщений: 37

Мой профиль
ну я додумался только к 10 9 и 8 больше не получается. вот задача:
uses charis;
begin
  rs(n);ds(n);ls(n);us(n);
  rds(n);l;lus(n-1);d;rds(n-2);l;lus(n-3);d;rds(n-4);l;lus(n-5);d;rds(n-6);l;lus(n-7);d;rds(n-8);l;lus(n-9);jz;rd(n);u;
  lus(n-1);r;rds(n-2);u;lus(n-3);r;rds(n-4);u;lus(n-5);r;rds(n-6);u;lus(n-7);r;rds(n-8);l;lus(n-9);
  pause;
end.

Владислав Макаренко

Темы: 0
Сообщений: 37

Мой профиль
подвинуть в лево
\Не получилось (я нажал вместо js(3); js(9);) говорит не правильно хотя колчество того и того совпадаета чтобы совпадало место я не знаю как
извинете но вы можите пожалуйста рисунок пальмы 10 на 10
который должен получится
Владислав Макаренко

Темы: 0
Сообщений: 37

Мой профиль
Дайте нам пожалуйста получившиеся изображение при M равном 10 и N равном 10
чтобы мы могли видеть получившееся изображение и могли понять направление травинок и где они должны находится
просто без картинки очень трудно это узнать
Andrey Logvinenko

Темы: 0
Сообщений: 68

Мой профиль
Незнаю получиться ли без инета:
Картинка с оригинального решения.
Andrey Logvinenko

Темы: 0
Сообщений: 68

Мой профиль
Не понимаю почему это не оказалось очевидным,если не сложно, расскажите ваш ход мыслей.
Владислав Макаренко

Темы: 0
Сообщений: 37

Мой профиль


Andrey Logvinenko:

Незнаю получиться ли без инета:
Картинка с оригинального решения. 


Спасибо вам за изображение но задача всё ровно не работает хотя у меня в pascal рисунок тот же что и на ихображении (во всяком случае я так считаю)
uses charis;
begin
  js(7);rs(2);rd;ru;d;ru;rs(2);rd;d;l;lu;ld;rd;d;lu;l;jz;
  js(7);ld;d;r;ru;rd;ld;d;ru;r;ds(n);us(n);j;ds(n);
  for i:=1 to m do begin ru;d;end;
  ls(m+1+m);
  for i:=1 to m do begin u;rd;end;ls(m);
  pause;
end.

Владислав Макаренко

Темы: 0
Сообщений: 37

Мой профиль


Andrey Logvinenko:

Не понимаю почему это не оказалось очевидным,если не сложно, расскажите ваш ход мыслей. 

Я сначала заметил из вашего рисунка что надо 7 прыжков чтобы можно было писать а потом просто писал
Михаил Долинский

Темы: 1987
Сообщений: 47369

Мой профиль
А ещё ЧЯРис-программы можно писать так

uses charis;
begin
  draw('WJJJJJDLLLDLLRRDRRRDURURRDUUDLLUL');
end.


Выделять диагонали скобками (RD).

Например ромб 2x2, три отображения:

  draw("J2(RD)2(LD)2(LU)2(RU)2");
  Js(2);RDs(2);LDs(2);LUs(2);RUs(2);
  J;J;RD;RD;LD;LD;LU;LU;RU;RU;

Andrey Logvinenko

Темы: 0
Сообщений: 68

Мой профиль


Владислав Макаренко:

ну я додумался только к 10 9 и 8 больше не получается. вот задача:
uses charis;
begin
  rs(n);ds(n);ls(n);us(n);
  rds(n);l;lus(n-1);d;rds(n-2);l;lus(n-3);d;rds(n-4);l;lus(n-5);d;rds(n-6);l;lus(n-7);d;rds(n-8);l;lus(n-9);jz;rd(n);u;
  lus(n-1);r;rds(n-2);u;lus(n-3);r;rds(n-4);u;lus(n-5);r;rds(n-6);u;lus(n-7);r;rds(n-8);l;lus(n-9);
  pause;
end.
 


Вы выходите за пределы Экрана.

Я выкладывал исходник Charis.pas - возьмите его в процедуре prepareSpace вместо dx,dy := 10 присвойте например 70 и 70 - сразу станет понятно что рисуется лишнего.

для N=2:


Все тесты я проверил уже второй раз, там все хорошо.
Andrey Logvinenko

Темы: 0
Сообщений: 68

Мой профиль


Владислав Макаренко:


Andrey Logvinenko:

Не понимаю почему это не оказалось очевидным,если не сложно, расскажите ваш ход мыслей. 

Я сначала заметил из вашего рисунка что надо 7 прыжков чтобы можно было писать а потом просто писал  

А точно ли 7? Почему для теста 1- нужно 0, а для 10-нужно 7-мь?
Andrey Logvinenko

Темы: 0
Сообщений: 68

Мой профиль


Владислав Макаренко:

Спасибо вам за изображение но задача всё ровно не работает хотя у меня в pascal рисунок тот же что и на ихображении (во всяком случае я так считаю)
 


Да, это решение подходит к 10-му тесту, но никак не к 1-му который есть в примере. Посмотрите в чем разница, и в каком случае эта разница начинает проявляться. Реально в вашей программе не хватает 2-х символов чтобы все сошлось.
Andrey Logvinenko

Темы: 0
Сообщений: 68

Мой профиль
Кстати, для гиков ЧЯРиса:

Чарис разрабатывался для двух исполнителей Червяк (рисует тонкую линию) и черепаха - закрашивает квадраты.

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

Включить режим Черепахи - команда Turttle, переключить назад в режим Червяка - комманда Worm;

Например программа:
Turttle;
J;J;J;D;R;R;L;L;
Ds(4);
L;D;L;U;L;R;U;R;

Рисует Ноту.

Еще примеры:
T;D;D;D;R;R;U;U;U;D;D;D;D;L;R;D;D;D;U;U;R;U;R;D;R;U;R;U;D;D;D;R;D; - Заяц
draw("TJRRDRRRDDDDUUULDLULDDDUUULLUDDDL") - Слоненок
draw("TJRD4U2L2UD3") - А

TJJRRRR(RD)LL(LD)U(LD)D(LU)(RU)LL(LD)D(RD)R(RD)(RU)D(R)DDLLR(RU)UURUURD - ? кто нарисует тот узнает что здесь
Михаил Долинский

Темы: 1987
Сообщений: 47369

Мой профиль
Как 5А работал в ЧЯРис без компьютеров
(в школе сборы Гомеля к областной олимпиаде по информатике)


Ольга Савицкая:

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

Начали второй урок с того, что получили задания в соответствии с результатами прошлых уроков. На первом ряду те, кто прошел только 4 основные команды (верх, низ, право, лево) + те, кто только начал. На третьем те, кто уже изучил команду с окружностью. На втором ряду все остальные.

Заранее разбила задания на три группы (получилось у 1го ряда - 30 заданий, у второго - 30, у третьего - 20). Второй урок мы перерисовывали задания с листиков и разобрали вместе несколько заданий. На третьем уроке мы работали самостоятельно каждый в своей тетради и начали проверять задания: Ученик один записывает задачу у доски - его все проверяют, если задача большая, то ученик диктует свои команды, а все остальные пытаются нарисовать у себя в тетради получившееся (было достаточно шумно, каждый хотел сказать про ошибки).

На четвертом уроке продолжали такую же работу. В конце решили попробовать придумать самостоятельно свои уникальные картинки и обменяться. На этом этапе началось баловство и мы стремительно прекратили эксперимент, и продолжили работать каждый в своей тетради. 
 
Индекс форума ->Учебный процесс ГГУ/СШ 27 ->Обучение программированию "с начала" 1, 2, 3, 4, 5, 6, ... 9, 10, 11
Time:0,042