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

Рюкзак - Delphi

22.10.2012, 19:43. Просмотров 521. Ответов 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):

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

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

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

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

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

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

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

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

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

непрерывный рюкзак
Первая строка содержит количество предметов 1≤n≤10^3 и вместимость рюкзака...

Эвристика. Рюкзак Алладина.
Помогите с заданием пожалуйста. Разработать алгоритм и написать программу для...


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

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

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