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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.06.2013, 13:47   #1
MyQwErTy
Пользователь
 
Аватар для MyQwErTy
 
Регистрация: 16.10.2008
Сообщений: 73
По умолчанию Процедура сортировки списка

Язык Pascal
Доброго времени суток. В мою программу нужно вставить процедуру сортировки по убыванию. Я нашел готовую, но оптимизировать не получается. Помогите, пожалуйста.
Программа.
Код:
program seznam;
uses crt;

type UPrvek = ^Prvek;
Prvek = record;
data : integer;
dalsi : UPrvek;
end;

var hlava : Uprvek;
zarazka : UPrvek;
pocet : integer;
x : Uprvek;

procedure vytvor;
begin
new(hlava);

zarazka:=hlava;
hlava^.dalsi:=nil;
pocet:=0;

procedure vloz(d:integer);
var novy:uprvek;
begin
new(novy);
novy^.data:=d;
novy^.dalsi:=hlava;

hlava:=novy;
pocet:=pocet+1;
end;

procedure vypis;
var p : uprvek;
begin
p:=hlava;
while p<>zarazka do {opakujeme vypis dokud nenarazime na zarazku}
begin
write(p^.data,' ');
p:=p^.dalsi;
end;
writeln;
end;

function najdi(d:integer):uprvek;
begin
p:=hlava;
while p<>zarazka do
begin
if p^.data=d then break;
p:=p^.dalsi;
end;
if p=zarazka then najdi:=nil
else najdi:=p;
end;

procedure smaz(u:uprvek);
var p:uprvek;
begin
u^.data := u^.dalsi^.data;
p:=u^.dalsi;
u^.dalsi:=u^.dalsi^.dalsi;
dispose(p);
pocet:=pocet-1;
end;

procedure zrus_seznam; {erasei list}
var p:uprvek;
begin
while hlava<>zarazka do
begin
p:=hlava;
hlava:=hlava^.dalsi;
dispose(p);
end;
dispose(zarazka);
hlava:=nil;
zarazka:=nil;
end;


begin
vytvor;
vloz(1); {place number 1 at the beginning}
vloz(5); {place number 5 at the beginning}
vloz(5); {place number 5at the beginning}
vloz(8); {place number 8 at the beginning}
vloz(2343); {place number 2343 at the beginning}
vloz(-422); {place number -422 at the beginning}
vypis;
x:=najdi(5);
if x<>nil then smaz(x)
else writeln('prvek nenalezen');
vypis;
zrus_seznam;
readln;
end.
И вот процедура сортировки
Код:
procedure Seleсt(var item: DataArray; count:integer);

var i, j, k: integer;

x: DataItem;
begin for i := i to count-1 do
begin
k := i; x := item[i];
for j := i+1 to count do { найти элемент с наименьшим значением }
if item[j]<x
then begin k := j; x := item[j];
end; item[k] := item[i]; { обмен }
item[i] := x;
end;
end;
MyQwErTy вне форума Ответить с цитированием
Старый 27.06.2013, 14:52   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Я нашел готовую, но оптимизировать не получается.
что значит "оптимизировать" ?
Процедура сортировки работает, но результаты её работы Вас не устраивают, не проходят какой-то критерий? Какой именно?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.06.2013, 15:47   #3
MyQwErTy
Пользователь
 
Аватар для MyQwErTy
 
Регистрация: 16.10.2008
Сообщений: 73
По умолчанию

Наверно не то слово подобрал.
Я хотел, чтобы данная процедура работала именно в этой программе.
Грубо говоря, нужно заменить названия переменных в данной процедуре, что я сделать не могу(
MyQwErTy вне форума Ответить с цитированием
Старый 27.06.2013, 16:05   #4
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Цитата:
Я хотел, чтобы данная процедура работала именно в этой программе.
Грубо говоря, нужно заменить названия переменных в данной процедуре, что я сделать не могу(
зачем заменять в ней названия переменных? - новая процедура, новая область видимости.

Чтобы процедура "заработала" ее надо вызвать. Обычно.
rrrFer вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Процедура сортировки слиянием(Паскаль, C++) СтёпышЪ Помощь студентам 2 20.04.2012 21:12
С++. Функция сортировки списка по значению Caged Помощь студентам 0 02.11.2011 21:01
Процедура сортировки массива по возрастанию amidatong Паскаль, Turbo Pascal, PascalABC.NET 2 21.03.2011 21:04
Процедура сортировки с подсчётом перестановок и сравнений (Паскаль) Паскалька^^ Помощь студентам 0 17.10.2010 23:35
Паскаль. процедура сортировки числового массива методом выбора Оксаночка:) Помощь студентам 2 24.08.2009 11:41