Помогите пожалуйста написать программу заполнения заштрихованной области трехмерного массива. Заполнение провести единицами, с использованием процедур. Вывести массив по горизонтальным плоскостям
Krjuger
7.12.2011 0:18
А Вы попробуйте решить данную задачу для двухмерного массива,и получите
Если сами сможете сделать это,то сделать ее трехмерной не составит труда.И не говорите,что вы ничего не понимаете и языка не знаете.Покажите то, что у вас получается,пусть даже неправильное, чтобы отвечающие люди видели,что вы заинтересованы в решении задачи.
Yulyasha
7.12.2011 1:37
мой вариант, но он неправильный,к сожалению еще подумаю,как переделать, но пока не получается
Код
const n=6; m=8; var a:array [1..n,1..m]of integer; i,j:integer; k:integer; begin k:=m; for i:=1 to n do for j:=k downto k-2 do begin if (k>0) then begin a[i,j]:=1; k:=k-1; end; end; for i:=1 to n do begin for j:=1 to m do write (a[i,j]:5); writeln; end; readln; end.
Krjuger
7.12.2011 4:25
Оно не работает, потому что никогда нельзя менять переменную критерия цикла в самом цикле.У вас получаеться вы на каждой итерации меняете k и в итоге упираетесь в условие,когда k<0, но критерий для выхода из цикла никогда не выполниться и вы получаете вылет за границы.
const n=6;
m=8;
var a:array [1..n,1..m]of integer; i,j:integer;
k:integer;
begin
k:=m;
for i:=1to n dobeginfor j:=k downto k-2dobeginif (k>0) thenbegin
a[i,j]:=1;
end;
end;
k:=k-1;
end;
for i:=1to n dobeginfor j:=1to m do
write (a[i,j]:5);
writeln;
end;
readln;
end.
Вот это хотябы построит лесенку.Но я бы на вашем месте избавился от магических цифр.Тогда получилось нечно подобное.
const n=7;
m=9;
var
a:array [1..n,1..m] of integer;
i,j:integer;
k:integer;
begin
k:=m;
for i:=1to n dobeginfor j:=k downto k-abs(m-n) dobeginif (k>0) thenbegin
a[i,j]:=1;
end;
end;
k:=k-1;
end;
for i:=1to n dobeginfor j:=1to m do
write (a[i,j]:5);
writeln;
end;
readln;
end.
Теперь изменяя размерность массива,у нас сразу будет меняться толщина нашего слоя единиц,НО размерность m должна быть не меньше n,если хотите,чтобы обрабатывалься и этот случай,перед самими циклами проверяете размерность и дальше, либо говорите,что нельзя такие задовать,либо как то переопределяете, то как выглядит диагональный слой.Но здесь уже нажны инструкции от того,кто давал задачу.Либо самому выбрать и пояснить, почему именно так мы захотели сделать.Навесить третью меру попробуйте сами,не получиться пишите.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.