Вопрос № 177324: Задача на сортировки. метод в скобках. Имеется прейскурант, содержащий название товара и его стоимость. Составить программу, которая позволит ввести имеющиеся данные и вывести прейскурант, отсортированный по возрастанию новой стоимости, при условии,...
Вопрос № 177324:
Задача на сортировки. метод в скобках. Имеется прейскурант, содержащий название товара и его стоимость. Составить программу, которая позволит ввести имеющиеся данные и вывести прейскурант, отсортированный по возрастанию новой стоимости, при условии, что стоимость товаров увеличится на N%. Новый прейскурант имеет следующую структуру: Название товара Старая стоимость На сколько увеличивается стоимость Новая стоимость товара (Простой выбор)Заранее большое спасибо.
Отвечает star9491, Студент :
Здравствуйте, Яруллина Ирина Булатовна.
Посмотрите такой вариант:
Код:
uses crt;
type Price = record Name:String; Cost:Integer; NewCost:Integer; end; APrice = array[1..1] of Price;
var count:Integer; i:Integer;
PPrice:^APrice; n:Integer;
procedure SelectionSort; var i,j:Integer; index:Integer; temp:Price; begin for i:=1 to count-1 do begin index:=i; for j:=i+1 to count do if PPrice^[j].NewCost<PPrice^[index].NewCost then index:=j; if (index<>i) then begin temp:=PPrice^[i]; PPrice^[i]:=PPrice^[index]; PPrice^[index]:=temp; end; end; end;
proce
dure WritePrice; var i:Integer; begin for i:=1 to count do begin {$R-} Writeln('#',i,' Name=',PPrice^[i].Name,' Cost=',PPrice^[i].Cost); {$R+} end; end;
procedure WriteNewPrice; var i:Integer; begin for i:=1 to count do begin {$R-} Writeln('#',i,' Name=',PPrice^[i].Name,' Cost=',PPrice^[i].Cost, ' Grouth=',PPrice^[i].NewCost-PPrice^[i].Cost, '
New cost=',PPrice^[i].NewCost); {$R+} end; end;
begin clrscr; Write('Record count=');Readln(count); GetMem(PPrice,count*SizeOf(Price)); for i:=1 to count do begin {$R-} Write('#',i,' Name=');Readln(PPrice^[i].Name); Write('#',i,' Cost=');Readln(PPrice^[i].Cost); {$R+} end; WritePrice; Write('Grouth price (%):');Readln(n); fo
r i:=1 to count do begin {$R-} PPrice^[i].NewCost:=Round((1+n/100)*PPrice^[i].Cost); {$R+} end; SelectionSort; WriteNewPrice; FreeMem(PPrice,count*SizeOf(Price)); Readln; end.
Ответ отправил: star9491, Студент
Ответ отправлен: 19.03.2010, 22:16
Номер ответа: 260243
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 260243
на номер 1151 (Россия) |
Еще номера »
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.