Процедура не работает, ошибок не выдает, а в результате пишет всегда 0 - PascalABC.NET

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

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

Процедура не работает, ошибок не выдает, а в результате пишет всегда 0. Что не так. Помогите, пожалуйста!
Листинг программы
  1. type matr=array [1..10,1..10] of integer;
  2. var A:matr;
  3. i,j,n:integer;
  4. S:real;
  5. procedure SGD(x:matr; var z:real);
  6. var i, n: integer; Sum:real;
  7. begin
  8. Sum:=0;
  9. for i:=1 to n do
  10. Sum:=Sum+A[i,i];
  11. Writeln (Sum)
  12. end;
  13. begin
  14. write ('введите количество строк/столбцов квадратной матрицы - ');
  15. read (n);
  16. randomize;
  17. for i:=1 to N do
  18. for j:=1 to N do A[i,j]:= random(100);
  19. for i:=1 to n do begin
  20. for j:=1 to n do write (' ',A[i,j], ' ');
  21. writeln
  22. end;
  23. writeln;
  24. SGD(A, S)
  25. end.

Решение задачи: «Процедура не работает, ошибок не выдает, а в результате пишет всегда 0»

textual
Листинг программы
  1. type
  2.   matr=array [1..10,1..10] of integer;
  3. var
  4.   A:matr;
  5.   i,j,n:integer;
  6.   S:real;
  7.  
  8. procedure SGD(x:matr; var sum:real);
  9. var
  10.   i: integer;
  11. begin
  12.   Sum:=0;
  13.   for i:=1 to n do
  14.     Sum:=Sum+x[i,i];
  15. end;
  16.  
  17. begin
  18.   write ('Введите количество строк/столбцов квадратной матрицы - ');
  19.   readln (n);
  20.   randomize;
  21.   for i:=1 to N do
  22.     for j:=1 to N do
  23.       A[i,j]:= random(100);
  24.  
  25.   for i:=1 to n do
  26.     begin
  27.       for j:=1 to n do
  28.         write ('  ',A[i,j]:5);
  29.       writeln;
  30.     end;
  31.   writeln;
  32.   SGD(A, S);
  33.   writeln('Cумма: ',s:8:3);
  34.   readln;
  35. end.

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

  1. Объявление переменных:
    • A - двумерный массив (матрица) целых чисел размером 10x10;
    • i, j - индексы для обхода матрицы;
    • n - количество строк/столбцов квадратной матрицы;
    • S - сумма.
  2. Объявление процедуры SGD:
    • Принимает двумерный массив x и ссылку на переменную sum в качестве параметров;
    • Вычисляет сумму элементов главной диагонали матрицы x и сохраняет результат в переменной sum.
  3. Главный цикл программы:
    • Запрос на ввод количества строк/столбцов квадратной матрицы;
    • Инициализация генератора случайных чисел;
    • Заполнение матрицы A случайными целыми числами от 0 до 99;
    • Вывод содержимого матрицы A на экран;
    • Вызов процедуры SGD для вычисления суммы главной диагонали матрицы A;
    • Вывод значения переменной S на экран;
    • Ожидание нажатия клавиши для завершения программы.
  4. В процедуре SGD:
    • Инициализация переменной Sum значением 0;
    • Обход главной диагонали матрицы x и суммирование ее элементов;
    • Возврат полученного значения суммы.

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


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

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

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

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

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

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