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

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

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

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





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

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


Вообщем, как я уже говорил, дал нам препод задание: напишите, любезные, «пузырьковую сортировку», «сортировку вставками» и «всплытием Флойда».
Пузырьковую я еще в школе писал, с Флойдом разобрался вроде. Взял, вот алгоритм «вставками» с вашего фака:
Код

Program sortirovka;
uses crt;
var
 a:array[1..1000] of integer;
 n,i,j,t,m,k,copy:integer;
 change:boolean;
procedure Insert;{tested}
begin
    for i:=1 to n do
    begin
 t:=a[i];
   j:=pred(i);
   While (t<a[j])and(j>=0) do
   begin
       a[succ(j)]:=a[j];
         dec(j);
   end;
   a[succ(j)]:=t;
    end;
end;{Insert}
begin
 ClrScr;
 Writeln('Введите размер массива');
 Readln(n);
 Writeln('Введите элементы массива');
 For i:=1 to n do Read(a[i]);
 Writeln('Неотсортированный массив');
 For i:=1 to n do write(a[i],' ');
 Writeln;
 Insert;
 Writeln('Отсортированный массив');
 For i:=1 to n do write(a[i],' ');
 Writeln;
 Readkey;
end.

В итоге, при вводе, к примеру, чисел
1,5,2,7,4,5
выдает следующий результат:
2,4,5,5,7,69
И так всегда - наименьшее число заменяется на 69 sad.gif((. Объясните, плиз, в чем ошибка.
Еще задачка:
Из неупорядоченного числового массива А(m) получить упорядоченный по возрастанию массив D(n) (n<=m) следующим образом. Выбрать в А наименьший элемент и поместить его в D, затем наименьший из оставшихся и т.д. повторяющиеся эл-ты включать единожды, массив А сохранить. Сделать надо так, чтобы в решении можно было использовать любую из трех процедур.
Вроде бы ничего сложного, а я вот не соображу… sad.gif напишите пару строк по поводу как это организовать, если несложно, а уж код я напишу как-нибудь.
Заранее спасибо.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Цитата(gooddron123 @ 26.02.05 13:38)
Взял, вот алгоритм «вставками» с вашего фака:
Код
procedure Insert;{tested}
begin
end;

... Объясните, плиз, в чем ошибка.

Ошибка у Вас в программе... Вы не взяли нашу процедуру из ФАКа, Вы взяли и переделали ее... Вы что же, думаете, я зря описываю параметры? Моя процедура работает. Только что проверил еще раз...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





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

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


Цитата(volvo @ 26.02.05 14:55)
Ошибка у Вас в программе... Вы не взяли нашу процедуру из ФАКа, Вы взяли и переделали ее... Вы что же, думаете, я зря описываю параметры? Моя процедура работает. Только что проверил еще раз...

Действительно sad.gif
Извините sad.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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