Найти наибольший элемент среди стоящих на главной и побочной диагоналях - Turbo Pascal (33745)

Узнай цену своей работы

Формулировка задачи:

Дана действительная квадратная матрица порядка n, все элементы которой различны. Найти наибольший элемент среди стоящих на главной и побочной диагоналях и поменять его местами с элементом, стоящим на пересечении этих диагоналей.

Решение задачи: «Найти наибольший элемент среди стоящих на главной и побочной диагоналях»

textual
Листинг программы
// Г*Г*õîäèì Г*îìåðГ* Г¬Г*êñèìóìГ* äèГ*ГЈГ®Г*Г*ëåé
imax:=1; jmax:=1; // Г*îìåðГ* Г¬Г*êñèìóìГ*
for i:=1 to n do
begin
  if a[i,i]>a[imax,jmax] then
  begin
    imax:=i;
    jmax:=j;
  end;
  if a[i,n-i+1]>a[imax,jmax] then
  begin
    imax:=i;
    jmax:=j;
  end;
end;
 
// Г§Г*ìåГ*Г* (tmp - âðåìåГ*Г*Г*Гї ïåðåìåГ*Г*Г*Гї)
// Г°Г*çìåð Г¬Г*òðèöû - Г*ГҐГ·ГҐГІГ*îå ÷èñëî
tmp:=a[n div 2+1,n div 2+1];
a[n div 2+1,n div 2+1]:=a[imax,jmax];
a[imax,jmax]:=tmp;

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

  1. Переменные imax и jmax инициализируются значением 1.
  2. В цикле for происходит сравнение элементов массива a с элементами imax и jmax.
  3. Если текущий элемент a[i,i] больше a[imax,jmax], то imax и jmax обновляются на значение i.
  4. Если текущий элемент a[i,n-i+1] больше a[imax,jmax], то imax и jmax обновляются на значение i.
  5. После завершения цикла, в переменной tmp хранится максимальное значение из диагоналей массива a.
  6. Значение tmp присваивается элементу a[n div 2+1,n div 2+1].
  7. Элементы a[n div 2+1,n div 2+1] и a[imax,jmax] меняются местами, при этом значение tmp присваивается элементу a[imax,jmax].
  8. Значение tmp присваивается элементу a[imax,jmax].

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

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