Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Теоретические вопросы _ Заполнение двумерного статического массива

Автор: 4итер 29.05.2013 20:46

Создать двумерный статический массив 20*20. Его необходимо заполнить как шахматную доску.
Не знаю как реализовать заполнение, т.е. чтобы белые цвета были "1", а черные "0".

Автор: APAL 30.05.2013 12:46

Подозреваю, что если исследовать сумму индексов элемента массива на четность/нечетность, то можно заполнить массив.

Автор: Ромаха 30.05.2013 15:32

APAL, хорошая идея smile.gif

Но представим что нам надо заполнить N*N клеток. (где N <= 1 000 000) Тогда мы должны будем проверить каждую клетку, что, возможно, не будет являться самым эффективным алгоритмом. Поэтому можно учитывать координаты только I-того, 1-го элемента матрицы. И в соответствии с ним заполнять остальные элементы строки.

Автор: APAL 30.05.2013 21:57

Цитата(Ромаха @ 30.05.2013 12:32) *

Но представим что нам надо заполнить N*N клеток. (где N <= 1 000 000) Тогда мы должны будем проверить каждую клетку, что, возможно, не будет являться самым эффективным алгоритмом. Поэтому можно учитывать координаты только I-того, 1-го элемента матрицы. И в соответствии с ним заполнять остальные элементы строки.


Хорошо, расширим задачу до N... т.е. попытаемся уйти от сложения больших чисел:
Используем рекурсию!

Код (Показать/Скрыть)


Автор: APAL 5.06.2013 15:04

Кстати, если все таки подходить к решению именно как к шахматной доске (или хотя бы чтобы количество строк/столбцов было четным), то не обязательно перебирать в цикле весь массив:

 For i:=1 to N div 2 do
For j:=1 to N do
If odd(j) then m[i*2-1,j]:=1
else m[i*2,j]:=1;