Буду очень благодарен, если вы хоть как-то мне поможете с написанием данной программы:
задача:"Шахматная Доска"
Целочисленный массив K размером m x n заполнить нулями и единицами, расположив их в шахматном порядке.
(смысл: при запуске проги в окне должны появиться строчки с чередованием единиц и нулей
10101010
01010101
и т.д.
причем, количество строк и столбцов все время меняется и ограничено десятью).
Поиском не пробовал воспользоваться ? Задача решалась ...
Так что-ли?
var
i, j, n: integer;
start: integer;
begin
write('n = '); readln(n);
for i := 1 to n do begin
start := byte(odd(i));
for j := 1 to n do begin
write(start:2); start := 1 - start;
end;
writeln;
end;
end.
klem4, спасибо, но я не совсем понял то, что в программе
volvo,Спасибо.
да, доска квадратная, но у нас не n x n, а m x n.
Тоесть главное, чтобы в шахматном порядке было.
и еще, как объяснил учитель и m и n должны быть в программе и задаваться random-ом от 1 до 10,
т.е может быть одна строчка чисел, две и т.д, то же самое и со столбцами.
Тогда вот так:
var
i, j, n, m: integer;
start: integer;
begin
randomize;
m := random(10) + 1;
n := random(10) + 1;
for i := 1 to m do begin
start := byte(odd(i));
for j := 1 to n do begin
write(start:2); start := 1 - start;
end;
writeln;
end;
end.
Спасибо!
З.Ы. только что такое odd?
Функция такая... Вернет True, если ее аргумент - нечетный...
Чего, про тип Boolean никогда не слышал? Допустим, ты сравниваешь 2 числа:
If (a > b) then ...
Ааа, понял.
Владимир, не могли бы вы мне еще помочь.
Можно ли сделать эту программу без odd и start, как можно более примитивно.
Заранее Спасибо.
varГлавное - чтобы потом тебе не понадобилось сделать программу без циклов и Randomize...
i, j, n, m: integer;
begin
randomize;
m := random(10) + 1;
n := random(10) + 1;
for i := 1 to m do begin
for j := 1 to n do
write(((i + j + 1) mod 2):2);
writeln;
end;
end.
Спасиб.
А без циклов сложнее и длиннее будет?
Проще:
a[1,1]:=1;И так много раз, в зависимости от размера массива: Кол-во операторов = m*n
a[1,2]:=0;
...
a[1,n]:=0;
a[2,1]:=0;
...
a[2,1]:=1;
...
a[1,1]:=1;И так много раз, в зависимости от размера массива: Кол-во операторов = m*n
a[1,2]:=0;
...
a[1,n]:=0;
a[2,1]:=0;
...
a[2,1]:=1;
...
Sto
Я не об этом.
Я об этом -
Подскажите, что такое mod?
write(((i + j + 1) mod 2):2);
Заранее Спасибо.
Спасибо за объяснение.
Хз...тогда другой вопрос: смысл mod в этой проге?
Так у нас единицы и нули.
На четность столбцы и строки проверяют, да?
Идет вывод 1 и 0
for i := 1 to m do begin
for j := 1 to n do
write(((i + j + 1) mod 2):2);
Потрясающе.
Я бы до такого не додумался.
Спасибо, ребята.
Наконец-то разобрался во всем!