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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.06.2009, 01:58   #21
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Количество перестановок. Вот в этот кусок
Код:
x:=a[i];
a[i]:=a[m];
a[m]:=x;
добавьте увеличение какого нибудь глобального счётчика. Кстати обычно все эти три присваивания считаются одной перестановкой.
Не совсем понял что имеется ввиду под количеством проходов сортировки. Если количество итераций цикла, то надо в цикле тоже увеличивать другой счётчик. Хотя тут не понятно, оба цикла учитывать или только один. А если сложность алгоритма, то она O(n^2)
Щёлкнуть на рисунок весов в низу столбца с моей аватаркой
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 14.06.2009, 02:04   #22
Mariya2009
Пользователь
 
Регистрация: 13.06.2009
Сообщений: 26
По умолчанию

вставляю далее четвертой строкой
код s1:=s1+1;
и вывожу в лабел , выводит номера переставляемых элементов(1984816316), вывод прописываю после vivod(a);
Mariya2009 вне форума Ответить с цитированием
Старый 14.06.2009, 02:08   #23
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Ничё не понял, напиши код полностью
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 14.06.2009, 02:11   #24
Mariya2009
Пользователь
 
Регистрация: 13.06.2009
Сообщений: 26
По умолчанию

место где были изменения:

procedure TForm1.Button2Click(Sender: TObject);
Var x,i,j,m,N,s1:integer;
begin
N := 10;
for i:=1 to N-1 do //ïåðåáîð ýëåìåíòîâ âûõîäíîãî ìíîæåñòâà
// âõîäíîå ìíîæåñòâî - [i:N]; âûõîäíîå - [1:i-1]
begin
m:=i;
for j:=i+1 to N do// ïîèñê ìèíèìóìà âî âõîäíîì ìíîæåñòâå
if(a[j]<a[m]) then m:=j;
//îáìåí 1-ãî ýëåìåíòà âõ.ìíîæåñòâà ñ ìèíèìàëüíûì
if i<>m then begin
x:=a[i];
a[i]:=a[m];
a[m]:=x;
s1:=s1+1;//прписала счетчик
end;
end;
vivod(a);
label3.Caption:='Перестановок '+inttostr(s1);//вывод счетчика при кот он выдает 1984816316!!!!!!!!!!
end;

непонятно как так?
Mariya2009 вне форума Ответить с цитированием
Старый 14.06.2009, 02:29   #25
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

У вас та же ошибка, что и в первом случае: переменной s1 не задано начальное значение 0. То есть в ячейке памяти, которая соответствует s1, будет непонятно что, оставшееся от выполнения других программ. Всегда задавайте начальное значение счётчиков, размеров массивов и т.п.
Код:
N := 10;
s1 := 0;
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 14.06.2009, 02:33   #26
Mariya2009
Пользователь
 
Регистрация: 13.06.2009
Сообщений: 26
По умолчанию

вы мне очень помогли спасибо большущее пребольшущее
Mariya2009 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите со списками в Delphi arm777 Помощь студентам 2 09.06.2009 13:54
помогите с работой с односвязными списками Паскаль neon0858 Помощь студентам 2 18.05.2009 22:00
Помогите пожалуйста со списками... Horknee Паскаль, Turbo Pascal, PascalABC.NET 10 22.12.2008 16:21
Работа со списками. radist Паскаль, Turbo Pascal, PascalABC.NET 4 07.05.2007 00:05