Program Lab10;
uses crt;
const na=30;
nb=15;
m=5;
n=4;
type
Tvec=array[1..na+nb] of integer;
Tmtr=array[1..m,1..n] of integer;
Procedure VvodVector(Var Aa:Tvec;n:byte;Pa,Qa:integer;c:char);
var i:byte;
begin
repeat
writeln('Введите диапазон для вектора ',c);
readln(Pa,Qa);
until Qa>Pa;
for i:=1 to n do
Aa[i]:=random(Qa-Pa+1)+Pa;
end;
Procedure VyvodVector(Aa:Tvec;n:Byte;c:char);
var i:byte;
begin
writeln('Вектор ',c);
for i:=1 to n do
Write (Aa[i]:4);
writeln
end;
Procedure VyvodMatr(Mm:Tmtr);
var i,j:byte;
begin
for i:=1 to m do
Begin
for j:=1 to n do
Write (Mm[i,j]:4);
WriteLn;
End;
end;
Function MaxVec(Aa:Tvec;n:Byte;var ind:Byte):Integer;//нужен не сам макс., а его индекс в массиве
var i,max:byte;
begin
max:=Aa[1];
ind:=1;
for i:=1 to n do
if Aa[i]>max then
begin
max:=Aa[i];
ind:=i
end;
MaxVec:=max;
end;
procedure CreateMatr(Aa,Bb:Tvec;var Mm:Tmtr);
var i,p,q,k:Byte;
begin
for p:=1 to m do
for q:=1 to n do
Mm[p,q]:=0;//обнулим матрицу
k:=0;
p:=1;
q:=0;
for i:=1 to na do//выберем положительный из массива А
if Aa[i]>0 then
begin
k:=k+1;
if k>m*n then exit;
q:=q+1;
if q>n then
begin
p:=p+1;
q:=1;
end;
Mm[p,q]:=Aa[i];
end;
if k<m*n then //если не хватило, выберем из массива В
for i:=1 to na do
if Bb[i]>0 then
begin
k:=k+1;
if k>m*n then exit;
q:=q+1;
if q>n then
begin
p:=p+1;
q:=1;
end;
Mm[p,q]:=Bb[i];
end;
end;
procedure NewVec(var Aa:Tvec;Bb:Tvec;ind:Byte);
var i,j,n:Byte;
begin
n:=na;
for i:=1 to nb do
begin
n:=n+1;
for j:=n downto ind+1+i do
Aa[j]:=Aa[j-1];
Aa[ind+i]:=Bb[i];
end;
end;
var A,B:Tvec;
C:Tmtr;
Pa,Qa,Pb,Qb,ma,mb:integer;
ia,ib:Byte;
begin
clrscr;
VvodVector(A,30,Pa,Qa,'A');
VvodVector(B,15,Pb,Qb,'B');
VyvodVector(A,30,'A');
ma:=MaxVec(A,30,ia);
writeln('Максимальный элемент=',ma,' его индекс=',ia);
VyvodVector(B,15,'B');
mb:=MaxVec(B,15,ib);
writeln('Максимальный элемент=',mb);
if abs(ma-mb)>10 then
begin
writeln('Разность максимальных больше 10');
CreateMatr(A,B,C);
VyvodMatr(C);
end
else
begin
writeln('Разность максимальных не больше 10');
NewVec(A,B,ia);
VyvodVector(A,na+nb,'A');
end;
readln
end.