Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Сортировка в файле

Автор: cooler 4.04.2007 20:34

Вот какое дело: имеется задача (что-то типа базы данных поликлиники), нужно вывести:

1) список иногородних с указанием городов в алфавитном порядке и для каждого города – список фамилий в алф. порядке (сортировка вставками по индексам по 2 параметрам одновременно, индекс- номер позиции в файле)
2) список всех диагнозов, поставленных пациентам старше заданного возраста, в алфавитном порядке(челночная сортировка).

В массивах сортировку могу сделать, а здесь... Да ещё записи по алфавиту...
Помогите пожалуйста!

Заранее благодарен

 ! 
Прикреплять doc-файлы запрещено правилами форума.
мисс_граффити


Автор: мисс_граффити 4.04.2007 21:52

"Что-то типа базы данных" - это, если говорить по-русски, типизированный файл? Или что?
В чем проблема с сортировкой? Выглядит почти так же, как на массивах. Только сортировку вставками для файлов применять нерационально - приходится большое количество записей переписывать.
В общем, показывай, что пробовал делать.

Автор: cooler 5.04.2007 0:41

Типизированный.

Ну вот массив челночной сортируется так :

 procedure Shaker(var item: DataArray; count:integer);
var
j, k, l, r: integer;
x: DataItem;
begin
l := 2; r := count; k := count;
repeat
for j := r downto l do
if item[j-1] then
begin { обмен }
x := item[j-1];
item[j-1] := item[j];
item[j] := x;
k := j;
end;

l := k+1;

for j := l to r do
if item[j-1]>item[j] then
begin { обмен }
x := item[j-1];
item[j-1] := item[j];
item[j] := x;
k := j;
end;

r := k-1;
until l>r
end;

???????
ИЛи нет?

А как я буду сортировать записи?
Покажи, пожалуйста, на примере.
Как будет в проге, в цикле.


Добавлено через 14 мин.
Как отсортировать уже найденные Фамилии по алфавиту?
Если запись фамилий bd.sname

Автор: cooler 9.04.2007 22:31

А по первому пункту может подскажете?
Я так думаю: нужно все необходимые записи - в дополнительный массив, и в нем уже сортировать.
Так ?
А как написать код?
Я не знаю

Автор: Renbo 9.04.2007 23:03

http://forum.pascal.net.ru/index.php?showtopic=16473

смотри тут, уже делали и код ниписан....