Как совершить объеденение числовых масивов?

Компьютеры программирование базы данных делфи массивы

Как объединить два массива с выводом в 3-й так, чтобы в него входли лишь те элементы, котрые взяты виз каждого массива по одному разу.
То есть, например: а(n): 4 5 6 7 8 9, b(m): 7 8 9 1 0, и тогда c(n+m): 4 5 6 1 0.

P.S. Я сделал слияние массивов, и упорядочил их элементы по возростанию( а(n): 4 5 6 7 8 9, b(m): 7 8 9 1 0, c(n+m): 0 2 4 5 6 7 7 8 8 9 9).(Массивы заполнены через randomize). А как удалить те, что повторяються ума не приложу, очень прошу помочь, желательно с кодом.

Примечание:
HackXr, вот, пожалуйста

var
Form1: TForm1;
Var a: array[1..300] of integer;
b: array[1..200] of integer;
c: array[1..500] of integer;
d: array[1..500] of real;
n,m,k: integer;
i, j, r,z: integer;
x: real;
f: boolean;
implementation

{$R *.dfm}


procedure TForm1.Button1Click(Sender: TObject);
begin
Randomize;
Memo1.Clear;
Memo2.Clear;
Memo3.Clear;
n:=StrToInt(Edit1.text);
m:=StrToInt(Edit2.text);

for i:=1 to n do begin
A[i]:=Random(10);
Memo1.Lines.Add(IntToStr(A[i]))
end;
for i:=1 to m do begin
B[i]:=Random(10);
Memo2.Lines.Add(IntToStr(B[i]))
end;


for i:=1 to n-1 do
begin k:=i;
for j:=i+1 to n do
if a[j]<a[k] then k:=j;
r:=a[i];
a[i]:=a[k];
a[k]:=r;
end;
for i:=1 to m-1 do
begin k:=i;
for j:=i+1 to m do
if b[j]<b[k] then k:=j;
r:=b[i];
b[i]:=b[k];
b[k]:=r;
end;
begin
i:=1; j:=1; k:=0;
while (i <= n) and (j <= m) do
if a[i] < b[j] then
begin k:=k+1; c[k]:=a[i]; i:=i+1;end
else
begin k:=k+1; c[k]:=b[j]; j:=j+1;end;
if i > n then
for i:=j to m do
begin k:=k+1; c[k]:=b[i]; end
else
for j:=i to n do
begin k:=k+1; c[k]:=a[j]; end;
end;
for i:= 1 to n+m do
Memo3.Lines.Add(IntToStr(c[i]));
Edit3.Text:=inttostr(n+m);

end;

Буду очень признателен)
Ответы:
Например, создаёте ещё один массив и копируете в него последовательно неповторяющиеся элементы из объединённого массива.
Логически построено всё верно для массива. В конце появляются нули их ровно столько сколько совпадений, массив обязательно отсортирован по порядку как ты и сделал. Потом мой код ищет одинаковые и удаляет их, точнее каждое повторяющееся заменяет на следующее. Чтобы избавиться от нулей в конце, нужно обрабатывать массивы как строки.


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.