Сформировать главную диагональ матрицы из максимальных элементов, перемещая строки и столбцы - 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.

Объяснение кода листинга программы

  1. Объявляются переменные maxn, W и a. Переменная maxn инициализируется значением 100, а переменная W инициализируется значением 5. Переменная a объявляется как массив целых чисел размером от 1 до maxn на 1 до maxn.
  2. Задается имя файла f и он открывается для чтения.
  3. Считывается значение переменной n из файла.
  4. Для каждой строки в файле считываются значения элементов массива a[i,j].
  5. Закрывается файл f.
  6. Выводится строка A =.
  7. Для каждой строки в массиве a выводятся значения элементов с пробелами между ними.
  8. Запускается цикл, который перемещает строки и столбцы в матрице a. Цикл выполняется n-1 раз (где n - значение переменной n).
  9. Внутри цикла сравниваются элементы матрицы a[i,j] и a[k,j]. Если a[i,j] меньше a[k,j], то значения i и j обновляются, чтобы указывать на текущую максимальную строку и столбец.
  10. Если k не равно mi, то выполняется еще один цикл, который перемещает строки в матрице a.
  11. Если k не равно mj, то выполняется еще один цикл, который перемещает столбцы в матрице a.
  12. Выводится строка A'' =.
  13. Для каждой строки в массиве a выводятся значения элементов с пробелами между ними.
  14. Выводится значение переменной n.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.167 из 5
Похожие ответы