Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.04.11;
Скачать: [xml.tar.bz2];

Вниз

Алгоритм!!!!   Найти похожие ветки 

 
XOY   (2002-03-31 15:32) [1]

Вот исходник на пасе для расчета опредилителя 4-ого порядка.
Как работает толком не помню (давно уже этим не занимался). Суть
в том что Det любой матрици можно найти через Det матр. на порядок меньше. Таким образом все сводится к расчету множества Det 3-го порядка по правилу триугольника.

Uses crt;

Type
Matrix = array[1..3,1..3] of integer;

var
M: array[1..4,1..4] of integer;
i1,i2: byte;
Opr: integer;
M1,M2,M3,M4: Matrix;

label
L1;


Function GetOpredelitel(var Ma: Matrix): integer;
var
OprPl,OprMin: integer;
begin
OprPl:= Ma[1,1]*Ma[2,2]*Ma[3,3] + Ma[1,2]*Ma[2,3]*Ma[3,1] + Ma[1,3]*Ma[2,1]*Ma[3,2];
OprMin:= Ma[1,1]*Ma[2,3]*Ma[3,2] + Ma[1,2]*Ma[2,1]*Ma[3,3] + Ma[1,3]*Ma[2,2]*Ma[3,1];
GetOpredelitel:= OprPl - OprMin;
end;


begin
L1:
clrscr;
gotoxy(15,2); Write("ђ бзҐв ®ЇаҐ¤Ґ«ЁвҐ«п 4Ј® Ї®ап¤Є ");
gotoxy(2,4); Write("‚ўҐ¤ЁвҐ Є®ЁддЁжЁҐ­вл:");
for i1:= 1 to 4 do begin
for i2:= 1 to 4 do begin
gotoxy(10+i1*8,6+i2*3);
readln(M[i1,i2]);
end;
end;

M1[1,1]:= M[2,2];
M1[1,2]:= M[2,3];
M1[1,3]:= M[2,4];
M1[2,1]:= M[3,2];
M1[2,2]:= M[3,3];
M1[2,3]:= M[3,4];
M1[3,1]:= M[4,2];
M1[3,2]:= M[4,3];
M1[3,3]:= M[4,4];

M2[1,1]:= M[2,1];
M2[1,2]:= M[2,3];
M2[1,3]:= M[2,4];
M2[2,1]:= M[3,1];
M2[2,2]:= M[3,3];
M2[2,3]:= M[3,4];
M2[3,1]:= M[4,1];
M2[3,2]:= M[4,3];
M2[3,3]:= M[4,4];

M3[1,1]:= M[2,1];
M3[1,2]:= M[2,2];
M3[1,3]:= M[2,4];
M3[2,1]:= M[3,1];
M3[2,2]:= M[3,2];
M3[2,3]:= M[3,4];
M3[3,1]:= M[4,1];
M3[3,2]:= M[4,2];
M3[3,3]:= M[4,4];

M4[1,1]:= M[2,1];
M4[1,2]:= M[2,2];
M4[1,3]:= M[2,3];
M4[2,1]:= M[3,1];
M4[2,2]:= M[3,2];
M4[2,3]:= M[3,3];
M4[3,1]:= M[4,1];
M4[3,2]:= M[4,2];
M4[3,3]:= M[4,3];

Opr:= M[1,1]*GetOpredelitel(M1) - M[1,2]*GetOpredelitel(M2) + M[1,3]*GetOpredelitel(M3) - M[1,4]*GetOpredelitel(M4);

gotoxy(2,23);
Write("ЋЇаҐ¤Ґ«ЁвҐ«м а ўҐ­: ",Opr," ");
Write("Џа®¤®«¦Ёвм?");
repeat
until keypressed = true;
i1:= ord(readkey);
if i1 = 13 then goto L1;
end.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.04.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.006 c
1-32838
VCL
2002-03-28 16:26
2002.04.11
Меню выбора методов и свойств как в Delphi.


1-32876
RUS1
2002-03-29 12:46
2002.04.11
Работа с битами и байтами


1-32801
B_A_V
2002-04-01 10:05
2002.04.11
Строка кода больше 255 символов, как быть?


3-32666
Alexsys
2002-03-16 06:55
2002.04.11
Описание отчета в текстовом файле??? Выручайте... ПЛИЗ!


4-33030
MJH
2002-02-04 11:29
2002.04.11
COMBOBOX





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский