Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.06.2010, 17:49
-=SKULL=- -=SKULL=- вне форума
Прохожий
 
Регистрация: 03.06.2010
Сообщения: 4
Репутация: 10
По умолчанию Помогите с решением задачи.

Тема: Определение плана продаж игровым методом.

Торговая фирма разработала несколько планов продаж письменных столов и стоек ТВ на предстоящей ярмарке с учетом изменяющейся конъюнктуры рынка и спроса покупателей. Показатели дохода представлены в таблице. Определить оптимальный план продаж.
План продаж Величина дохода, тыс. руб
Д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  
Старый 06.06.2010, 13:53
Аватар для Kailon
Kailon Kailon вне форума
Активный
 
Регистрация: 06.06.2010
Сообщения: 340
Версия Delphi: 11.3
Репутация: 429
По умолчанию Может поможет...

Отвечаю на то, как ты понял
Кидай на форму 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.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 11:00.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025