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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2011, 22:48   #1
Arbaiter
 
Регистрация: 18.12.2011
Сообщений: 5
Печаль Сортировка массивов (Pascal/Delphi)

Даны 3 одномерных динамических массива. В 1-ом и 2-ом введены рандомные положительные и отрицательные числа.
Необходимо, чтобы по нажатии кнопки числа из этих двух массивов вывелись в третьем таким образом, чтобы сначала ишли положительные, отсортированные по возврастанию, а затем отрицательные, отсортированные по убыванию.
Полный ступор, кучу заданий уже сделал, а это не поддаётся.
Спасибо зараннее.
Arbaiter вне форума Ответить с цитированием
Старый 19.12.2011, 22:56   #2
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

сортируешь в нужном порядке сперва 1 и 2 массив... (насколько я понимаю в первом только положительные, во втором только отрицательные) ... затем записываешь элементы первого массива в 3 массив, затем дописываешь третий вторым массивом...
как то так...
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 19.12.2011, 22:58   #3
Arbaiter
 
Регистрация: 18.12.2011
Сообщений: 5
По умолчанию

В первом и втором массивах вручную записаны и отрицательные и положительные числа, абсолютно рандомно.=(
Arbaiter вне форума Ответить с цитированием
Старый 19.12.2011, 23:05   #4
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

1) отсортируй оба массива по убыванию
2.1 найди поз.1-го отр в 1-ом масиве отсортируй по возрастанию от 0 до этой поз
2.2 аналогично во 2-м
2.3 сливай в 3-й массив без нарушения упорядоченности из 2-х массивов одновременно от 0 до Поз 1-го отр в обоих соответственно(алгоритмы на форуме есть)
2.4 тоже самое но с Поз 1-го отр до конца Массивов
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 19.12.2011, 23:23   #5
Arbaiter
 
Регистрация: 18.12.2011
Сообщений: 5
По умолчанию

1)
Код:
 for i:=1 to N do
  A[i]:=StrTofloat(StringGrid1.Cells[i,0]);
 for i:=1 to M do
  B[i]:=StrTofloat(StringGrid2.Cells[i,0]);

  for i:=1 to n do
  for j:=n downto i do
  if a[j-1]<a[j] then
      begin
      r:=a[j];
      a[j]:=a[j-1];
      a[j-1]:=r;
   end;

  for i:=1 to m do
  for j:=m downto i do
  if b[j-1]<b[j] then
      begin
      r:=b[j];
      b[j]:=b[j-1];
      b[j-1]:=r;
   end;
Сортировка двух массивов это или полный бред?
Arbaiter вне форума Ответить с цитированием
Старый 19.12.2011, 23:39   #6
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

держи... я сделал по своему... только подправишь для дельфы... сделано на паскале... пихашь первых 2 масива в третий... и сортируешь...
Код:
var
i,j,n,buf: integer;
a: array [1..10] of integer;
flag:boolean;
begin
n:=10;
for i:=1 to n do
readln(a[i]);
for i:=1 to n do
begin
     flag:=false;
     for j:=i to n do
     if a[j] > 0 then
     flag := true;  // проверка есть ли ещё положительные элементы
if flag = true then  // сортируем положительные элементы
 begin
for j:=i to n do
         if (a[j] > 0) then
         if (a[i] < 0) then
         begin
              buf:= a[i];
              a[i]:= a[j];
              a[j]:= buf;
         end
         else
         if (a[i] > a[j]) then
          begin
              buf:= a[i];
              a[i]:= a[j];
              a[j]:= buf;
         end;
 end
else  // сортировка отрицательных
 for j:=i to n do
  if a[i] < a[j] then
     begin
     buf:=a[i];
     a[i]:=a[j];
     a[j]:=buf;
     end;
end;
writeln;
for i:=1 to n do
writeln(a[i]);
end.
пишу код не только за печеньки

Последний раз редактировалось VIK_aka_TOR; 20.12.2011 в 00:12.
VIK_aka_TOR вне форума Ответить с цитированием
Старый 20.12.2011, 00:07   #7
Arbaiter
 
Регистрация: 18.12.2011
Сообщений: 5
По умолчанию

Как ни пытаюсь понять, всё не выходит)
Arbaiter вне форума Ответить с цитированием
Старый 20.12.2011, 00:10   #8
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

сперва проверяем есть ли положительные элементы... если положительные есть, то ищем их и сортируем... когда положительных нету... сортируем отрицательные... может не совсем как предлагали выше.. но такова моя идея была...

P.S. и что тебе тут не понятно??? либо юзай F7... либо сам пройдись по алгоритму программы... с карандашиком и листиком...
P.S.P.S. жмякни на весы хлоть...
пишу код не только за печеньки

Последний раз редактировалось VIK_aka_TOR; 20.12.2011 в 00:31.
VIK_aka_TOR вне форума Ответить с цитированием
Старый 20.12.2011, 00:27   #9
Arbaiter
 
Регистрация: 18.12.2011
Сообщений: 5
По умолчанию

И на том спасибо)
Arbaiter вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi, сравнение массивов, умножение массивов Marjasja Помощь студентам 0 22.05.2011 19:59
Delphi, сравнение массивов, умножение массивов Marjasja Общие вопросы Delphi 0 22.05.2011 19:49
Сортировка массивов С++ Adelina Помощь студентам 17 25.04.2011 16:20
сортировка массивов Veronik@ Общие вопросы C/C++ 9 24.10.2010 14:46