Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите с алгоритм оптимального размещения [Delphi]


-=OpeR=- ©   (2006-06-05 22:01:00) 

Данн прямоугольник размерами x,y. Имеются N1 прямоуголиников с размерами x1,y1 (где x1<x, y1<y), N2 прямоуголиников с размерами x2,y2 (где x2<x, y2<y) и т.д. Необходимо разместить прямоугольники таким образом, чтобы осталось минимальное свободное пространство. Прямоугольники можно поворачивать на 90 градусов (стороны прямоугольников паралельны сторонам исходного прямоугольника x,y)


-=OpeR=-   (2006-06-23 10:31:00) [1]

После редактирования получилось:

Var
a:array[1..5] of integer;
s,i: integer;
 begin
  a[1]:=4;
  s:=0;
   for i:=2 to 5 do
    begin
     a[i]:=a[i-1]*2;
    end;
   for i:=1 to 5 do
    begin
     If i mod 2 <> 0 then
      a[i]:=a[i]*-1;
    end;
    for i:=1 to 5 do
     begin
      s:=s+a[i];
     end;
    writeln;                 \\ В Delphi вместо этих трех строчек я написал
    writeln('summa=',s); \\ следующее: p:=inttostr(s);
readln;                         \\ label1.caption:=p;end;

end.

В результате работы выдает ответ -44


-=OpeR=-   (2006-06-23 10:21:00) [2]

Сначала исправь ошибки, у тебя их в коде полно:

Program Project 2;
uses
SysUtils
var
a:=array[1..5] of integer; \\ Равно в обьявлении переменных не надо
s,i: integer;
begin
a[1]:=4  \ \ Не забывай ставить ;
s:=0;
for i:=2 to 5 do
a[i]:=a[i+1]*2; \\ Насколько я понимаю, ты забил в первый элемент массива \\4, а остальные у тубя пустые, получается что a[2]:=a[3]*2 - но a[3] \\пустая ячейка, может поставить a[i]:=a[i-1]*2; , тогда a[2]:=a[1]*2,
a[3]:=a[2]*2 и т. д.

for i:=1 to 5 do
case i of
1,3,5: a [i]:a=-a[i];   \\ Вообще муть какая то, может так: a [i]:=-a[i];  
end. \\ Точки быть не может \\ Не забывай ставить ;for i:=2 to 5 do
writeln ('9[',i,']',a[i]);
for i:=1 to 5 do
s:=s+a[i];
writeln \\ Не забывай ставить ;writeln('summa=',s);
readln;
end.


VolanD666   (2006-06-15 19:56:00) [3]

Че?


Gashish   (2006-06-15 19:46:00) [4]

Люди помогите плиз не знаю в чем ошибка выходит:
1) Y=-4+8-16+32-64+...

Program Project 2;
uses
SysUtils
var
a:=array[1..5] of integer;
s,i: integer;
begin
a[1]:=4
s:=0;
for i:=2 to 5 do
a[i]:=a[i+1]*2;
for i:=1 to 5 do
case i of
1,3,5: a [i]:a=-a[i];
end.
for i:=2 to 5 do
writeln ('9[',i,']',a[i]);
for i:=1 to 5 do
s:=s+a[i];
writeln
writeln('summa=',s);
readln;
end.


kernel   (2006-06-13 11:53:00) [5]

:)


VolanD666   (2006-06-13 11:52:00) [6]

XProger, это плагиат!
:)


Мимоходец   (2006-06-13 04:40:00) [7]

КОД тебе сказали запости. А не ля-ля.


XProger   (2006-06-13 03:23:00) [8]

Мимоходец. http://www.blackpawn.com/texts/lightmaps/default.html


Мимоходец   (2006-06-13 01:27:00) [9]


> -=OpeR=-   (12.06.06 20:03) [4]
> спасибо


Ну и как, разместил? Если да - запости код.


-=OpeR=-   (2006-06-12 20:03:00) [10]

спасибо


VolanD666   (2006-06-10 05:08:00) [11]

http://www.blackpawn.com/texts/lightmaps/default.html


-=OpeR=-   (2006-06-06 10:35:00) [12]

а по подробней можно


TLightMap   (2006-06-06 01:27:00) [13]

Короче опять про упаковку лайтмэпов.


Наверх

Титульная страница Поиск, карта сайта Написать письмо