Вычислить сумму элементов матрицы, расположенных над главной диагональю - 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.
- Освобождаем память, выделенную под массив.
- Выводим на экран сумму элементов, расположенных над главной диагональю.
- Повторяем цикл до тех пор, пока пользователь не решит завершить программу или не введет некорректный символ для выхода из цикла.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д