2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Сортировки Turbo Pascal
Сообщение16.12.2010, 17:44 
Необходимо список студентов отсортировать по среднему балу (затем в алфавитном порядке, если высший бал одинаков)... ума не прилажу как объединить две сортировки. Подкиньте идее... вот сортировка по среднему баллу

код: [ скачать ] [ спрятать ]
Используется синтаксис Pascal
type human=record
           surname: string[27];
           year: 1945..1993;
           mark: array [1..3] of 2..5;
          end;
     stud=array [1..n] of human;

procedure sort(var so:stud);
var i,j:integer;
    b:human;
    s1,s2:real;
begin
for i:=2 to n do
 for j:=n downto i do
  begin
   s1:=so[j].mark[1]+so[j].mark[2]+so[j].mark[3];
   s2:=so[j-1].mark[1]+so[j-1].mark[2]+so[j-1].mark[3];
   if (s2<s1) then
    begin
     b:=so[j-1];
     so[j-1]:=so[j];
     so[j]:=b;
    end;
  end;
end;
 

 
 
 
 Re: Сортировки Turbo Pascal
Сообщение16.12.2010, 18:47 
Замените
Код:
if (s2<s1) then
на
Код:
if (s2 < s1) or ((s2 = s1) and (so[j-1].surname < so[j].surname)) then

 
 
 
 Re: Сортировки Turbo Pascal
Сообщение16.12.2010, 20:04 
Maslov, спасибо, действительно так :-)

 
 
 [ Сообщений: 3 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group