Курсовая работа: Методы решения задачи о рюкзаке
{иначе если количество взятых <= обьема. забиваем рюкзак дальше}
else if Nab<=N then {иначе если набрано меньше чем влазит}
for i:=0 to OstW div W[Nab] do begin {идемот 0 доост. места}
NowP[Nab]:=i; {беремпредмет Nab 0..OstW div W[Nab] раз}
Search(Nab+1,OstW-i*W[Nab],Stoim+i*P[Nab]);
{после каждого взятия предмета увеличиваем стоимость набора
и уменьшаем место в рюкзаке на вес предмета, так же увеличиваем
количество раз взятия предмета}
end;
end;
procedure print(name:string; out_:mas; num:integer);
var i:integer;
begin
if num=0 then begin
Writeln('Наилучший набор ', Max);
Writeln;
Write(' Номер предмета:');
for i:=1 to n do write(i: 3);
Writeln;
end else begin
Write(name);
for i:=1 to n do write(out_[i]: 3);
Writeln;
end;
end;
procedure Done;
begin
assign(output,'output.txt');
rewrite(output);