Помощь - Поиск - Пользователи - Календарь
Полная версия: Массивы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Demm
Помогите,пожалуста!
вот задача: Даны 2 массива упорядоченных по возрост. надо сформировать 3 также упорядоченный по возрастанию.
Сформировать 3 и потом упорядочить-проблем нет, но надо во время записи 3 массива расставлять элементы сразу на свои места.
Если кто может,покажите как это реализовывается!
Ввод, вывод и описания перем. не обязательно!
Spawn
Код
type
 massiv = array[1..max] of integer;

procedure sort(var A,B,C : massiv);
var i,j,k : 1..max;
begin
 i := 1; j := 1; k := 1;
 repeat
   if A[i]>B[j] then
   begin
     C[k] := B[j];
     j = j + 1;
   end
   else
   begin
     C[k] := A[i];
     i := i + 1;
   end;
   k := k + 1;
   if i>max then
     for i := j to max do
     begin
       C[k] := B[i];
       k := k + 1;
     end
   else if j>max then
     for j := i to max do
     begin
       C[k] := A[j];
       k := k + 1;
     end;
 until k=2*max;
end;


Вроде так.
1153
помогите unsure.gif ввести с клавы масив из 10 целых чисел. вывести масив на экран. среди всех нечётных элементов(элементов с нечётным значением) найти максимальный. вывести результат.[color=teal][/color]
Demm
Большое спасибо Spawn,сейчас попробую!
Demm
У меня массивы А и В разной длины! А-n , а B-m. Переправил прогу,но что-то она виснит и помогает только перезагрузка. А длина их 1..100.
Как это правильно переправь,а то что-то не получается у меня!
Spawn
Попробуй так:
Код

const
 n = 100; {длина массива А}
 m = 90; {длина массива В}
 t = n + m; {длина результирующего массива}
type
 mA = array[1..n] of integer;
 mB = array[1..m] of integer;
 mC = array[1..t] of integer;

procedure sort(var A : mA, B : mB, C : mC);
var i,j,k : 1..t;
begin
i := 1; j := 1; k := 1;
repeat
  if A[i]>B[j] then
  begin
    C[k] := B[j];
    j = j + 1;
  end
  else
  begin
    C[k] := A[i];
    i := i + 1;
  end;
  k := k + 1;
  if i>n then
    for i := j to m do
    begin
      C[k] := B[i];
      k := k + 1;
    end
  else if j>m then
    for j := i to n do
    begin
      C[k] := A[j];
      k := k + 1;
    end;
until k=t;
end;
Demm
Не работает
Вот
Код

const
n = 4; {длина массива А}
m = 5; {длина массива В}
t = n + m; {длина результирующего массива}
type
mA = array[1..n] of integer;
mB = array[1..m] of integer;
mC = array[1..t] of integer;
var i,j,k:integer;
A:mA;B:mB;C:mC;
procedure sort(var A : mA; B : mB; C : mC);
begin
i := 1; j := 1; k := 1;
repeat
 if A[i]>B[j] then
 begin
   C[k] := B[j];
   j := j + 1;
 end
 else
 begin
   C[k] := A[i];
   i := i + 1;
 end;
 k := k + 1;
 if i>n then
   for i := j to m do
   begin
     C[k] := B[i];
     k := k + 1;
   end
 else if j>m then
   for j := i to n do
   begin
     C[k] := A[j];
     k := k + 1;
   end;
until k=t;
end;

begin
    writeln('mass A');
  for i:=1 to n do
    readln(A[i]);
    writeln('mass B');
  for j:=1 to m do
    readln(B[j]);
    sort(A,B,C);
    writeln('poluch');
  for k:=1 to t do
    write(C[k],' ');
    readln;
end.


Виснит и все тут!
Spawn
Виноват. Недоглядел.
Вот рабочая версия:
Код
const
n = 4; {длина массива А}
m = 5; {длина массива В}
t = n + m; {длина результирующего массива}
type
mA = array[1..n] of integer;
mB = array[1..m] of integer;
mC = array[1..t] of integer;
var i,j,k:integer;
A:mA;B:mB;C:mC;
procedure sort(var A : mA; var B : mB; var C : mC);
begin
i := 1; j := 1; k := 1;
repeat
if A[i]>B[j] then
begin
  C[k] := B[j];
  j := j + 1;
end
else
begin
  C[k] := A[i];
  i := i + 1;
end;
k := k + 1;
if i>n then
  for i := j to m do
  begin
    C[k] := B[i];
    k := k + 1;
  end
else if j>m then
  for j := i to n do
  begin
    C[k] := A[j];
    k := k + 1;
  end;
until k>=t;
end;

begin
   writeln('mass A');
 for i:=1 to n do
   read(A[i]);
   writeln('mass B');
 for j:=1 to m do
   read(B[j]);
   sort(A,B,C);
   writeln('poluch');
 for k:=1 to t do
   write(C[k],' ');
   readln;
end.
Demm
Большое спасибо.Все круто!!!!
Spawn
:D Всегда пожалуйста! :D
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.