Обсуждение

В архиве: 6 комментариев.

Читать и комментировать в ЖЖ ↗

vvagr · 5 ноября 2011

Комментарий

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

Анатолий Левенчук · 5 ноября 2011

Комментарий

А я с ребенком на экскурсии в Элисте был: примерно те же тактико-технические данные, что и у Урюпинска. Но для обсуждения логики тогда чуть рановато было.

Ответ на комментарий

Имя не сохранено · 7 ноября 2011

Комментарий

А зачем для раскраски доски использовать знания о четности и не четности? Кончено я согласен что так решать легче, но можно и без этого обойтись. Для третьеклассника ИМХО более очевидно увидеть что каждая нижняя линия это верхняя смещенная на одну клетку, ну или от диагоналей от толкнутся... Т.е. в лоб можно например так написать: declare i number default 1; j number default 1; k boolean default false; n number default 4; m number default 3; begin loop exit when i > n; i := i +1; loop exit when j > m; j := j +1; if k then dbms_output.put('0'); else dbms_output.put('#'); end if; k := not k; end loop; k := false; for t in 1..i-1 loop k := not k; end loop; j := 1; dbms_output.put_line(''); end loop; end;

Анатолий Левенчук · 7 ноября 2011

Комментарий

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

Ответ на комментарий

Имя не сохранено · 7 ноября 2011

Комментарий

Пройтись роботом или написать в вывод разницы особой нет. Отсутствие логических переменных легко обходится. Собственно я комментарий написал к тому что для решения алгоритмической задачи математический бэкграунд не нужен, хотя и безусловно полезен. Насколько верно вводить дополнительные мат. знания (без которых можно обойтись) при изучение программирования особенно учитывая разницу между 3-й и 7-мым классом это вопрос спорный... Кстати, а что в вашем понимании значит программировать культурно?

Ответ на комментарий

Анатолий Левенчук · 7 ноября 2011

Комментарий

У меня тут случай особый: я иду по курсу для 7-го класса физматшколы, а у меня третьеклассник. Эта ситуация, увы, никем и никогда не была предусмотрена -- я тут первый, и спецкурса у меня для этого случая нет. Приходится подгонять другие курсы (прежде всего математики) под курс алгоритмики. Программировать культурно -- это когда пишется самая короткая и понятная программа. Вот сравните: эти программы закрашивают шахматный прямоугольник, но одна использует только цикл "раз" (этот вариант предложил дитенка, но так и не смог отладить), а другая использует цикл "для" (предложил я), а третий вариант -- промежуточный (предложил дитенка, чтобы не повторять мой вариант): --- использовать Робот алг Главный алгоритм нач Нарисовать шахматную доску (5,11) кон ------ алг Нарисовать шахматную доску (арг цел высота, арг цел длина) дано высота > 0 и длина > 0 надо | Робот рисует прямоугольник размером "высота"x"длина" | закрашенный в шахматном порядке нач нц int(высота/2) раз нц int(длина/2) раз закрасить вправо вправо кц если int(длина/2)*2<>длина то закрасить все нц int(длина/2)*2 раз влево кц вниз нц int(длина/2) раз вправо закрасить вправо кц нц int(длина/2)*2 раз влево кц вниз кц если int(высота/2)*2<>высота то нц int(длина/2) раз закрасить вправо вправо кц если int(длина/2)*2<>длина то закрасить все нц длина раз влево кц все кон ---- алг Нарисовать шахматную доску (арг цел высота, арг цел длина) дано высота > 0 и длина > 0 надо | Робот рисует прямоугольник размером "высота"x"длина" | закрашенный в шахматном порядке нач цел столбец, ряд нц для ряд от 1 до высота нц для столбец от 1 до длина если (int(ряд/2)*2<>ряд и int(столбец/2)*2<>столбец) или (int(ряд/2)*2=ряд и int(столбец/2)*2=столбец) то закрасить все вправо кц нц длина раз влево кц вниз кц кон --------- алг Нарисовать шахматную доску (арг цел высота, арг цел длина) дано высота > 0 и длина > 0 надо | Робот рисует прямоугольник размером "высота"x"длина" | закрашенный в шахматном порядке нач цел столбец, ряд нц для ряд от 1 до высота если int(ряд/2)*2<>ряд то нц для столбец от 1 до длина если int(столбец/2)*2<>столбец то закрасить все вправо кц иначе нц для столбец от 1 до длина если int(столбец/2)*2=столбец то закрасить все вправо кц все нц длина раз влево кц вниз кц кон ------- И насчет булевых переменных: вот как раз сегодня вечером их и рассказал -- попалась первая задача с их использованием.

Ответ на комментарий