Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2013, 10:48   #1
Падаван
Новичок
Джуниор
 
Регистрация: 05.12.2013
Сообщений: 2
Восклицание stringgrid (delphi) - найти цену билета в зависимости от расстояния

Уважаемые программисты помогите мне пожалуйста с кодом.
В таблице две столбца 1 расстояние, 2 цена билета, цена билета зависит от расстояния: 10км-20рублей. если расстояние выше 100км то дается скидка 5%
Падаван вне форума Ответить с цитированием
Старый 05.12.2013, 10:58   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Ну, просто всё. Что у Вас не получается?

И наводящие вопросы, собственно, у меня только по интерфейсу:
Откуда берутся данные в столбце 1 (где расстояние) ?
По какому событию должен производится расчёт цены билета?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.12.2013, 11:03   #3
Падаван
Новичок
Джуниор
 
Регистрация: 05.12.2013
Сообщений: 2
По умолчанию

в 1 столбце появляются рэндомно, при нажатии кнопочки расчет записывается цена билета
Падаван вне форума Ответить с цитированием
Старый 05.12.2013, 11:49   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Готово. Можете перечислять деньги!

StringGrid_Tickets_Source.rar
StringGrid_Tickets_EXE.rar

суть:
Код:
implementation
uses Math;

{$R *.dfm}

procedure TForm4.Button1Click(Sender: TObject);
var i, n : integer;
begin
  n := StrToIntDef(edQuantityRow.Text,-1);
  if n<0 then begin
     Application.MessageBox('Укажите положительное целое число строк', 'Ошибка', MB_OK);
     Exit;
  end;

  sg1.RowCount := n+1;
  for i := sg1.FixedRows to sg1.RowCount-1 do begin
     sg1.Cells[0, i] := IntToStr(Random(1000)+1);
     sg1.Cells[1,i] := '';
  end;

end;

procedure TForm4.Button2Click(Sender: TObject);
var i, Dist : integer;
   cost : double;
begin
  for i:= sg1.FixedRows to sg1.RowCount - 1 do begin
     Dist := StrToIntDef(sg1.Cells[0, i],-1);
     if Dist < 0 then sg1.Cells[1, i] := '#ошибка'
     else begin
        cost := Ceil(Dist / 10) * 20.00; {за каждые 10 км - 20 руб}
        if Dist>=100 then begin
            Cost := Cost * 0.95;
            sg1.Cells[1, i] := FloatToStr(cost)+' руб. (со скидкой);';
        end
        else
          sg1.Cells[1, i] := FloatToStr(cost) + ' руб. ';
     end;

    //
  end;

end;

procedure TForm4.FormCreate(Sender: TObject);
begin
  Randomize;
  sg1.FixedRows := 1;
  sg1.RowCount := 2;
  sg1.Cells[0,0] := 'Расстояние';
  sg1.Cells[1,0] := 'Цена билета';
end;

end.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как найти расстояния между N точек с использованием open mp nemato JavaScript, Ajax 1 31.07.2012 14:31
Нужно цену "продаж" и "цену" покупок отразить на одной оси Arina@kim Помощь студентам 0 07.02.2012 17:04
Задача в Exel (стоимость билета в зависимости от расстояния) Phill Помощь студентам 9 30.11.2010 00:20
Расчёт среднего расстояния между двумя линиями (Delphi) Krutkin Помощь студентам 5 04.10.2010 14:04
Найти запись в TList в зависимости от координат TPaintBox Kottik Общие вопросы Delphi 2 18.04.2010 21:55