Процедура не работает, ошибок не выдает, а в результате пишет всегда 0 - PascalABC.NET
Формулировка задачи:
Процедура не работает, ошибок не выдает, а в результате пишет всегда 0. Что не так. Помогите, пожалуйста!
Решение задачи: «Процедура не работает, ошибок не выдает, а в результате пишет всегда 0»
textual
Листинг программы
type matr=array [1..10,1..10] of integer; var A:matr; i,j,n:integer; S:real; procedure SGD(x:matr; var sum:real); var i: integer; begin Sum:=0; for i:=1 to n do Sum:=Sum+x[i,i]; end; begin write ('Введите количество строк/столбцов квадратной матрицы - '); readln (n); randomize; for i:=1 to N do for j:=1 to N do A[i,j]:= random(100); for i:=1 to n do begin for j:=1 to n do write (' ',A[i,j]:5); writeln; end; writeln; SGD(A, S); writeln('Cумма: ',s:8:3); readln; end.
Объяснение кода листинга программы
- Объявление переменных:
- A - двумерный массив (матрица) целых чисел размером 10x10;
- i, j - индексы для обхода матрицы;
- n - количество строк/столбцов квадратной матрицы;
- S - сумма.
- Объявление процедуры SGD:
- Принимает двумерный массив x и ссылку на переменную sum в качестве параметров;
- Вычисляет сумму элементов главной диагонали матрицы x и сохраняет результат в переменной sum.
- Главный цикл программы:
- Запрос на ввод количества строк/столбцов квадратной матрицы;
- Инициализация генератора случайных чисел;
- Заполнение матрицы A случайными целыми числами от 0 до 99;
- Вывод содержимого матрицы A на экран;
- Вызов процедуры SGD для вычисления суммы главной диагонали матрицы A;
- Вывод значения переменной S на экран;
- Ожидание нажатия клавиши для завершения программы.
- В процедуре SGD:
- Инициализация переменной Sum значением 0;
- Обход главной диагонали матрицы x и суммирование ее элементов;
- Возврат полученного значения суммы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д