2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Сортировки Turbo Pascal
Сообщение16.12.2010, 17:44 


19/05/09
38
Необходимо список студентов отсортировать по среднему балу (затем в алфавитном порядке, если высший бал одинаков)... ума не прилажу как объединить две сортировки. Подкиньте идее... вот сортировка по среднему баллу

код: [ скачать ] [ спрятать ]
Используется синтаксис 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 
Заслуженный участник


09/08/09
3438
С.Петербург
Замените
Код:
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 


19/05/09
38
Maslov, спасибо, действительно так :-)

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group