Двумерные массивы
Помогите пожалуйста решить 3 задачи
Модифицировать программу так, чтобы она осуществляла поиск подматрицы n,в которой сумма элементов главной диагонали наибольшая
writeln('Введите размер подматрицы:');readln(m);
randomize;
for i:=1 to n do
for j:=1 to n do
a[i,j]:=trunc(random*50) ;
writeln('Сформированная матрица');
for i:= 1 to n do
begin
for j:=1 to n do
write(a[i,j],' ');
writeln;
end;
for i:=1 to m do
for j:=1 to m do
if i=j then s:=s+a[i,j];
for l:=1 to n-m+1 do
for k:=1 to n-m+1 do
begin
for i:=1 to m do
for j:=1 to m do
b[i,j]:=a[l+i-1,k+j-1];
s:=0;
for i:=1 to m do
for j:=1 to m do
if i=j then s:=s+b[i,j];
if s>max then
begin
end;
end;
writeln('Сумма элементов=',s);
end.
Модифицировать программу так, чтобы она находила решение системы алгебраических уравнений 4 порядка с любыми вещественными коэффициентами
program zadazna_5;
const
a:array[1..3,1..3] of integer=((2,1,1),(1,2,1),(1,1,2));
b:array[1..3] of integer=(7,8,9);
var
i,j:integer;
delta,delta1,delta2,delta3,x1,x2,x3:real;
begin
delta:=a[1,1]*a[2,2]*a[3,3]+a[1,2]*a[2,3]*a[3,1]+a[1,3]*a[2,1]*a[3,2]-a[3,1]*a[2,2]*a[1,3]-a[3,2]*a[2,3]*a[1,1]-a[3,3]*a[2,1]*a[1,2];
delta1:=b[1]*a[2,2]*a[3,3]+a[1,2]*a[2,3]*b[3]+a[1,3]*b[2]*a[3,2]-b[3]*a[2,2]*a[1,3]-a[3,2]*a[2,3]*b[1]-a[3,3]*b[2]*a[1,2];
delta2:=a[1,1]*b[2]*a[3,3]+b[1]*a[2,3]*a[3,1]+a[1,3]*a[2,1]*b[3]-a[3,1]*b[2]*a[1,3]-b[3]*a[2,3]*a[1,1]-a[3,3]*a[2,1]*b[1];
delta3:=a[1,1]*a[2,2]*b[3]+a[1,2]*b[2]*a[3,1]+b[1]*a[2,1]*a[3,2]-a[3,1]*a[2,2]*b[1]-a[3,2]*b[2]*a[1,1]-b[3]*a[2,1]*a[1,2];
x1:=delta1/delta;
x2:=delta2/delta;
x3:=delta3/delta;
writeln('Найденное решение:');
writeln('x1=',x1,'x2=',x2,'x3=',x3);
end.
program zadazna_3;
label vozvrat;
var
i,j,k,n,m,s:integer;
c:array[1..100,1..100] of integer;
begin
vozvrat:
write('Введите размер матрицы:'); read
;
if(n<10)or (n>-10) then
begin
writeln
randomize;
k:=0;
m:=0;
for i:=1 to n do
for j:=1 to n do
begin
c[i,j]:=random(10);
if c[i,j]>0 then
if j0 then inc(s);
m:=s*k;
end;
end;
for i:=1 to n do
begin
for j:=1 to n do
writeln('*****************************************');
end;
writeln('Количество нулевых=',k);
writeln('Произведение положительных чисел=',m);
end;
end.
Модифицировать программу так, чтобы она находила произведение положительных и количество нулевых элементов матрицы, расположенных под главной диагональю. Все элементы матрицы должны принадлежать диапозону [-10;`10]
Помогите пожалуйста решить 3 задачи
Модифицировать программу так, чтобы она осуществляла поиск подматрицы n,в которой сумма элементов главной диагонали наибольшая
writeln('Введите размер подматрицы:');readln(m);
randomize;
for i:=1 to n do
for j:=1 to n do
a[i,j]:=trunc(random*50) ;
writeln('Сформированная матрица');
for i:= 1 to n do
begin
for j:=1 to n do
write(a[i,j],' ');
writeln;
end;
for i:=1 to m do
for j:=1 to m do
if i=j then s:=s+a[i,j];
for l:=1 to n-m+1 do
for k:=1 to n-m+1 do
begin
for i:=1 to m do
for j:=1 to m do
b[i,j]:=a[l+i-1,k+j-1];
s:=0;
for i:=1 to m do
for j:=1 to m do
if i=j then s:=s+b[i,j];
if s>max then
begin
end;
end;
writeln('Сумма элементов=',s);
end.
Модифицировать программу так, чтобы она находила решение системы алгебраических уравнений 4 порядка с любыми вещественными коэффициентами
program zadazna_5;
const
a:array[1..3,1..3] of integer=((2,1,1),(1,2,1),(1,1,2));
b:array[1..3] of integer=(7,8,9);
var
i,j:integer;
delta,delta1,delta2,delta3,x1,x2,x3:real;
begin
delta:=a[1,1]*a[2,2]*a[3,3]+a[1,2]*a[2,3]*a[3,1]+a[1,3]*a[2,1]*a[3,2]-a[3,1]*a[2,2]*a[1,3]-a[3,2]*a[2,3]*a[1,1]-a[3,3]*a[2,1]*a[1,2];
delta1:=b[1]*a[2,2]*a[3,3]+a[1,2]*a[2,3]*b[3]+a[1,3]*b[2]*a[3,2]-b[3]*a[2,2]*a[1,3]-a[3,2]*a[2,3]*b[1]-a[3,3]*b[2]*a[1,2];
delta2:=a[1,1]*b[2]*a[3,3]+b[1]*a[2,3]*a[3,1]+a[1,3]*a[2,1]*b[3]-a[3,1]*b[2]*a[1,3]-b[3]*a[2,3]*a[1,1]-a[3,3]*a[2,1]*b[1];
delta3:=a[1,1]*a[2,2]*b[3]+a[1,2]*b[2]*a[3,1]+b[1]*a[2,1]*a[3,2]-a[3,1]*a[2,2]*b[1]-a[3,2]*b[2]*a[1,1]-b[3]*a[2,1]*a[1,2];
x1:=delta1/delta;
x2:=delta2/delta;
x3:=delta3/delta;
writeln('Найденное решение:');
writeln('x1=',x1,'x2=',x2,'x3=',x3);
end.
program zadazna_3;
label vozvrat;
var
i,j,k,n,m,s:integer;
c:array[1..100,1..100] of integer;
begin
vozvrat:
write('Введите размер матрицы:'); read
if(n<10)or (n>-10) then
begin
writeln
randomize;
k:=0;
m:=0;
for i:=1 to n do
for j:=1 to n do
begin
c[i,j]:=random(10);
if c[i,j]>0 then
if j0 then inc(s);
m:=s*k;
end;
end;
for i:=1 to n do
begin
for j:=1 to n do
writeln('*****************************************');
end;
writeln('Количество нулевых=',k);
writeln('Произведение положительных чисел=',m);
end;
end.
Модифицировать программу так, чтобы она находила произведение положительных и количество нулевых элементов матрицы, расположенных под главной диагональю. Все элементы матрицы должны принадлежать диапозону [-10;`10]