Прибавить к k-ой строке матрицы А ее l-ю строку, умноженную на заданное число - Turbo Pascal
Формулировка задачи:
а) Прибавить к k-ой строке матрицы А ее l-ю строку, умноженную на заданное число;
б) сформировать вектор V, элементами которого являются суммы элементов строк полученной
матрицы;
в) упорядочить элементы V в порядке убывания.
Решение задачи: «Прибавить к k-ой строке матрицы А ее l-ю строку, умноженную на заданное число»
textual
Листинг программы
const mn=100; var a: array [1..mn,1..mn] of Real; v: array [1..mn] of Real; c: Real; i, j, k, l, n: Integer; begin Randomize; repeat Write('N [2..',mn,']: '); Read(n); until n in [2..100]; WriteLn('Матрица ',n,'x',n,':'); for i:=1 to n do begin for j:=1 to n do begin a[i,j]:=Random*100; Write(' ',a[i,j]:7:1); end; WriteLn; end; repeat Write('k, l [1..',n,'], c: '); ReadLn(k,l,c); until (k in [1..n]) and (l in [1..n]); for j:=1 to n do a[k,j]:=a[k,j]+a[l,j]*c; WriteLn('Результат:'); for i:=1 to n do begin for j:=1 to n do Write(' ',a[i,j]:7:1); WriteLn; end; for i:=1 to n do for j:=1 to n do v[i]:=v[i]+a[i,j]; WriteLn('V ='); for i:=1 to n do Write(' ',v[i]:7:1); WriteLn; for i:=2 to n do for j:=i downto 2 do if v[i-1]<v[i] then begin c:=v[i-1]; v[i-1]:=v[i]; v[i]:=c; end; WriteLn('V''='); for i:=1 to n do Write(' ',v[i]:7:1); WriteLn; end.
Объяснение кода листинга программы
- Создается константа mn, которая равна 100.
- Создается переменная a, которая является матрицей размером от 1 до mn на 1 до mn. Значения ячеек матрицы устанавливаются случайным образом.
- Создается переменная v, которая является вектором размером от 1 до mn. Значения ячеек вектора устанавливаются суммой соответствующих ячеек матрицы.
- Создается переменная c, которая является числом для умножения строки матрицы на.
- Создаются переменные i, j, k, l и n, которые являются интерактивными переменными для ввода данных пользователем.
- В цикле while считывается число n от пользователя.
- Выводится сообщение
Матрица nxn:
, где n — введенное пользователем число. - Для каждой строки матрицы a выполняется цикл while, который считывает число k от пользователя.
- Выводится сообщение
k, l [1..n], c:
, где n — введенное пользователем число, а c — число для умножения строки матрицы на. - Считывается число l от пользователя.
- Выполняется операция a[k,j]:=a[k,j]+a[l,j]*c, где j — индекс строки матрицы, которую нужно прибавить к k-ой строке.
- Выводится сообщение
Результат:
, после чего выводится каждая ячейка матрицы a. - Для каждой строки матрицы a выполняется цикл while, который считывает индекс j от пользователя.
- Выполняется операция v[i]:=v[i]+a[i,j], где i — индекс строки матрицы, которую нужно прибавить к v.
- Выводится сообщение
V =
, после чего выводится каждая ячейка вектора v. - Для каждой строки вектора v выполняется цикл while, который считывает индекс i от пользователя.
- Если значение в ячейке v[i-1] меньше значения в ячейке v[i], то выполняется операция c:=v[i-1], v[i-1]:=v[i], v[i]:=c, где i — индекс строки вектора v.
- Выводится сообщение
V'=
, после чего выводится каждая ячейка вектора v.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д