Определить, является ли данная целочисленная квадратная матрица ортонормированной - PascalABC.NET
Формулировка задачи:
Определить, является ли данная целочисленная квадратная матрица ортонормированной, то есть такой, в которой скалярное произведение каждой пары различных строк равно нулю, а скалярное произведение каждой строки на себя равно единице.
Разбить задачу на подзадачи таким образом, чтобы решение каждой подзадачи описывалось подпрограммой, а основная программа состояла бы из последовательности вызовов подпрограмм. Размеры матриц задать константами.
Вот прога без подпрограмм
Решение задачи: «Определить, является ли данная целочисленная квадратная матрица ортонормированной»
textual
Листинг программы
const n=2; var skal:integer; o:boolean; mas:array [1..n,1..n] of integer; procedure vvod; var i,j:integer; begin writeln('Введите ',n*n,' элементов матрицы:'); for i:=1 to n do for j:=1 to n do readln(mas[i,j]); end; procedure vis; var i,j:integer; begin writeln('Исходная матрица:'); for i:=1 to n do begin for j:=1 to n do write(mas[i,j]:4); writeln; end; end; function alg:integer; var i,j,k:integer; begin o:=true; i:=1; repeat j:=1; repeat skal:=0; for k:=1 to n do skal:=skal+mas[i,k]*mas[j,k]; if ((i=j) and (skal<>1)) or ((i<>j) and (skal<>0)) then o:=false; j:=j+1; until not(o) or (j=n+1); i:=i+1 until not (o) or (i=n+1); end; procedure viv; begin if o then writeln ('Ортонормированна') else writeln ('Не ортонормированна'); end; begin vvod; vis; alg; viv; end.
Объяснение кода листинга программы
Список действий в коде:
- Ввод данных о матрице (размерность и сами значения)
- Вывод исходной матрицы
- Проверка ортонормированности матрицы с помощью алгоритма, основанного на свойстве ортонормированности (используется внутреннее представление матрицы)
- Вывод результата проверки
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д