Вычислить сумму элементов матрицы, расположенных над главной диагональю - Pascal (80942)
Формулировка задачи:
Вычислить сумму элементов матрицы, расположенных над главной диагональю. Размер матрицы вводится с клавиатуры. Элементы матрицы размещаются в памяти динамически.
Решение задачи: «Вычислить сумму элементов матрицы, расположенных над главной диагональю»
textual
Листинг программы
program Project1; const MaxI = 20; //Наибольший индекс. type TArr = array[1..MaxI, 1..MaxI] of Integer; var PArr : ^TArr; i, j, Sum, M : Integer; S : String; begin repeat Write('Задайте размер массива: '); Readln(M); if not (M in [1..MaxI]) then begin Writeln('Размер массива задан неверно. Действие отменено.'); Writeln('Повторить - Enter. Выход - любой символ + Enter.'); Readln(S); Continue; end; //Выделение памяти для массива. GetMem(PArr, M * M * SizeOf(Integer)); //Заполние массива случайными числами и распечатка. Writeln('Исходный массив:'); Randomize; for i := 1 to M do begin for j := 1 to M do begin PArr^[i, j] := Random(10); //0..9. if j > 1 then Write(', '); Write(PArr^[i, j]); end; Writeln; end; //Решение задачи. Для элементов, расположенных над главной диагональю, //выполняется условие: i < j. Sum := 0; for i := 1 to M do for j := i + 1 to M do Sum := Sum + PArr^[i, j]; //Освобождаем память, взятую для массива. FreeMem(PArr); //Ответ. Writeln('Сумма элементов, расположенных над главной диагональю: ', Sum); Writeln('Повторить - Enter. Выход - любой символ + Enter.'); Readln(S); until S <> ''; end.
Объяснение кода листинга программы
- Задаем максимальный индекс (MaxI) и тип данных (TArr), который представляет собой двумерный массив целых чисел.
- Объявляем переменные: PArr (указатель на массив), i, j, Sum (переменная для хранения суммы), M (переменная для хранения размера массива) и S (строка для ввода с клавиатуры).
- В цикле повторяем, пока не будет введен корректный размер массива. Если размер задан неверно, выводим сообщение об ошибке и прерываем выполнение программы.
- Выделяем память под массив с помощью функции GetMem.
- Заполняем массив случайными числами и выводим его на экран.
- Формируем условие для суммы элементов, расположенных над главной диагональю: i < j.
- Складываем элементы массива, удовлетворяющие условию, и сохраняем результат в переменной Sum.
- Освобождаем память, выделенную под массив.
- Выводим на экран сумму элементов, расположенных над главной диагональю.
- Повторяем цикл до тех пор, пока пользователь не решит завершить программу или не введет некорректный символ для выхода из цикла.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д