При изучении темы “Двумерные массивы” очень важным является усвоение и свободное оперирование учащимися такими понятиями, как элемент двумерного массива, строка, столбец, диагонали. Предлагаемое задание позволяет в интересной и простой форме осуществить отработку данных понятий. Задачи основаны на “раскрашивании” матриц в цвета флагов различных государств.
Приведём фрагменты возможных программ на языке программирования QBasic.
Основные цвета графического режима Бейсика, используемые для работы: белый – 15, красный – 4, синий – 9, зелёный – 2.
Перед работой имеет смысл вспомнить назначение основных логических операторов AND и OR.
“Шаблон” всех флагов – матрица 15x15:
CLS
DIM A(15,15)
FOR i=1 TO 15 ‘цикл по строкам
FOR j=1 TO 15 ‘цикл по столбцам
…
PRINT A(i,j);
NEXT j
PRINT
NEXT i
Изобразите различные флаги, используя матрицы 15x15.
Каждое из заданий отличается своим блоком условия, которое добавляется внутрь “шаблона” для флага. Особенности формулирования условия обсуждаются с учащимися для каждого задания.
1) “Российский флаг”
Белый |
Синий |
Красный |
Программа требует использование условия на строки таблицы. Белый цвет – 1-5 строки, синий цвет – 6-10 строки, красный цвет – 11-15 строки.
IF i<=5 THEN COLOR 15
IF i>5 AND i<=10 THEN COLOR 9
IF i>10 THEN COLOR 4
Результат – Рисунок 1.
2) “Итальянский флаг”
Зелёный |
Белый |
Красный |
Программа аналогична предыдущей, только условие накладывается на столбцы. Зелёный цвет – 1-5 столбцы, белый цвет – 6-10 столбцы, красный цвет – 11-15 столбцы.
IF j<=5 THEN COLOR 2
IF j>5 AND j<=10 THEN COLOR 15
IF j>10 THEN COLOR 4
Результат – Рисунок 2.
3) “Швейцарский флаг”
(красная основа, по центру белый крест на 3 строки и 3 столбца).Программа построена на условиях, аналогичных двум предыдущим задачам (на строки и столбцы).
Красный |
|||
Белый |
|||
COLOR 4 ‘красная основа
IF i>=7 AND i<=9 THEN COLOR 15
IF j>=7 AND j<=9 THEN COLOR 15
Здесь требуется обсуждение возможности объединения двух условий в одно с использованием оператора OR: IF (i>=7 AND i<=9) OR (j>=7 AND j<=9) THEN COLOR 15
Для большего соответствия швейцарскому флагу можно предложить учащимся закрасить в красный цвет ещё 3 строки сверху и снизу и 3 столбца слева и справа.
IF i<4 OR i>12 OR j<4 OR j>12 THEN COLOR 4
Результат – Рисунок 3.
4) “Андреевский флаг”
(белая основа, по двум диагоналям 3 синие полосы).Программа требует использование условия на диагонали таблицы.
COLOR 15 ‘белая основа
IF i=j OR i+j=16 THEN COLOR 9
IF i=j+1 OR i+j=17 THEN COLOR 9
IF i=j-1 OR i+j=15 THEN COLOR 9
Результат – Рисунок 4.
5) “Японский флаг”
(белая основа; в центре красный квадрат 5? 5).COLOR 15 ‘белая основа
IF (i>=6 AND i<=10) AND (j>=6 AND j<=10) THEN COLOR 4
Для большего соответствия японскому флагу можно предложить учащимся закрасить в белый цвет ещё 4 точки, расположенные в вершинах красного квадрата.
IF (i=6 AND j=6) OR (i=6 AND j=10) OR (i=10 AND j=6) OR (i=10 AND j=10) THEN COLOR 15
Результат – Рисунок 5.
6) “Флаг Великобритании”
Даётся учащимся на самостоятельное заполнение. Является “комбинацией” Андреевского и швейцарского флагов.
Результат – Рисунок 6.
7) Свой флаг
В качестве дополнительного задания можно предложить учащимся придумать свой флаг, используя изученные элементы двумерного массива и любые цвета.