Найти сумму всех элементов матрицы (желательно REAL) и заменить ею все диагональные элементы этой матрицы - PascalABC.NET

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

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

Найти сумму всех элементов матрицы (желательно REAL) и заменить ею все диагональные элементы этой матрицы. Вот, что получилось, но только одна диагональ заменяется, а нужно сразу две. И желательно чтобы матрица была REAL.
Листинг программы
  1. uses
  2. crt;
  3. const
  4. n = 7;
  5. var
  6. a: array [1..n, 1..n] of integer;
  7. s, i, j: integer;
  8. begin
  9. randomize;
  10. for i := 1 to n do
  11. begin
  12. for j := 1 to n do
  13. begin
  14. a[i, j] := random(17) - 4;
  15. write(a[i, j]:4);
  16. end;
  17. writeln;
  18. end;
  19. s := 0;
  20. for i := 1 to n do
  21. for j := 1 to n do
  22. s := s + a[i, j];
  23. writeln(s);
  24. for i := 1 to n do
  25. for j := 1 to n do
  26. if i + j = n + 1 then a[i, j] := s;
  27. for i := 1 to n do
  28. begin
  29. for j := 1 to n do
  30. write(a[i, j]:4);
  31. writeln;
  32. end;
  33. end.
Уже сделал сам, вот только не в REAL, а в INTEGER.
Листинг программы
  1. uses
  2. crt;
  3. const
  4. n = 10;
  5. var
  6. a: array [1..n, 1..n] of integer;
  7. s, i, j: integer;
  8. begin
  9. writeln('Исходная матрица:');
  10. randomize;
  11. for i := 1 to n do
  12. begin
  13. for j := 1 to n do
  14. begin
  15. a[i, j] := random(17) - 4;
  16. write(a[i, j]:4);
  17. end;
  18. writeln;
  19. end;
  20. s := 0;
  21. for i := 1 to n do
  22. for j := 1 to n do
  23. s := s + a[i, j];
  24. writeln('Сумма матрицы: ', s);
  25. writeln('Матрица с заменёнными диагональными элементами:');
  26. for i := 1 to n do
  27. for j := 1 to n do
  28. if (i + j = n + 1) or (i = j) then a[i, j] := s;
  29. for i := 1 to n do
  30. begin
  31. for j := 1 to n do
  32. write(a[i, j]:4);
  33. writeln;
  34. end;
  35. end.

Решение задачи: «Найти сумму всех элементов матрицы (желательно REAL) и заменить ею все диагональные элементы этой матрицы»

textual
Листинг программы
  1. uses
  2.   crt;
  3.  
  4. const
  5.   n = 10;
  6.  
  7. var
  8.   a: array [1..n, 1..n] of real;
  9.   s:real;
  10.   i, j: integer;
  11.  
  12. begin
  13.   writeln('Исходная матрица:');
  14.   randomize;
  15.   for i := 1 to n do
  16.   begin
  17.     for j := 1 to n do
  18.     begin
  19.       a[i, j] := -4+17*random;
  20.       write(a[i, j]:7:2);
  21.     end;
  22.     writeln;
  23.   end;
  24.   s := 0;
  25.   for i := 1 to n do
  26.     for j := 1 to n do
  27.       s := s + a[i, j];
  28.   writeln('Сумма матрицы: ', s:0:2);
  29.   writeln('Матрица с заменёнными диагональными элементами:');
  30.   for i := 1 to n do
  31.     for j := 1 to n do
  32.       if (i + j = n + 1) or (i = j) then a[i, j] := s;
  33.   for i := 1 to n do
  34.   begin
  35.     for j := 1 to n do
  36.       write(a[i, j]:7:2);
  37.     writeln;
  38.   end;
  39. end.

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

В этом коде выполняются следующие действия:

  1. Объявляются переменные: a - массив размером [1..n, 1..n] для хранения элементов матрицы типа real; s - переменная типа real для хранения суммы элементов матрицы; i, j - переменные типа integer для индексации элементов матрицы.
  2. Выводится сообщение об исходной матрице и её элементах.
  3. Заполняются элементы матрицы случайными числами от -4 до 17 с шагом 1.
  4. Суммируются все элементы матрицы и сохраняются в переменной s.
  5. Выводится сообщение о сумме элементов матрицы.
  6. Заменяются диагональные элементы матрицы на значение переменной s.
  7. Выводится сообщение о матрице с заменёнными диагональными элементами и её элементах.

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


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

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

5   голосов , оценка 4.4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы