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

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

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

> Сортировка одномерных массивов, на полож. и отриц. элементы
Jaxx
сообщение 27.04.2004 17:38
Сообщение #1


Пионер
**

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

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


Дана целочисленная матрица с положительными и отрицательными числами (то есть одномерный массив из 10 элементов). Переставить элементы так, чтобы сначала шли отрицательные, а потом положительные элементы, не нарушая их взаимного расположения в каждой группе (то есть если был массив «1 -2 3 -4 5 -6 7 -8 9 -10», то должен стать массивом следующим «-2 -4 -6 -8 -10 1 3 5 7 9»).
Нужно довольно срочно (в ближайшие 2 дня).
Заранее спасибо.


--------------------
- Дорогие девушки! У вас сухая кожа? Редкие волосы? Проблемы с фигурой? Приходите к нам! У нас темно и мы пьяные.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 2)
Dark
сообщение 28.04.2004 2:56
Сообщение #2


Знаток
****

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

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


Вот лови, здесь 2 раза использован один и тот же алгоритм сортировки, помоему пузырьковая =)

Код

uses crt;
var mas:array[0..19] of integer;
   i:byte; {счетчик}
   t:boolean;{ключ}
   temp:integer;

begin
clrscr;
randomize;

{Генерируем массив}
for i:=0 to 19 do mas[i]:=random(100)-50;
for i:=0 to 19 do write(mas[i],' ');
writeln;

{Сортируем по возрастанию ВСЕ элементы}
t:=false;
while (t=false) do
 begin
  t:=true;
  for i:=0 to 18 do
   if (mas[i+1]<mas[i]) then
    begin
     temp:=mas[i];
     mas[i]:=mas[i+1];
     mas[i+1]:=temp;
     t:=false;
    end;
end;

for i:=0 to 19 do write(mas[i],' ');
writeln;

{Сортируем по убыванию ТОЛЬКО ОТРИЦАТЕЛЬНЫЕ элементы}
t:=false;
while (t=false) do
begin
 t:=true;
 for i:=0 to 18 do
  begin
   if (mas[i+1]>=0)  then break;
   if (mas[i+1]>mas[i]) then
     begin
       temp:=mas[i];
       mas[i]:=mas[i+1];
       mas[i+1]:=temp;
       t:=false;
     end;
end;
end;

for i:=0 to 19 do write(mas[i],' ');
writeln;
readkey;
end.



Надеюсь поможет =) :p5:

Сообщение отредактировано: Dark - 28.04.2004 2:57


--------------------
- Где я?
- Во тьме.
- В какой тьме?
- Во тьме твоего мозга.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Jaxx
сообщение 30.04.2004 14:09
Сообщение #3


Пионер
**

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

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


Я тоже наделся...Не помогло. Все равно не понимаю. Отсортировать на отрицательные и положительные получается, а вот по порядку их расположить - не очнь выходит.


--------------------
- Дорогие девушки! У вас сухая кожа? Редкие волосы? Проблемы с фигурой? Приходите к нам! У нас темно и мы пьяные.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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