Автор: Demm 29.05.2004 4:31
Помогите,пожалуста!
вот задача: Даны 2 массива упорядоченных по возрост. надо сформировать 3 также упорядоченный по возрастанию.
Сформировать 3 и потом упорядочить-проблем нет, но надо во время записи 3 массива расставлять элементы сразу на свои места.
Если кто может,покажите как это реализовывается!
Ввод, вывод и описания перем. не обязательно!
Автор: Spawn 29.05.2004 12:39
Код
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 29.05.2004 16:05
помогите ввести с клавы масив из 10 целых чисел. вывести масив на экран. среди всех нечётных элементов(элементов с нечётным значением) найти максимальный. вывести результат.[color=teal][/color]
Автор: Demm 29.05.2004 18:20
Большое спасибо Spawn,сейчас попробую!
Автор: Demm 29.05.2004 19:38
У меня массивы А и В разной длины! А-n , а B-m. Переправил прогу,но что-то она виснит и помогает только перезагрузка. А длина их 1..100.
Как это правильно переправь,а то что-то не получается у меня!
Автор: Spawn 30.05.2004 3:06
Попробуй так:
Код
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 30.05.2004 17:02
Не работает
Вот
Код
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 31.05.2004 3:53
Виноват. Недоглядел.
Вот рабочая версия:
Код
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 1.06.2004 21:29
Большое спасибо.Все круто!!!!