Сформировать новый массив, состоящий из десяти элементов с наибольшими значениями исходных массивов - Turbo Pascal
Формулировка задачи:
Произвольно заданы три одномерных массива. Сформировать новый массив, состоящий из десяти элементов с наибольшими значениями исходных массивов. Помогите пожалуйста! Нужно написать программу с while и repeat!!!(отдельные)
Решение задачи: «Сформировать новый массив, состоящий из десяти элементов с наибольшими значениями исходных массивов»
textual
Листинг программы
const
n = 100;
type
vector = array [1..n] of integer;
var
a, b, c, d: vector;
k, m, i: integer;
q, mx: integer;
function max(x: vector; m: integer): integer;
var
i: integer;
mx: integer;
begin
mx := x[1];
for i := 2 to n do
if x[i] > mx then
mx := x[i];
max := mx;
end;
procedure CreateVector(var x: vector; m: integer);
var
i: integer;
mx: integer;
begin
for i := 1 to m do
x[i] := -m div 2 + random(m);
end;
begin
randomize;
write('Размерность вектора A: ');
readln(m);
CreateVector(a, m);
writeln('Vector A:');
for i := 1 to m do
write(a[i]:4);
writeln;
writeln('Максимальные элементы: ');
q := max(a, m);
k := 0;
for i := 1 to m do
begin
if a[i] = q then
begin
write(a[i]:4);
inc(k);
d[k] := a[i];
end;
end;
writeln;
write('Размерность вектора B: ');
readln(m);
CreateVector(b, m);
writeln('Vector B:');
for i := 1 to m do
write(b[i]:4);
writeln;
writeln('Максимальные элементы: ');
q := max(b, m);
for i := 1 to m do
begin
if b[i] = q then
begin
write(b[i]:4);
inc(k);
d[k] := b[i];
end;
end;
writeln;
write('Размерность вектора C: ');
readln(m);
CreateVector(c, m);
writeln('Vector C:');
for i := 1 to m do
write(c[i]:4);
writeln;
writeln('Максимальные элементы: ');
q := max(c, m);
for i := 1 to m do
begin
if c[i] = q then
begin
write(c[i]:4);
inc(k);
d[k] := c[i];
end;
end;
writeln;
writeln('Vector D:');
for i := 1 to k do
write(d[i]:4);
end.