Доброго времени суток. Столкнулся с задачкой,а как решить,к сожалению, не знаю. Нужна ваша помощь!
Собственно сама задача:
Куб состоит из n3 прозрачных и не прозрачных элементарных кубиков. Имееется ли хотябы 1 просвет по каждому из трех измерений? Если это так,вывести координаты каждого просвета.
Рекомендация: Для хранения кубика выделить 3ех мерный массив с базовым типом минимально возможного размера,так как значениями его будут только 1 и 0. При тестированиии полезно ипользовать рандомизацию случайным образом присвоить элементам 0 или 1,возможно с указанием вероятности тех или других с последующей послойной распечаткой.
И если можно,то с пояснениями основных моментов. Заранее спасибо.
ЗЫ Рекомендация была в условии.
на вскидку:
провсет в i-ом измерении есть, если есть такое i для которого
cube[i][j][k] = 1 для j = 1,n и k = 1,n
по аналогии для j-го и k-го измерений.
ну это повторюсь на вскидку ...
Чета я ничего не понял. Ну это наверное от того,что опыта програмирования мало.
А если всетаки поплотнее задачкой заняться,какое ваше решение?
Все правильно: прежде, чем пытаться изложить что-то на языке программирования, следуеь то же самое изложить сперва по-русски.
просвет - это значить, если смотреть на кубик перпендикулярно грани, все кубики, находящиеся на пути взгляда (вглубь большого куба), будут прозрачными. То есть мы, рассматривая куб со стороны одной грани, видим эту грань как квадрат n*n квадратиков. Квадратик будет прозрачным только в том случае, если все квадратики, что расположены за ним по всей толщине куба вплоть до противопорложной грани, будут прозрачными. Вот и надо рассмотреть куб со всех сторон (достаточно 3 раза - по количеству пространственных измерений) и выяснить, еслть ли с каждой стороны хотя бы по одному прозрачному квадратику.
Ребят,помогите с задачкой. Скоро сдавать,а как решать я недопираю. Единственная нерешенная задача,а без неё типовой расчет не примут
Ну тебе и так помогают, а что в это время делаешь ты?
И теперь ты решил немножко перераспределить обязанности, чтобы мы готовились к твоим зачетам, а ты их только сдавал?
Прежде чем орать и говорить что он вас использует в своих целях, лучше б сели и подумали над задачей, не думаю что когда вы учились на первом курсе у вас не было проблем, El_Encarnado вот код программы.
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
const n=5;
var
a: array [1..n,1..n,1..n] of byte;
i,j,k: integer;
vis: boolean;
begin
randomize;
for i:=1 to n do
for j:=1 to n do
for k:=1 to n do
a[i,j,k]:=random(2);
writeln('Massiv posloino po osi z');
for k:=1 to n do
begin
writeln;
writeln('Sloi ',k);
for i:=1 to n do
begin
writeln;
for j:=1 to n do
write(a[i,j,k],' ');
end;
writeln;
end;
for i:=1 to n do
for j:=1 to n do
begin
vis:=true;
for k:=1 to n do
if a[i,j,k]=1 then begin vis:=false; break; end;
if vis then writeln('Prosvet v tochke [',i,',',j,',z] po osi z');
end;
for j:=1 to n do
for k:=1 to n do
begin
vis:=true;
for i:=1 to n do
if a[i,j,k]=1 then begin vis:=false; break; end;
if vis then writeln('Prosvet v tochke [x,',j,',',i,'] po osi x');
end;
for i:=1 to n do
for k:=1 to n do
begin
vis:=true;
for j:=1 to n do
if a[i,j,k]=1 then begin vis:=false; break; end;
if vis then writeln('Prosvet v tochke [',i,',y,',k,'] po osi y');
end;
readln;
end.
ЗЫ И прежде чем что-либо говорить, надо головой сначала подумать.
Хохххоо )))
Кто тебе во-первых сказал, что он ленивый, если у него одна задача не получается сразу ленивым обзывать???
Даже если у меня и решение не правильное, я хоть зато пытаюсь добиться результата (хоть какого-либо), а сидеть и по предложению отписывать в каждый топик и я могу!
М | Дальнейший оффтоп, пожалуйста, или в личку, или в жалобную книгу. |