Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Визначник твори прямокутних матриць. Теорема Коші-Біне

Реферат Визначник твори прямокутних матриць. Теорема Коші-Біне





>

implementation

uses InRazmUnit, InMassUnit;

{$ R *. dfm}

function TMainForm.VS_Det (InMass: TVS_MassData): Real;

var

Temp, A: TVS_MassData;

Cols, Rows, Count: Word;

i, j, k: Integer;

begin

Result: = 1;// Результат функції за замовчуванням

If InMass.N <> InMass.M Then Exit;// якщо матриця не квадратна - йдемо, бо рішення методом діагоналі

Count: = InMass.M;// Отримали розмірність вихідного масиву

SetLength (A.Mass, Count, Count) ;//Встановили размер матриці

SetLength (Temp.Mass, 1, Count);// Встановили розмір мартицей

AssignMass (InMass, A);// Під тимчасовий масив заносимо дані з вихідного, щоб не псувати вихідний масив

// Пошук і рішення

for i: = 0 to Count - 2 do {Початок перетворення до верхньому трикутного вигляду}

begin

for j: = i to Count - 1 do {* Пошук}

begin {* нульових}

Rows: = 0; {* рядків}

Cols: = 0; {* і}

for k: = i to Count - 1 do {* стовпців}

begin {* в}

Rows: = Rows + Ord (A.Mass [j, k] = 0); {* матриці}

Cols: = Cols + Ord (A.Mass [k, j] = 0); {*}

end; {for k: = i to Count - 1 do} {*}

if Rows + Cols = 0 then {*}

Break; {*}

if (Cols = Count - i) or (Rows = Count - i) then {*}

begin {*}

Result: = 0; {*}

Exit {*}

end {if (Cols = Count - i) or (Rows = Count - i) then}

end; {for j: = i to Count - 1 do} {*}

if A.Mass [i, i] = 0 then

for j: = i + 1 to Count - 1 do

if A.Mass [j, i] <> 0 then

begin

Result: =-Result; {* Міняємо рядок}

Temp.Mass [0]: = A.Mass [i]; {* на рядок з}

A.Mass [i]: = A.Mass [j]; {* першим}

A.Mass [j]: = Temp.Mass [0]; {* ненульовим}

Break {* елементом}

end;

for j: = i + 1 to Count - 1 do

if A.Mass [j, i] <> 0 then p> begin

for k: = i + 1 to Count - 1 do

A.Mass [j, k]: = A.Mass [j, k] - A.Mass [i, k] * A.Mass [j, i]/A.Mass [i, i];

A.Mass [j, i]: = 0

end

end; {Кінець перетворення}

for i: = 0 to Count - 1 do {Визначник як твір}

Result: = Result * A.Mass [i, i]; {елементів на головної діагоналі}

end;

procedure TMainForm.InputMassAClick (Sender: TObject);

begin

If InRazmForm = Nil Then Application.CreateForm (TInRazmForm, InRazmForm);

With InRazmForm do

Begin

Caption: = 'Введення розмірності ряду А';

Hint: = Caption;//

ShowHint: = True;// Дозволяємо швидкі підказки

lbPrompt1.Caption : = 'Розмірність N';

// Налагодження еелементов введення для розмірності масиву по рядкам - М

sedtRazmA.MinValue: = 1;// Встановили мінімальну знаеченіе для введення-перемикача

sedtRazmA.MaxValue: = MaxN;// Встановили максимальне значення дл...


Назад | сторінка 10 з 20 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Mass migration in Australia
  • Реферат на тему: The peculiarities of news reports in English mass media texts
  • Реферат на тему: A critical evaluation of infrared analysis and mass spectrometry in forensi ...
  • Реферат на тему: A Critical evaluation of infrared analysis and mass spectrometry in forensi ...
  • Реферат на тему: The transformation of spectacular forms in mass culture. The problem of ge ...