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=столбец то закрасить все вправо кц все нц длина раз влево кц вниз кц кон ------- И насчет булевых переменных: вот как раз сегодня вечером их и рассказал -- попалась первая задача с их использованием.

К записи · К обсуждению