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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2012, 21:53   #1
kaziaka_teddy
 
Регистрация: 31.01.2012
Сообщений: 9
По умолчанию ПАСКАЛЬ.массивы

ДВА Упорядочено МАСИВИ.ВПОРЯДОЧИТЬ НОВЫЙ МАССИВ ИЗ ЭТИХ двух массивов
kaziaka_teddy вне форума Ответить с цитированием
Старый 31.01.2012, 21:58   #2
NestOleh
Новичок
Джуниор
 
Регистрация: 31.01.2012
Сообщений: 3
По умолчанию

Думаю сначала находим в каком из массивов первый элемент меньше(если они упорядочены по возрастанию) а далее в цикле while добавляем по одному элементу на каждой итерации в новый массив выбирая минимальный из текущих в обоих массивах... Должно довольно шустро работать! Сейчас попробую накидать примерный код и скинуть сюда!
NestOleh вне форума Ответить с цитированием
Старый 31.01.2012, 22:00   #3
kaziaka_teddy
 
Регистрация: 31.01.2012
Сообщений: 9
По умолчанию

хорошо.напиши прогу саму
kaziaka_teddy вне форума Ответить с цитированием
Старый 31.01.2012, 22:29   #4
kaziaka_teddy
 
Регистрация: 31.01.2012
Сообщений: 9
По умолчанию

помогите решить
kaziaka_teddy вне форума Ответить с цитированием
Старый 31.01.2012, 22:30   #5
NestOleh
Новичок
Джуниор
 
Регистрация: 31.01.2012
Сообщений: 3
По умолчанию

Вот мой вариант, думаю разберетесь!
Код:
PROGRAM yporad;
  uses crt;
Type mas=array [1..100] of integer;
Var a1,a2,a3:mas;                               // массивы
    n1,n2:integer;                           	// размеры массивов

procedure Input(var a:mas;n:integer);           // задание массива вручную
 var i:integer;
 Begin
    for i:=1 to n do read(a[i]);
 End;
 
procedure Output(var a:mas;n:integer);           // вывод масива
 var i:integer;
 Begin
    for i:=1 to n do Write(a[i],' ');
 End;

procedure sort(var A:mas; l,r: integer);    	// сортировка массива методом быстрой сортировки
     var i,j,x,y: integer;
   begin
     i := l;
     j := r;
     x := A[ (l + r) div 2 ];
     repeat
       while A[i] < x do inc(i);
       while x < A[j] do dec(j);
       if not (i>j) then
         begin
           y    := A[i];
           A[i] := A[j];
           A[j] := y;
           inc(i);
           dec(j);
         end;
     until i>j;
     if l < j then sort(A,l,j);
     if i < r then sort(A,i,r);
   end;

procedure bond(var S:mas; A,B:mas; n1,n2:integer);			// склеивание двух упорядоченных масивов, S - масив в который склеивают
  var ap,bp,i:integer;
begin
 ap:=1; bp:=1;  i:=1;
 while (ap<=n1) or (bp<=n2) do
   begin
        if (A[ap]<B[bp]) and (ap<=n1) or (bp>n2) then
            begin
                S[i]:=A[ap];
                ap:=ap+1;
                i:=i+1;
            end
         else
            begin
                S[i]:=B[bp];
                bp:=bp+1;
                i:=i+1;
            end;


   end;
end;

BEGIN clrscr;
// задаем первый масив - а1
Write('Input size of mas1: ');  readln(n1);
WriteLN('Input mas1:');
Input(a1,n1);
// задаем второй массив - а2
Write('Input size of mas2: ');  readln(n2);
WriteLN('Input mas1:');
Input(a2,n2);
//сортируем массивы
sort(a1,1,n1);
sort(a2,1,n2);
//склеиваем
bond(a3,a1,a2,n1,n2);
//выводим отсортированый а1
writeln;
Output(a1,n1);
//выводим отсортированый а2
writeln;
Output(a2,n2);
//выводим отсортированую склейку а1 и а2
writeln;
Output(a3,n2+n1);
repeat until keypressed
END.
NestOleh вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
массивы, Паскаль narco3 Помощь студентам 3 29.11.2011 13:59
Массивы.Паскаль Ashley12 Помощь студентам 6 30.11.2010 11:34
Паскаль. Массивы VD1988 Помощь студентам 20 06.11.2009 14:01
Паскаль. Массивы. Lion1988 Помощь студентам 5 28.10.2009 17:22
Паскаль и массивы RamireZ Паскаль, Turbo Pascal, PascalABC.NET 7 24.10.2008 17:20