Выполнить заданные операции над матрицей - 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.
Объяснение кода листинга программы
- Создание переменных:
ar
- двумерный массив размером 6x5 для хранения элементов матрицыi
,j
,pos
,x
,y
,n
,m
- целочисленные переменныеsum
- переменная для хранения суммы элементов
- Ввод элементов матрицы и вывод матрицы
C
:- Инициализация переменной
n
со значением 5 - Инициализация переменной
m
со значениемn
- Последовательный ввод элементов матрицы в массив
ar
- Вывод матрицы
C
в консоль
- Инициализация переменной
- Вычисление суммы и количества положительных элементов на главной диагонали:
- Инициализация переменных
sum
иpos
со значениями 0 - Поиск положительных элементов на главной диагонали, подсчет их количества и суммирование
- Вывод количества положительных элементов и суммы элементов на главной диагонали
- Инициализация переменных
- Добавление дополнительной строки и вывод обновленной матрицы
C1
:- Ввод 5 элементов для дополнительной строки и добавление её к матрице
- Вывод обновленной матрицы
C1
в консоль
- Поиск и вывод элемента матрицы по заданным индексам:
- Ввод индексов x и y и проверка их корректности
- Вывод найденного элемента матрицы
C[x][y]
или сообщение о неверных индексах.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д