Изменить все строки матрицы, в которых отрицателен элемент главной диагонали - Pascal ABC
Формулировка задачи:
Изменить все строки матрицы, в которых отрицателен элемент главной диагонали: к каждому элементу i-й строки прибавляется элемент Тi из заданного массива T1 T2 Tn. Подсчитать число измененных строк матрицы.
Решение задачи: «Изменить все строки матрицы, в которых отрицателен элемент главной диагонали»
textual
Листинг программы
uses crt; const n=7; type mas=array[1..n,1..n] of integer; type mas1=array[1..n] of integer; var a:mas; T:mas1; i,j, k:integer; begin randomize; writeln('Исходная матрица:'); for i:=1 to n do begin for j:=1 to n do begin a[i,j]:=15-random(24); write(a[i,j]:3); end; writeln; end; writeln('Масив T:'); for i:=1 to n do begin T[i]:=random(20); write(T[i]:3); end; writeln; k:=0; for i:=1 to n do begin if a[i,i]<0 then begin k:=k+1; for j:=1 to n do a[i,j]:=a[i,j]+T[j]; end; end; writeln('Измененная матрица:'); for i:=1 to n do begin for j:=1 to n do write(a[i,j]:3); writeln; end; Writeln('Количество измененных строк = ',k); end.
Объяснение кода листинга программы
- В начале кода используется библиотека crt, которая обеспечивает встроенную поддержку функций типа randomize и writeln.
- Переменная n инициализируется значением 7, что определяет размер матрицы.
- Создаются два типа данных: mas и mas1. Первый тип представляет собой матрицу размером n на n, а второй тип представляет собой одномерную матрицу размером n.
- Переменная a инициализируется значением mas. Это означает, что a представляет собой матрицу размером n на n.
- Переменная T инициализируется значением mas1. Это означает, что T представляет собой одномерную матрицу размером n.
- Используется цикл for для итерации по каждому элементу матрицы a.
- Внутри цикла проверяется условие: если элемент a[i,i] (элемент на главной диагонали) отрицателен, то выполняется следующая последовательность действий:
- Увеличивается значение переменной k на 1.
- Для каждого элемента j от 1 до n происходит следующее:
- К элементам a[i,j] и a[i,j] добавляется значение T[j]. Это означает, что элементы a[i,j] увеличиваются на значение T[j].
- Выводится значение переменной k.
- Завершается цикл for.
- Выводится измененная матрица, используя цикл for.
- Выводится количество измененных строк, используя переменную k.