Вопрос № 177327: Здравствуйте. нужна помощь.Задача на сортировки. метод к задачи в скобках Имеется список служащих и их оклады. Составить программу, которая обеспечивает ввод этих данных в ЭВМ и вывод ведомости к оплате, отсортированной по убыванию оклада при условии...
Вопрос № 177330: Задача на сортировки. помогите решить. Имеется список клиентов банка, номера счетов, тип вклада и размеры их счетов. Составить программу, которая позволит ввести имеющиеся данные и вывести их в порядке увеличения номера счета в виде таблицы, имеющей...
Вопрос № 177336: Уже отправляла эту задачу. пытались решить. но у меня выходила ошибка в программе. может у кого- то другие решения возникнут.В системе регистрации заявок сервисного центра составляется список заявок в зависимости от приоритета отправителя (если клиен...
Вопрос № 177338: Добрый вечер! нужна помощь. задача на сортировки. метод написан в скобках.2. Имеется список оборудования и его стоимость. Составить программу, которая вводит эти данные и выводит список оборудования и его стоимость, если необходимо увеличить его стои...
Вопрос № 177343: Здравствуйте уважаемые эксперты! Помогите составить блок схему и программу, которая выводила бысимволы в виде таблицы, в каждой строке по 27 символов. Жду Ваших ответов!!! ...
Вопрос № 177327:
Здравствуйте. нужна помощь.Задача на сортировки. метод к задачи в скобках Имеется список служащих и их оклады. Составить программу, которая обеспечивает ввод этих данных в ЭВМ и вывод ведомости к оплате, отсортированной по убыванию оклада при условии, что премия составляет N% от оклада, уральские - 15%. Ведомость должна иметь следующую структуру: ФИО Оклад Премия Уральские Итого (Сортировка Шелла)
Отвечает star9491, Студент :
Здравствуйте, Яруллина Ирина Булатовна.
Посмотрите такой вариант:
Код:
uses crt;
type TSpisok = record FIO: string; Pay:integer; Bonus:integer; Ural:integer; Total:integer; end; ASpisok = array[1..1] of TSpisok;
var
count:Integer; spisok: ^ASpisok; i:Integer; n:Integer;
procedure WriteSpisok; var i:Integer; begin {$R-} for i:=1 to count do begin Writeln('#',i,' FIO=',spisok^[i].FIO, ' Pay=',spisok^[i].Pay, ' Bonus=',spisok^[i].Bonus, ' Ural=',spisok^[i].Ural, ' Total=',spisok^[i].Total); end; {$R+} end;
procedure ShellSort; var k,m,i,j:integer; temp:TSpisok; begin {$R-} k:=1; m:=(count-1) div 9; while k<=m do k:=(k*3)+1; while k>0 do begin for i:=k+1 to count do begin temp:=spisok^[i]; j:=i; while (j>=(k+1))and(temp.Pay>spisok^[j-k].Pay) do begin spisok^[j]:=spisok^[j-k]; j:=j-k; end; spisok^[j]:=temp; end; k:=k
div 3; end; {$R+} end;
begin clrscr; Write('Count='); Readln(count); GetMem(spisok,count*SizeOf(TSpisok)); {$R-} for i:=1 to count do begin Write('#',i,' FIO='); Readln(spisok^[i].FIO); Write('#',i,' Pay='); Readln(spisok^[i].Pay); end; {$R+} Write('Grouth pay (%):');Readln(n); {$R-} for i:=1 to count do begin spisok^[i].Bonus:=Round((n/100)*spisok^[i].Pay); spisok^[i].Ural:=Round((15/100)*spisok^[i].Pay); spisok^[i].Total:=spisok^[i].Pay+spisok^[i].Bonus+spisok^[i].Ural; end; {$R+} ShellSort; Writeln; WriteSpisok; FreeMem(spisok,count*SizeOf(TSpisok)); Readln; end.
Ответ отправил: star9491, Студент
Ответ отправлен: 21.03.2010, 12:08
Номер ответа: 260276
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 260276
на номер 1151 (Россия) |
Еще номера »
Вопрос № 177330:
Задача на сортировки. помогите решить. Имеется список клиентов банка, номера счетов, тип вклада и размеры их счетов. Составить программу, которая позволит ввести имеющиеся данные и вывести их в порядке увеличения номера счета в виде таблицы, имеющей следующую структуру: ФИО Номер счета Тип вклада Размер вклада На сколько увеличится вклад Новый размер вклада (Быстрая сортировка) Спасибо.
Отвечает star9491, Студент :
Здравствуйте, Яруллина Ирина Булатовна.
Посмотрите такой вариант:
Код:
uses crt;
type TClient = record Customer:string; Account:Integer; Pattern:string; Deposit:Integer; Growth:Integer; end; AClient = array[1..1] of TClient;
var
count:Integer; spisok: ^AClient; i:Integer;
procedure WriteSpisok; var i:Integer; begin for i:=1 to count do begin {$R-} Writeln('#',i,' Customer=',spisok^[i].Customer, ' Account=',spisok^[i].Account, ' Pattern=',spisok^[i].Pattern, ' Deposit=',spisok^[i].Deposit, ' Growth
=',spisok^[i].Growth, ' New deposit=',spisok^[i].Deposit+spisok^[i].Growth); {$R+} end; end;
procedure QuickSort(first,last:Integer); var base,temp:TClient; L,R:Integer; begin {$R-} while first<last do begin base:=spisok^[(first+last) div 2]; L:=first-1; R:=last+1; while True do begin repeat R:=R-1 until spisok^[R].Account<=base.Account; repeat L:=L+1 until spisok^[L].Account>=base.Account;
if (L>=R) then break; temp:=spisok^[L]; spisok^[L]:=spisok^[R]; spisok^[R]:=temp; end; if first<R then QuickSort(first,R); first:=R+1; end; {$R+} end;
begin clrscr; Write('Customers count=');Readln(count); GetMem(spisok,count*SizeOf(TClient)); for i:=1 to count do begin {$R-} Write('#',i,' Customer='
);Readln(spisok^[i].Customer); Write('#',i,' Account=');Readln(spisok^[i].Account); Write('#',i,' Pattern=');Readln(spisok^[i].Pattern); Write('#',i,' Deposit=');Readln(spisok^[i].Deposit); Write('#',i,' Growth=');Readln(spisok^[i].Growth); {$R+} end; Writeln; WriteSpisok; QuickSort(1,count); Writeln; WriteSpisok; FreeMem(spisok,count*SizeOf(TClient)); Readln; end.
Ответ отправил: star9491, Студент
Ответ отправлен: 20.03.2010, 20:25
Номер ответа: 260265
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 260265
на номер 1151 (Россия) |
Еще номера »
Вопрос № 177336:
Уже отправляла эту задачу. пытались решить. но у меня выходила ошибка в программе. может у кого- то другие решения возникнут.В системе регистрации заявок сервисного центра составляется список заявок в зависимости от приоритета отправителя (если клиент постоянный и важный приоритет – 0, если постоянный, но можно ненадолго отложить – 1 и т.д.). Сформировать список заявок, начиная с наивысшего приоритета и вывести его на экран.заранее спасибо.
Отвечает Andrew Kovalchuk, 7-й класс :
Здравствуйте, Яруллина Ирина Булатовна. Есть вариант решения посредством списка (см. приложение)
Приложение:
----- Временная неудача лучше временной удачи
Ответ отправил: Andrew Kovalchuk, 7-й класс
Ответ отправлен: 19.03.2010, 04:19
Номер ответа: 260215
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 260215
на номер 1151 (Россия) |
Еще номера »
Вопрос № 177338:
Добрый вечер! нужна помощь. задача на сортировки. метод написан в скобках.2. Имеется список оборудования и его стоимость. Составить программу, которая вводит эти данные и выводит список оборудования и его стоимость, если необходимо увеличить его стоимость на N%. Выводимая таблица должна иметь следующую структуру: Вид оборудования Текущая стоимость На сколько увеличивается стоимость Новая стоимость (Простой обмен)
Отвечает star9491, Студент :
Здравствуйте, Яруллина Ирина Булатовна.
Пример:
Код:
uses crt;
type TSpisok = record Equipment:string; Cost:integer; Growth:integer; NewCost:integer; end; ASpisok = array[1..1] of TSpisok;
var spisok: ^ASpisok;
count:integer; i,n:integer;
procedure WriteSpisok; var i:Integer; begin {$R-} for i:=1 to count do begin Writeln('#',i,' Equipment: ',spisok^[i].Equipment, ' Cost=',spisok^[i].Cost, ' Growth=',spisok^[i].Growth, ' New cost=',spisok^[i].NewCost); end; {$R+} end;
procedure BubbleSort; var i,j:integ
er; temp:TSpisok; Done:boolean; begin {$R-} for i:=1 to count-1 do begin Done:=True; for j:=count downto i+1 do if spisok^[j].Cost<spisok^[j-1].Cost then begin temp:=spisok^[j]; spisok^[j]:=spisok^[j-1]; spisok^[j-1]:=temp; Done:=false; end; if Done then Exit; end; {$R+} end;
begin clrscr; Write('Count='); Readln(count); GetMem(spisok,count*SizeOf(TSpisok));
{$R-} for i:=1 to count do begin Write('#',i,' Equipment: '); Readln(spisok^[i].Equipment); Write('#',i,' Cost='); Readln(spisok^[i].Cost); end; {$R+} Write('Grouth cost (%):');Readln(n); {$R-} for i:=1 to count do begin spisok^[i].Growth:=Round((n/100)*spisok^[i].Cost); spisok^[i].NewCost:=spisok^[i].Cost+spisok^[i].Growth;
end; {$R+} BubbleSort; Writeln; WriteSpisok; FreeMem(spisok,count*SizeOf(TSpisok)); Readln; end.
Ответ отправил: star9491, Студент
Ответ отправлен: 21.03.2010, 13:34
Номер ответа: 260280
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 260280
на номер 1151 (Россия) |
Еще номера »
Вопрос № 177343:
Здравствуйте уважаемые эксперты!
Помогите составить блок схему и программу, которая выводила бысимволы в виде таблицы, в каждой строке по 27 символов.
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.