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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2011, 23:44   #1
ZavriK
Пользователь
 
Регистрация: 04.04.2011
Сообщений: 12
По умолчанию Выбрать оптимальный тарифный план с точки зрения минимизации затрат (Паскаль)

Доброго времени суток.
Возникла проблема при написании программы.
Условие :
Люди часто сталкиваются с проблемой выбора наиболее подходящего тарифного плана у операторов сотовой связи. Для помощи им в этом необходимо написать программу, находящую оптимальный тарифный план с точки зрения минимизации затрат. Известно, что в месяц человек посылает A смс-сообщений и разговаривает по мобильному телефону в течении B минут. Есть N тарифных планов, для каждого из которых известна стоимость отправки одного смс-сообщения и одной минуты разговора. Требуется найти тарифный план, при подключении к которому суммарные затраты в месяц будут минимальны.
Формат входного файла

В первой строке входного файла Input.txt находятся три целых числа N, A, B (1 ≤ N, A, B ≤ 100). Следующие N строк входного файла содержат по два целых числа Ci и Di (1 ≤ Ci, Di ≤ 100) — стоимость отправки одного смс-сообщения и стоимость одной минуты разговора.
Формат выходного файла

В выходной файл Output.txt требуется вывести номер искомого тарифного плана. Тарифы пронумерованы в порядке появления во входном файле. Если оптимальных ответов несколько, выведите любой.

Написал программу,однако она выдаёт неправильный ответ,в чём ошибка?



Код:
Код:
{$APPTYPE CONSOLE}
var
  i,n,a,b,min,minIndex:integer;
  t,c,d:array [1..100] of integer;
begin
  read(n,a,b);
  for i:=1 to n do
  read(c[i],d[i]);
  for i:=1 to n do
    begin
      t[i]:=a*c[i] + b*d[i];
      read(t[i]);
    end;
  min:=t[1];
  minIndex:=1;
  for i:=1 to n do
  if min > t[i] then
    begin
      min:=t[i];
      minIndex:=i;
    end;
  writeln(minIndex);
end.
Заранее спасибо



________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 05.04.2011 в 00:18.
ZavriK вне форума Ответить с цитированием
Старый 05.04.2011, 00:26   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1) не могу понять, что за строчка (выделено красным!!)
Цитата:
Код:
 for i:=1 to n do
    begin
      t[i]:=a*c[i] + b*d[i];
      read(t[i]);
    end;
Откуда и зачем Вы читать что-то собрались?!!
выкиньте эту строку!

2) подсчёт стоимости и поиск минимального значения вообще можно сделать в цикле, где читаются Ci и Di (кстати, в этом случае можно легко отказаться и от массива + уберётся ограничение в 100 тарифных планов.. Но, поскольку подобное ограничение разрешено условиями задачи, то, в данном случае, это не критично. можно и так оставить.

Поиск минимального - имхо, более менее правильный.
(p.s. кстати, без переменной Min очень легко обойтись:
Код:
  minIndex:=1;
  for i:=2 to n do
  if t[minIndex] > t[i] then
      minIndex:=i;

  writeln(minIndex);

Последний раз редактировалось Serge_Bliznykov; 05.04.2011 в 00:29.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.04.2011, 07:59   #3
ZavriK
Пользователь
 
Регистрация: 04.04.2011
Сообщений: 12
По умолчанию

мдаа..,мог бы и сам догадаться ((, спасибо .
ZavriK вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
оптимальный план замены оборудования DampuL Паскаль, Turbo Pascal, PascalABC.NET 4 23.12.2010 16:04
Как выбрать оптимальный формат для графического файла? artemavd Общие вопросы Delphi 11 03.12.2010 03:39
Какой компонент выбрать для более правильной работы с точки зрения программирования? (Delphi) Art_Divin Помощь студентам 3 09.03.2010 13:43
Как узнать уровень заряда батареи, план электропитания, сменить плаН? TwiX Общие вопросы Delphi 5 03.10.2009 13:48
найти оптимальный план производства Baxxter Microsoft Office Excel 12 25.09.2008 23:45