![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Тема: Определение плана продаж игровым методом.
Торговая фирма разработала несколько планов продаж письменных столов и стоек ТВ на предстоящей ярмарке с учетом изменяющейся конъюнктуры рынка и спроса покупателей. Показатели дохода представлены в таблице. Определить оптимальный план продаж. План продаж Величина дохода, тыс. руб Д1 Д2 Д3 Д4 1 850 500 200 50 2 600 900 400 550 3 460 300 600 380 4 320 150 80 270 5 240 370 350 190 6 75 820 510 440 Если я правельно понял то мне нужно чтоб программка посчитала сумму каждой строки, а потом показала из полученных чисел самое большое это и будет оптимальным планом, только надо что бы она могла считать не только эти числа, а любые введенные в таблицу. Зарание спасибо! |
|
#2
|
||||
|
||||
|
Отвечаю на то, как ты понял
Кидай на форму 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;Результат на скрине Последний раз редактировалось Kailon, 14.05.2011 в 17:01. |