Сформировать главную диагональ матрицы из максимальных элементов, перемещая строки и столбцы - Turbo Pascal
Формулировка задачи:
зарегистрироваться в файл двумерный A массив размером n*n. работу программы нужна начат с чтения матрицы из файла и Параллельно изображат на графическом экране.
матрицу нужно изменять по следующему принципу,передвигая строку и столбец поместить Наибольший элемент матрицы на верхний левый угол' в nклетке (1,1) .
тем же самым способом нужно поступить с матрицои , которая является производным от предыдущей, не принимая во внимание первую строку и столбец.
Наибольший элемент второй матрицы должен появится в клетке (2,2).так продолжая сформировать главную диагональ матрицы
Решение задачи: «Сформировать главную диагональ матрицы из максимальных элементов, перемещая строки и столбцы»
textual
Листинг программы
const maxn=100; W=5; var a: array [1..maxn,1..maxn] of Integer; i, j, k, n, mi, mj, t: Integer; f: Text; begin Assign(f,'m.txt'); Reset(f); ReadLn(f,n); for i:=1 to n do for j:=1 to n do Read(f,a[i,j]); Close(f); WriteLn('A ='); for i:=1 to n do begin for j:=1 to n do Write(' ',a[i,j]:W); WriteLn; end; for k:=1 to n-1 do begin mi:=k; mj:=k; for i:=k to n do for j:=k to n do if a[mi,mj]<a[i,j] then begin mi:=i; mj:=j; end; if k<>mi then for j:=1 to n do begin t:=a[k,j]; a[k,j]:=a[mi,j]; a[mi,j]:=t; end; if k<>mj then for i:=1 to n do begin t:=a[i,k]; a[i,k]:=a[i,mj]; a[i,mj]:=t; end; end; WriteLn('A''='); for i:=1 to n do begin for j:=1 to n do Write(' ',a[i,j]:W); WriteLn; end; end.
Объяснение кода листинга программы
- Объявляются переменные maxn, W и a. Переменная maxn инициализируется значением 100, а переменная W инициализируется значением 5. Переменная a объявляется как массив целых чисел размером от 1 до maxn на 1 до maxn.
- Задается имя файла f и он открывается для чтения.
- Считывается значение переменной n из файла.
- Для каждой строки в файле считываются значения элементов массива a[i,j].
- Закрывается файл f.
- Выводится строка
A =
. - Для каждой строки в массиве a выводятся значения элементов с пробелами между ними.
- Запускается цикл, который перемещает строки и столбцы в матрице a. Цикл выполняется n-1 раз (где n - значение переменной n).
- Внутри цикла сравниваются элементы матрицы a[i,j] и a[k,j]. Если a[i,j] меньше a[k,j], то значения i и j обновляются, чтобы указывать на текущую максимальную строку и столбец.
- Если k не равно mi, то выполняется еще один цикл, который перемещает строки в матрице a.
- Если k не равно mj, то выполняется еще один цикл, который перемещает столбцы в матрице a.
- Выводится строка
A'' =
. - Для каждой строки в массиве a выводятся значения элементов с пробелами между ними.
- Выводится значение переменной n.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д