Задача

1 /12


Что такое матрица? Создание, вывод на экран

Теория Нажмите, чтобы прочитать/скрыть


Введение.

Очень часто при работе с какой-либо информацией приходится иметь дело с табличными данными. Современные программы очень часто работают именно с такими данными. Самый простой пример - это программирование игр на клетчатой доске: крестики-нолики, шахматы, шашки и т.п.

В математике такие структуры называются матрицами.

 
Матрица - это прямоугольная таблица составленная из элементов одного типа (чиcел, строк и т.д).

Такие данные на языке C# можно хранить и обрабатывать в виде двумерных массивов - "массивов массивов".
Чтобы обработать данные в таблице, надо запоминать состояние каждой ячейки (клетки). Каждая ячейка имеет два номера: номер строки и номер столбца.
В матрице каждый элемент имеет два индекса: сначала указывается номер строки, затем номер столбца. Нумерация строк и столбцов начинается с нуля.
Например, элемент A[1, 2] - это элемент расположенный во второй строке и третьем столбце.

Так же как и с обычными массивами, для того, чтобы работать с матрицами, необходимо научиться их создавать, вводить, обрабатывать и выводить на экран.

Создание матрицы.

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

int[,] array = new int[4, 2]; // 4 строки, 2 столбца

 

После создания матрицы можно заполнить ее произвольными значениями. Так как каждый элемент имеет два индекса, то необходимо использовать вложенные циклы

for (int i=1; i <= N, i++) {       // N - число строк
    for (int j=1; j <= N, j++) {   // M - число столбцов
        A[i, j] = ...
    }
}
Вывод матрицы на экран.

Для обработки и вывода списка, как правило, используется два вложенных цикла. Первый цикл по номеру строки, второй цикл - по элементам внутри строки. Для того, чтобы вывести матрицу на экран построчно, разделяя числа пробелами внутри одной строки, необходимо написать такой фрагмент:
 
for (int i=1; i <= N, i++) { 
    for (int j=1; j <= N, j++) { 
        Console.Write(A[i, j] + " ");
    }
    Console.WriteLine(); // переход на новую строку 
}
   

То же самое можно сделать, но использовать циклы не по индексу, а по значениям списка (foreach). Попробуйте сами написать подпрограмму, реализующую это.

Задача

Заполните двоичную матрицу (состоящую только из нулей и единиц) в шахматном порядке. В левом верхнем углу должен быть нулевой элемент.

Входные данные: во входной строке записаны через пробел размеры матрицы: количество строк и количество столбцов ( 1 <= M <= 100 ).

Выходные данные: программа должна вывести двоичную матрицу по строкам.

Пример.
Входные данные Выходные данные
1 4 5 0 1 0 1 0
1 0 1 0 1
0 1 0 1 0
1 0 1 0 1

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
C#3
Комментарий учителя