Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
geek
25 / 25 / 5
Регистрация: 21.10.2009
Сообщений: 525
1

Рюкзак

22.10.2012, 19:43. Просмотров 528. Ответов 0
Метки нет (Все метки)

Как сделать чтоб можно было больше 10 вводить?
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
unit Unit13;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, StdCtrls;
 
type
  TForm13 = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    Edit2: TEdit;
    Label2: TLabel;
    StringGrid1: TStringGrid;
    Label3: TLabel;
    Memo1: TMemo;
    Label4: TLabel;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form13: TForm13;
 
implementation
 
{$R *.dfm}
 
procedure TForm13.Button1Click(Sender: TObject);
var a,b:array[1..100] of integer;
   n:byte;
   sum:integer;
   f:boolean;
   i,j,k,h,s,m,z:integer;
   otvet: string;
begin
  //Ввод данных
  n := StrTointDef(Edit1.Text, 0);
  if n = 0 then
  begin
    ShowMessage('Не задано количество предметов');
    exit
  end;
  with StringGrid1 do
    for i := 1 to n do
      a[i] := StrTointDef(Cells[1,i], 0);
  sum := StrTointDef(Edit2.Text, 0);
  if sum = 0 then
  begin
    ShowMessage('Не задан максимальный вес ранца');
    exit
  end;
otvet := 'В ранец необходимо поместить предметы: ';
For I := N Downto 1 Do
 Begin
  B[1] := I;
  H := 1;
  K := Sum - A[I];
  F := False;
  Repeat
   For J := B[H]-1 Downto 1 Do
    Begin
     If A[J] <= K Then
      Begin
       Inc(H);
       B[H] := J;
       Dec(K, A[J]);
      End;
       If K = 0 Then
        Begin
         For M := 1 to H Do otvet := otvet + IntToStr(A[B[M]]) + ' ';
         Inc(K, A[B[H]]);
         Dec(H);
        End;
    End;
   F := True;
   For M := H Downto 2 Do
     Begin
       If B[M] <> H-M+1 Then
       Begin
        F := False;
        Dec(B[M]);
    H := M;
        K := Sum;
        For Z := 1 to H Do
         Dec(K, A[B[Z]]);
        Break;
       End;
     End;
  Until F;
 End;
memo1.Lines.Add(otvet)
end;
 
procedure TForm13.Button2Click(Sender: TObject);
begin
  close
end;
 
procedure TForm13.Edit1Change(Sender: TObject);
  var i, n: integer;
begin
  n := StrTointDef(Edit1.Text, 0);
  with StringGrid1 do
  if (n > 0) and (n <= 100) then
  begin
    RowCount := n + 1;
    for I := 1 to RowCount - 1 do
    begin
      Cells[0, i] := IntToStr(i);
    end;
  end;
end;
 
 
 
procedure TForm13.FormCreate(Sender: TObject);
  var i: Integer;
begin
  with StringGrid1 do
  begin
    Cells[0,0] := 'Номер предмета';
    Cells[1,0] := 'Вес предмета';
    for I := 1 to RowCount - 1 do Cells[0, i] := IntToStr(i);
    Cells[1,1] := '2';
    Cells[1,2] := '3';
    Cells[1,3] := '4';
    Cells[1,4] := '7';
  end;
end;
 
end.
0
Миниатюры
Рюкзак  
Вложения
Тип файла: rar Ranec.rar (211.8 Кб, 23 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.10.2012, 19:43
Ответы с готовыми решениями:

Рюкзак
задача в delphi имеются m различных предметов их вес и стоимость. Определить какие предметы можно...

Задача про рюкзак
Есть несколько видов предметов.Для каждого из них известен вес и стоимость.Необходимо определить...

многострадальный рюкзак!нужна идея для последнего штриха!
Всем привет! сделал программу , рещающую задачу о рюкзаке....программа формирует таблицу...

Рюкзак
Здравствуйте дорогие друзья. Помогите составить задачу про рюкзак, с помощью наивного алгоритма.

И снова рюкзак
Здравствуйте! Пытаюсь решить одну задачу на уже в который день, но никак не получается. На...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.10.2012, 19:43

Greedy - рюкзак
Здраствуйте! Мне по информатике дали проблему рюкзака! Может быть ктото уже слышал про неё. Вот и...

Оптимизировать рюкзак
Доброй ночи, форум! Написал динамическое решение задачи о рюкзаке, но она зависает на весе больше...

Сверхвозрастающий рюкзак
Всем привет. Помогите написать программу. Я разобрался в теории, а реализовать не могу. Пусть у...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru