I, j : integer;
A : Matr;
tmp : integer;
begin
repeat
write('Введите число N: ');
readln(n);
until (n > 1) and (n <= MAX);
writeln('Ввод матрицы:');
for i:=1 to N do
for j:=1 to N do
read(A[i, j]);
{ вывод исходной матрицы }
writeln;
writeln('Исходные данные.');
for i:=1 to N do
begin
for j:=1 to N do write(A[i, j]:4, ' ');
writeln;
end;
{ транспанирование матрицы }
for i:=1 to N do
for j:=i+1 to N do
begin
tmp := A[i, j];
A[i, j] := A[j, i];
A[j, i] := tmp;
end;
{ вывод результата матрицы }
writeln;
writeln('Результат.');
for i:=1 to N do
begin
for j:=1 to N do write(A[i, j]:4, ' ');
writeln;
end;
end.
Задача 7.
const
MAX = 100;
var
N : integer;
i, j, k, m : integer;
L : array [1..MAX] of longint; { длины файлов }
TIME, tmp, TEMP : longint;
begin
write('Введите количество файлов: ');
readln(n);
{ ввод длин файлов }
for i:=1 to n do
begin
write('Длина файла ', i, ': ');
readln(L[i]);
end;
{ метод пузырьковой сортировки }
for i:=1 to n do
for j:=n downto i+1 do
if L[j] < L[j-1] then
begin
tmp := L[j];
L[j] := L[j-1];
L[j-1] := tmp;
end;
Time := 0;
for i := 1 to n-1 do begin
L[i+1] := L[i+1] + L[i];
Time := Time + L[i+1];
L[i] := 0;
{Include L[i+1] in L[i+1 .. n]}
Temp := L[i+1];
j := i + 2;
While (L[j] <= Temp) and (j <= n) do j := j + 1;
For k := i+1 to j-1 do L[k] := L[k+1];
L[j-1] := Temp;
end;
writeln(Time);
end.
Задача 9.
const
MAX = 10;
type
Matr = array [1..MAX, 1..MAX] of integer;
Vector = array [1..Max] of integer;
var
m, n : integer;
I, j : integer;
A : Matr;
cols_max : Vector; { максимальные элементы столбцов }
rows_min : Vector; { минимальные элементы строк }
f : boolean;
begin
repeat
write('Введите размерность массива n, m: ');
readln(n, m);
until (n > 1) and (n <= MAX) and (m > 1) and (m <= MAX);
writeln('Ввод матрицы:');
for i:=1 to n do
for j:=1 to m do
read(A[i, j]);
{ вывод исходной матрицы }
writeln;
writeln('Исходные данные.');
for i:=1 to n do
begin
for j:=1 to m do write(A[i, j]:4, ' ');
writeln;
end;
{ нахождение максимальных элементов столбцов }
for i:=1 to m do { цикл по столбцам }
begin
cols_max[i] := A[1, i];
for j:=2 to n do { цикл по строкам }
if A[j, i] > cols_max[i] then
cols_max[i] := A[j, i];
end;
{ нахождение минимальных элементов строк }
for i:=1 to n do { цикл по строкам }
begin
rows_min[i] := A[i, 1];
for j:=2 to m do { цикл по столбцам }
if A[i, j] < rows_min[i] then
rows_min[i] := A[i, j];
end;
f := False;
for i:=1 to n do { цикл по строкам }
for j:=1 to m do { цикл по столбцам }
begin
if (A[i, j] = cols_max[j]) And (A[i, j] = rows_min[i]) then
begin
f := True;
Writeln('Седловая точка: ', A[i, j]:4);
end;
end;
if Not f then writeln('Седловая точка не существует.');
end.
Задача 10
const
MAX = 10;
type
Matr = array [1..MAX, 1..MAX] of integer;
var
m, n : integer;
