![]() |
|
|
Регистрация | << Правила форума >> | 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. |