IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> сортировка записи, пузырьковый метод не помог
сообщение
Сообщение #1


Гарцующая лошадка
**

Группа: Пользователи
Сообщений: 107
Пол: Женский
Реальное имя: Любовь

Репутация: -  0  +


дана запись, одним из полей которой является поле , содержащее общую оценку соревнований( тип real). Вывести на экран спортсменов, в порядке набранных баллов. Чем выше балл, тем выше место. Сортировала пузырьком, не получилось. Хотелось бы получить массив записей, уже посортированный.

вот процедура
procedure sort(swimers:tarr;z:byte; var swimers1:tarr);
var i,j:integer;
t:swimer;
begin
swimers1:=swimers;
for i:=1 to z do
for j:=1 downto i+1 do
if swimers1[pred(j)].obwbal>swimers1[j].obwbal
then begin
t:=swimers1[pred(j)];
swimers1[pred(j)]:=swimers1[j];
swimers1[j]:=t;
end;
end;

здесь obwbal- набранные балы, по ним и надо отсортировать запись. swimer- моя запись.

Сообщение отредактировано: volvo -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






LOVE133, все нормально должно сортироваться... Присоедини программу полностью (в аттач), лучше всего - с файлом данных... Хочется посмотреть, как именно ты проверяешь, отсортированы ли записи, или нет...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Знаток
****

Группа: Пользователи
Сообщений: 303
Пол: Мужской
Реальное имя: Роман

Репутация: -  2  +


Цитата(LOVE133)
for i:=1 to z do
for j:=1 downto i+1 do
??
Вообще-то правильно будет так:
for i:=1 to N do
for j:=1 to N-i do
if swimers1[j] > swimers1[j+1]



дополнил..

Сообщение отредактировано: Romtek -


--------------------
Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


volvo, извини, я что-то не врубаюсь. Подробно не смотрел, но цикл по j наводит на размышления:
for j:=1 downto i+1 do
- мне кажется, что-то тут не так.. сейчас нет времени разбираться.
Извини, если невпопад.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






blink.gif Что называется, понадеялся на то, что САМ алгоритм "пузырька" был реализован нормально, или хотя-бы скопирован вот отсюда: Методы сортировок.

Конечно, внутренний цикл не будет выполняться... Вот так я бы делал:
    For i := 1 To Z Do
For j := Z DownTo i+1 Do Begin
{ ... }
End;
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Знаток
****

Группа: Пользователи
Сообщений: 303
Пол: Мужской
Реальное имя: Роман

Репутация: -  2  +


LOVE133
Когда в цикле j =1, чему будет равно pred(j) ?
К какому элементу обращается swimers1[pred(j)] ?

procedure sort(swimers:tarr;z:byte; var swimers1:tarr);
->
procedure sort(var swimers: tarr; z:byte);
так не лучше?


--------------------
Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 11.01.2025 5:25
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name