Помогите,пожалуста!
вот задача: Даны 2 массива упорядоченных по возрост. надо сформировать 3 также упорядоченный по возрастанию.
Сформировать 3 и потом упорядочить-проблем нет, но надо во время записи 3 массива расставлять элементы сразу на свои места.
Если кто может,покажите как это реализовывается!
Ввод, вывод и описания перем. не обязательно!
Код
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;
Вроде так.
помогите
ввести с клавы масив из 10 целых чисел. вывести масив на экран. среди всех нечётных элементов(элементов с нечётным значением) найти максимальный. вывести результат.[color=teal][/color]
Большое спасибо Spawn,сейчас попробую!
У меня массивы А и В разной длины! А-n , а B-m. Переправил прогу,но что-то она виснит и помогает только перезагрузка. А длина их 1..100.
Как это правильно переправь,а то что-то не получается у меня!
Попробуй так:
Код
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;
Не работает
Вот
Код
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.
Виснит и все тут!
Виноват. Недоглядел.
Вот рабочая версия:
Код
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.
Большое спасибо.Все круто!!!!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.