Страница 1 из 1
Помогите с задачей, пожалуйста
Добавлено: 11 мар 2008, 16:49
heiress
никак не могу решить:имеется таблица, в которой указаны фамилии и рейтинги политиков, полученные по результатам опроса населения( п=под рейтингом подразумевается число его повторений при опросе).В результате нового опроса получен новый список фамилий.
необходимо привести программу печатающую фамилии и суммарные рейтинги политиков, названных одновременно при двух опросах,по убыванию суммарного рейтинга;в случае равенства рейтингов расположить политиков по алфавиту.
известны фамилии и рейтинг предыдущего опроса и фамилии нового опроса.
пожалуйста помогите!!!
Re: Помогите с задачей, пожалуйста
Добавлено: 11 мар 2008, 20:27
Dim...ON
постучись в аську 198-012-696
Re: Помогите с задачей, пожалуйста
Добавлено: 12 мар 2008, 20:34
Medved
Ты, наверное, имел ввиду не фамилии второго опроса, а рейтинг. Вот:
[syntax='Delphi']
program lalala;
type cand=record name:string;rating:integer;end;
arr=array[1..100] of cand;
var first,second:arr;
function alphabet(a,b:cand):boolean;
var i:integer;
begin
i:=1;
while (i<=length(a.name))and((i<=length(b.name))and(b.name=a.name) do inc(i);
if i>length(a.name) then alphabet:=false else
if i>length(b.name) then alphabet:=true else
alphabet:=(b.name>a.name);
end;
procedure swp(var a,b:cand);
var f:cand;
begin
f:=a;
a:=b;
b:=f;
end;
Procedure sortbyalphandinc;
var i,j:integer;
begin
for i:=1 to n do
inc( first.rating,second.rating);
for i:=1 to n-1 do
for j:=i+1 to n do
if alph(first.name,first[j].name) then swp(first,first[j]);
end;
Procedure sortbyrating;
var i,j:integer;
begin
for i:=1 to n-1 do
for j:=i+1 to n do
if first.rating<first[j].rating then swp(first,first[j]);
end;
procedure readdata;
begin
end;
procedure writedata;
begin
end;
begin
readdata;
sortbyalphandinc;
sortbyrating;
writedata;
end.
[/syntax]
Тебе осталось написать процедуры чтения и вывода.(readdata и writedata)