Var i,j,n: integer; a: array[,] of real; begin write('n = '); readln(n); setlength(a,n+1,n+1); randomize; writeln('исходная матрица:'); for i:=1 to n do begin for j:=1 to n do begin a[i,j]:=random(-20,20); write(a[i,j]:4); end; writeln; end; //транспонирование матрицы for i:=1 to n-1 do for j:=i+1 to n do swap(a[i,j],a[j,i]); //вывод на экран writeln('транспонированная матрица:'); for i:=1 to n do begin for j:=1 to n do write(a[i,j]:4); writeln; end; end.
1) Начало 2) Ввод матрицы A(5, 10) 3) Цикл по i от 1 до 5 // по строкам 3.1) max = A(i, 1); min = A(i, 1); nmax = 1; nmin = 1; 3.2) Цикл по k от 1 до 10 // по столбцам 3.2.1) Если A(i, k) > max, то // находим максимум в строке и его номер 3.2.1.1) max = A(i, k); nmax = k; 3.2.1.2) Конец Если 3.2.2) Если A(i, k) < min, то // находим минимум в строке и его номер 3.2.2.1) min = A(i, k); nmin = k; 3.2.2.2) Конец Если 3.2.3) Конец цикла по k // по столбцам 3.2.4) A(i, nmin) = max; A(i, nmax) = min // меняем их местами 3.3) Конец цикла по i // по строкам 4) Вывод массива A(5, 10) 5) Конец. Сложность такой программы - 1 (очень простая). Всего лишь два цикла в цикле и два сравнения чисел.
a: array[,] of real;
begin
write('n = '); readln(n);
setlength(a,n+1,n+1);
randomize;
writeln('исходная матрица:');
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=random(-20,20);
write(a[i,j]:4);
end;
writeln;
end;
//транспонирование матрицы
for i:=1 to n-1 do
for j:=i+1 to n do swap(a[i,j],a[j,i]);
//вывод на экран
writeln('транспонированная матрица:');
for i:=1 to n do
begin
for j:=1 to n do write(a[i,j]:4);
writeln;
end;
end.
n = 4
исходная матрица:
-5 16 -10 5
-4 -20 6 14
-2 10 -4 -7
-16 1 -9 13
транспонированная матрица:
-5 -4 -2 -16
16 -20 10 1
-10 6 -4 -9
5 14 -7 13
2) Ввод матрицы A(5, 10)
3) Цикл по i от 1 до 5 // по строкам
3.1) max = A(i, 1); min = A(i, 1); nmax = 1; nmin = 1;
3.2) Цикл по k от 1 до 10 // по столбцам
3.2.1) Если A(i, k) > max, то // находим максимум в строке и его номер
3.2.1.1) max = A(i, k); nmax = k;
3.2.1.2) Конец Если
3.2.2) Если A(i, k) < min, то // находим минимум в строке и его номер
3.2.2.1) min = A(i, k); nmin = k;
3.2.2.2) Конец Если
3.2.3) Конец цикла по k // по столбцам
3.2.4) A(i, nmin) = max; A(i, nmax) = min // меняем их местами
3.3) Конец цикла по i // по строкам
4) Вывод массива A(5, 10)
5) Конец.
Сложность такой программы - 1 (очень простая).
Всего лишь два цикла в цикле и два сравнения чисел.