Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2012, 14:26   #1
Mnsh
Пользователь
 
Регистрация: 26.12.2011
Сообщений: 16
По умолчанию Сортировка пузырьком (PascalABC)

Здравствуйте. Нужно переделать программу. В программе сортировка идет по алгоритму Хоара, а нужно сделать сортировку пузырьком. Сортировка по номеру устройства. Заранее спасибо.
Программа:
Код:
Program sortirovka;
uses crt;
Type RecordType=Record;
    SOOB:String[15];  { ТЕКСТ СООБЩЕНИЯ }
    OTP:string[4]; { № УСТ-ВА ОТПРАВИТЕЛЯ }
    vrema:String[6];
End;
Mass=Array [1..1000] of RecordType;
Var A:Mass;
  n,i:Integer;
 
procedure Sort(L,R:integer);      { ПРОЦЕДУРА СОРТИРОВКИ ПО ХОАРУ }
 var i,j:integer;
     X,botp,bvrema,bSOOB:string;
begin
clrscr;
 X:=A[(L+R) div 2].otp;   { ДЕЛИМ НА 2 ПОДМНОЖЕСТВА }
 i:=L; j:=R;
 while i<=j do    { ЕСЛИ 1-ОЕ ПОДМНОЖЕСТВО <= 2-ОГО, ТО }
  begin
   while A[i].otp<X do i:=i+1;      { СОРТИРУЕМ }
   while A[j].otp>X do j:=j-1;
     if i<=j then
       begin
         botp:=A[i].otp;
         bvrema:=A[i].vrema;
         bsoob:=A[i].soob;
         A[i].otp:=A[j].otp;
         A[i].vrema:=A[j].vrema;
         A[i].soob:=A[j].soob;
         A[j].otp:=botp;
         A[j].vrema:=bvrema;
         A[j].soob:=bsoob;
         i:=i+1;
         j:=j-1;
       end;
  end;
  if L<j then Sort(L,j);     { ПРОИСХОДИТ РЕКУРСИЯ }
  if i<R then Sort(i,R);
end;
 
Begin
Write(' Введите количество сообщений: ');       { ВВОДИМ ДАННЫЕ }
Readln(n);
For i:=1 to n do
begin
Writeln('  Сообщение № ' ,i,' : ');
Write(' - номер устройства отправителя (целое положительное 4-значное число): ');
Readln(A[i].OTP);
Write(' - текст сообщения : ');
Readln(A[i].SOOB);
Write(' - время получения (ЧЧ:ММ:СС) : ');
Readln(A[i].VREMA);
end;
Sort (1,n);         { ВЫЗЫВАЕМ СОРТИРОВКУ }
for i:=1 to n do
begin
writeln ('    Отсортировано по номеру устройства отправителя'); {упорядоченный массив}
writeln ('  Отправитель ',A[i].OTP,' написал сообщение : ',A[i].SOOB,'. Время получения : ',A[i].VREMA);
end;
End.


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 09.04.2012 в 14:46.
Mnsh вне форума Ответить с цитированием
Старый 09.04.2012, 15:09   #2
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Книга "Pascal. Попов", на какой-то странице есть код алгоритма сортировки пузырьком.
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 09.04.2012, 16:04   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

оО, и зачем искать книгу для такого известного и простого алгоритма?
http://ru.wikibooks.org/wiki/Примеры...овки_пузырьком
http://ru.wikipedia.org/wiki/Сортировка_пузырьком
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка пузырьком в Delphi hacker-allv Помощь студентам 3 28.03.2012 14:27
Сортировка пузырьком с++ FroLe Общие вопросы C/C++ 6 20.12.2010 01:23
Сортировка пузырьком Авторитет Общие вопросы .NET 4 15.11.2010 19:50