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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2011, 21:20   #1
Prohozhii
Новичок
Джуниор
 
Регистрация: 12.04.2011
Сообщений: 3
По умолчанию Описать процедуру присваивающую параметру Ц наименьшую цену из непустого прейскуранта П.

Type цена =record руб:0..maxint;
коп:0..99
end;
прейскурант=file of цена;
Описать процедуру min(П,Ц), присваивающую параметру Ц наименьшую цену из непустого прейскуранта П.
Prohozhii вне форума Ответить с цитированием
Старый 13.04.2011, 00:02   #2
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

Ну и что тут сложного ???
Вот тут ответ:
http://programmersforum.ru/forumdisplay.php?f=29
asmodey1 вне форума Ответить с цитированием
Старый 13.04.2011, 00:31   #3
Prohozhii
Новичок
Джуниор
 
Регистрация: 12.04.2011
Сообщений: 3
По умолчанию

Пардон конечно...Но тут, это где? По-точнее ссылку, если не сложно...
Prohozhii вне форума Ответить с цитированием
Старый 13.04.2011, 10:47   #4
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

asmodey1, +1 , но всё-таки троллинг ))

Уважаемый автор темы (ТС), если Вы столкнулись со сложностями в написании программы, то приводите код и конкретный вопрос, что и почему не получается. В противном случае, Ваша тема выглядит приказом сделать Вам бесплатно курсовую/контрольную/подчеркнуть что надо. Если код будет и что-то у Вас действительно застопорилось, то поможем разобраться, а иначе задание стоит денег, либо обращайтесь во фриланс(ссылка выше как раз ведёт туда), ну или пишите по контактам отозвавшихся в даннной теме ))
phomm вне форума Ответить с цитированием
Старый 13.04.2011, 18:33   #5
Prohozhii
Новичок
Джуниор
 
Регистрация: 12.04.2011
Сообщений: 3
По умолчанию

Код:
type
  TPrice = packed record
    RUR: 0..MaxInt; // рубли
    RUC: 0..99;       // копейки
  end;
  TPriceCurrent = file of TPrice;
..
procedure Min(PriceCurrent: TPriceCurrent; out MinPrice: TPrice);
var
  NextPrice: TPrice;
  bFirstRecord: Boolean;
begin
  bFirstRecord := True;
  while not Eof(PriceCurrent) do begin
    Read(PriceCurrent, NextPrice);
    if bFirstRecord then begin
       MinPrice := NextPrice;
       bFirstRecord := False;
    end else if (NextPrice.RUR <= MinPrice.RUR) and (NextPrice.RUC <= MinPrice.RUC) then
       MinPrice := NextPrice;
  end;
end;
Вотс...Но что-то процедура по какой-то причине все равно работать не желает...(



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

Последний раз редактировалось Serge_Bliznykov; 13.04.2011 в 22:36.
Prohozhii вне форума Ответить с цитированием
Старый 13.04.2011, 21:34   #6
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

Если честно, давно не работал со стандартным вводом-выводом, всё как-то быстрее через потоки пишу, но возможно косяк в том, что цены на каждой строке, а считываете простым read'ом , а по идее надо readln , а так всё остальное вроде нормально, на мой взгляд
Ещё могу посоветовать написать не procedure Min(PriceCurrent: TPriceCurrent; out MinPrice: TPrice); а procedure Min(var PriceCurrent: TPriceCurrent; out MinPrice: TPrice); но это не должно, на мой взгляд влиять на результат, просто не создается локальной копии

Последний раз редактировалось phomm; 13.04.2011 в 21:37.
phomm вне форума Ответить с цитированием
Старый 13.04.2011, 22:46   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
возможно косяк в том, что цены на каждой строке, а считываете простым read'ом , а по идее надо readln
не-не-не!!! Ни в коем разе! Readln здесь точно не нужен! Впрочем, , если я не ошибаюсь, Readln(PriceCurrent,...) даже не откомпилируется!
Readln допустим ИСКЛЮЧИТЕЛЬНО для текстовых файлов (ну для стандартного input'а - т.к. он, по сути, тоже текстовый.
для типизированных файлов только Read()


Prohozhii, дайте полный код программы.
в чём проявлеятся то, что программа не работает?
Файл PriceCurrent существует? Не пустой?
Файл PriceCurrent открыт? А где в нём указатель?
Возможно, что поможет банальная установка указателя на начало:
Код:
bFirstRecord := True;
Seek(PriceCurrent,0);
while not Eof(PriceCurrent) do begin
дальше.
Проверка на минимальность у Вас ОШИБОЧНАЯ!

По Вашей логике 1.95 БОЛЬШЕ чем 500.01
из-за вот этого and (NextPrice.RUC <= MinPrice.RUC)
измените проверку на :
Код:
else if ( (NextPrice.RUR*100 + NextPrice.RUC )  <= (MinPrice.RUR*100 + MinPrice.RUC) ) then ....
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Описать процедуру, меняющую... !IRA! Помощь студентам 3 02.02.2011 23:42
Описать процедуру или функцию ... Ата Помощь студентам 10 11.11.2010 10:15
Описать процедуру change (x, y, z) qwerty777 Паскаль, Turbo Pascal, PascalABC.NET 2 30.05.2010 22:50
Описать процедуру Remove (A,N,X) Catuney Помощь студентам 0 14.05.2010 22:02