Вычислить сумму элементов матрицы, расположенных над главной диагональю - 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.

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

  1. Задаем максимальный индекс (MaxI) и тип данных (TArr), который представляет собой двумерный массив целых чисел.
  2. Объявляем переменные: PArr (указатель на массив), i, j, Sum (переменная для хранения суммы), M (переменная для хранения размера массива) и S (строка для ввода с клавиатуры).
  3. В цикле повторяем, пока не будет введен корректный размер массива. Если размер задан неверно, выводим сообщение об ошибке и прерываем выполнение программы.
  4. Выделяем память под массив с помощью функции GetMem.
  5. Заполняем массив случайными числами и выводим его на экран.
  6. Формируем условие для суммы элементов, расположенных над главной диагональю: i < j.
  7. Складываем элементы массива, удовлетворяющие условию, и сохраняем результат в переменной Sum.
  8. Освобождаем память, выделенную под массив.
  9. Выводим на экран сумму элементов, расположенных над главной диагональю.
  10. Повторяем цикл до тех пор, пока пользователь не решит завершить программу или не введет некорректный символ для выхода из цикла.

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


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

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

14   голосов , оценка 3.786 из 5
Похожие ответы