while (f[m] > 0) //собираем оптимальный набор пока цена не нулевая
{
f3[i] = f1[m]; //заносим в оптимальный набор номер товара, добавляющего максимальную цену к набору массой m
m = f2[m]; //переходим к набору, оставшемуся после извлечения товара
i++; //увеличиваем количество товаров в оптимальном наборе
}
s = "(";
for (k = 0; k < N; k++) //считаем и выводим количество товаров каждого вида в оптимальном наборе
{
cnt = 0;
for (j = 0; j < i; j++)
if (f3[j] == k)
cnt++;
s = s + IntToStr(cnt) + ";"; //собираем значения количеств видов товаров
}
s = s.Delete(s.Length(),1) + ")"; //удаляем ; после последней цифры и закрываем скобку
if (Canvas->TextWidth(s) > OutPut->Width)
{
OutPut->Height += Canvas->TextHeight(s);
OutPut->ScrollBars = ssHorizontal;
this->Height += Canvas->TextHeight(s);
}
OutPut->Lines->Strings[0] = s;
Label1->Caption = "Цена набора " + IntToStr(f[M]) + " p.";
delete mass;
delete price;
delete f;
delete f1;
delete f2;
delete f3;
}
//---------------------------------------------------------------------------
void __fastcall TCalcWin::CapacityKeyPress(TObject *Sender, char &Key)
{
if (((Key < 48) || (Key > 57)) && (Key != 8) && (Key != 13))
Key = 0;
}
//---------------------------------------------------------------------------
void __fastcall TCalcWin::InfClick(TObject *Sender)
{
ShowMessage("Программа выполнена студентом гр. ЗП-71 Воробьёвым М. В.");
}
//---------------------------------------------------------------------------
void __fastcall TCalcWin::HlpClick(TObject *Sender)
{
Note->Show();
}
//---------------------------------------------------------------------------
void __fastcall TCalcWin::ExitClick(TObject *Sender)
{
this->Close();
}
//---------------------------------------------------------------------------
void __fastcall TCalcWin::LoadFlClick(TObject *Sender)
{
TStringList *list;
TSearchRec rez;
if (FindFirst("Sample.txt", faAnyFile, rez) == 0) //ищем файл с примером
{ //если найден
list = new TStringList;
list->LoadFromFile("Sample.txt"); //загрузить данные из файла в список строк
Capacity->Text = list->Strings[0]; //и заполнить исходные данные
Goods->ColCount = 4;
Goods->Cells[1][0] = list->Strings[2];
Goods->Cells[2][0] = list->Strings[3];
Goods->Cells[3][0] = list->Strings[4];
Goods->Cells[1][1] = list->Strings[6];
Goods->Cells[2][1] = list->Strings[7];
Goods->Cells[3][1] = list->Strings[8];
}
else
ShowMessage("Отсутствует файл с примером!");
FindClose(rez); //освободить ресурсы, задействованые для поиска
}
//---------------------------------------------------------------------------
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.