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

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

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

> Задачи по сортировке
gooddron123
сообщение 26.02.2005 14:38
Сообщение #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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 26.02.2005 14:55
Сообщение #2


Гость






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

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

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





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

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


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

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

Сообщений в этой теме


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

 



- Текстовая версия 21.07.2025 20:34
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"