Выполнить заданные операции над матрицей - Pascal

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

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

Дана матрица С(5х5) положительных и отрицательных элементов 1) Ввести элементы матрицы и вывести на экран дисплея. 2) Вывести на экран дисплея элементы главной диагонали (i=j), определить их сумму и число положительных элементов главной диагонали. 3) Включить в матрицу дополнительную строку с заданным номером K (K=6), вывести на экран новую матрицу С1. 4) Реализовать поиск элемента по его индексам и вывод его на экран. Начало у меня было положено, сделал первый и половину второго пункта:
program massiv;
const m=5;
      n=5;
      k=6;
var c:array[1..m,1..n] of integer;
var c1:array[1..m,1..k] of integer;
i,j,sum,pol:integer;
begin
for i:=1 to m do
for j:=1 to n do read (c[i,j]);
writeln('Матрица C');
for i:=1 to m do
begin
for j:=1 to n do write (c[i,j],' ');
writeln();
end;
writeln('Элементы главной диагонали');
for i:=1 to m do
begin
for j:=1 to n do if i=j then write (c[i,j],' ');
end;
end.

Решение задачи: «Выполнить заданные операции над матрицей»

textual
Листинг программы
var
    ar: Array[1..6, 1..5] Of Integer;
    i, j, pos, x, y, n, m: Byte;
    sum: LongInt;
begin
    {1}
    n := 5;
    m := n;
    for i := 1 to n do
        for j := 1 to m do
            ReadLn(ar[i, j]);
    WriteLn('Матрица C:');
    for i := 1 to n do
    begin
        for j := 1 to m do
            Write(ar[i, j]:7);
        WriteLn;
    end;
    {2}
    sum := 0;
    pos := 0;
    Write('Элементы главной диагонали:');
    for i := 1 to m do
    begin
        Write(ar[i, i]:7);
        if (ar[i, i] > 0)
        then
            Inc(pos);
        Inc(sum, ar[i, i]);
    end;
    WriteLn;
    WriteLn('Положительных на главной диагонали: ', pos);
    WriteLn('Сумма элементов главной диагонали: ', sum);
    {3}
    WriteLn('Введите 5 элементов дополнительной строки:');
    Inc(n);
    for j := 1 to m do
        ReadLn(ar[n, j]);
    WriteLn('Матрица С1:');
    for i := 1 to n do
    begin
        for j := 1 to m do
            Write(ar[i, j]:7);
        WriteLn;
    end;
    {4}
    WriteLn('Введите индексы искомого элемента матрицы: ');
    ReadLn(x, y);
    if ((x in [1..n]) And (y in [1..m]))
    then
        WriteLn('C[', x, '][', y, ']=', ar[x, y])
    else
        WriteLn('Индексы заданы неверно!');
end.

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

  1. Создание переменных:
    • ar - двумерный массив размером 6x5 для хранения элементов матрицы
    • i, j, pos, x, y, n, m - целочисленные переменные
    • sum - переменная для хранения суммы элементов
  2. Ввод элементов матрицы и вывод матрицы C:
    • Инициализация переменной n со значением 5
    • Инициализация переменной m со значением n
    • Последовательный ввод элементов матрицы в массив ar
    • Вывод матрицы C в консоль
  3. Вычисление суммы и количества положительных элементов на главной диагонали:
    • Инициализация переменных sum и pos со значениями 0
    • Поиск положительных элементов на главной диагонали, подсчет их количества и суммирование
    • Вывод количества положительных элементов и суммы элементов на главной диагонали
  4. Добавление дополнительной строки и вывод обновленной матрицы C1:
    • Ввод 5 элементов для дополнительной строки и добавление её к матрице
    • Вывод обновленной матрицы C1 в консоль
  5. Поиск и вывод элемента матрицы по заданным индексам:
    • Ввод индексов x и y и проверка их корректности
    • Вывод найденного элемента матрицы C[x][y] или сообщение о неверных индексах.

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

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