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 (очень простая). Всего лишь два цикла в цикле и два сравнения чисел.
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.
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 (очень простая).
Всего лишь два цикла в цикле и два сравнения чисел.