Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.01.27;
Скачать: CL | DM;

Вниз

Помогите дорешать задачу, пожалуйста...   Найти похожие ветки 

 
Lip   (2007-12-19 02:11) [0]

Куб состоит из n^3 прозрачных и непрозрачных элементарных кубиков. Имеется хотя бы один просвет по каждому из направлений? Если это так, вывести координаты каждого просвета.

Куб представлен трехмерным массивом: array [1..n, 1..n, 1..n] of Byte;
0 - просвет
1 - стена

...
type
 TCube = array [1..n, 1..n, 1..n] of Byte;
...
Проверяю наличие проствета так:

function Check(const a: TCube; const n: Integer): Boolean;
var
 i, j, k: Byte;
 line: Boolean;
begin
 Check := True;
 for i := 1 to n do
   for j := 1 to n do
   begin
     line := True;
     for k := 1 to n do
       if a[i, j, k] = 1 then
       begin
         line := False;
         Break;
       end;
     if line then
       Exit;

     line := True;
    for k := 1 to n do
     if a[i, k, j] = 1 then
     begin
       line := False;
       Break;
     end;
     if line then Exit;
   end;
 Check := False;
end;


Что-то запутался совсем, не знаю уже как сделать...
Помогите, пожалуйста!


 
oldman ©   (2007-12-19 10:36) [1]

Всего надо проверить 3n^2 направлений.
Нарисуй на бумаге куб и направления.
Все встанет на свои места.



Страницы: 1 вся ветка

Текущий архив: 2008.01.27;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.015 c
15-1197906636
necromancer
2007-12-17 18:50
2008.01.27
Интрасети


1-1192801595
Prohodil Mimo
2007-10-19 17:46
2008.01.27
Можно ли изменить значения цвета во время работы приложения.


2-1199268328
Max.66RUS
2008-01-02 13:05
2008.01.27
Самоудаление программы по нажатию на кнопку...


2-1198899007
Joe
2007-12-29 06:30
2008.01.27
Перетаскивание строк в ListBox


11-1182819162
SPeller_work
2007-06-26 04:52
2008.01.27
Реализация интерфейсов