Отвечаю на то, как ты понял
Кидай на форму StringGrid и в событии onKeyPress пиши
Код:
//запрещаем ненужные клавишы
procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9', #8, ',']) then
Key := #0;
end;
далее заполняем заголовки таблицы по созданию фомы
Код:
//заполняем заголовки таблицы
procedure TForm1.FormCreate(Sender: TObject);
const
Plan = 'План продажи';
Dohod = 'Доход';
var
i, j: Byte;
begin
for i := 1 to 6 do
StringGrid1.Cells[0,i] := Plan +' №'+ IntToStr(i);
for j := 1 to 4 do
StringGrid1.Cells[j,0] := Dohod +' №'+ IntToStr(j);
StringGrid1.Cells[5,0] := 'Сумма';
end;
ну и на последок самое главное - кидай кнопку и пиши
Код:
//основная процедура
procedure TForm1.Button1Click(Sender: TObject);
var
i, j: Byte;
Sum, MaxSum: Double;
NumPlan: String;
begin
//находим сумму по каждой строке
for j := 1 to 6 do //движение по строкам
begin
Sum := 0; //обнуляем сумму
for i := 1 to 4 do //движение по столбцам
Sum := Sum + StrToFloatDef(StringGrid1.Cells[i,j],0); //считаем сумму
StringGrid1.Cells[5,j] := FloatToStr(Sum); //выводим получившуюся сумму
end;
//находим максимальную сумму
MaxSum := 0;
for i := 1 to 6 do
if StrToFloat(StringGrid1.Cells[5,i]) > MaxSum then
begin
MaxSum := StrToFloat(StringGrid1.Cells[5,i]);
NumPlan := StringGrid1.Cells[0,i];
end;
//выводим сообщение с результатом
ShowMessage('Максимальная сумма = ' + FloatToStr(MaxSum) +#13#10 +
'Оптимальный план - ' + NumPlan);
end;
и всех делов...
Результат на скрине