Professional Documents
Culture Documents
ФЕІ-11 Вовк Андрій лабораторна робота №6
ФЕІ-11 Вовк Андрій лабораторна робота №6
Лабораторна робота №6
з курсу «Алгоритмізація та програмування»
«Розв’язування систем лінійних алгебричних рівнянь»
Виконав:
Ст. ФЕІ-11
Вовк Андрій
Перевірив:
Хвищун Іван Олександрович
Львів 2022
Звіт
Мета: Створити інтерфейс проекту згідно з методикою, яку описано вище;
написати процедуру методу Крамера, у якій обчислення значення кожного з
визначників здійснюється функцією, яку необхідно написати окремо;
під’єднати процедуру до проекту; протестувати роботу програми на системах
рівнянь порядку (3*3)
Текст програми
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils,
System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Grids, Vcl.StdCtrls;
type
Matr = Array[1..5,1..5] of Real;
Vec = Array[1..5] of Real;
TForm6 = class(TForm)
StringGrid2: TStringGrid;
StringGrid3: TStringGrid;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Button1: TButton;
Label4: TLabel;
Button2: TButton;
Button3: TButton;
StringGrid1: TStringGrid;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form6: TForm6;
implementation
{$R *.dfm}
if vuz=0 then
begin
showmessage('Метод Крамера не передбачений для
виродженої матриці');
end;
for i := 1 to 3 do
begin
a1:=a[1,i];
a2:=a[2,i];
a3:=a[3,i];
a[1,i]:=b[1];
a[2,i]:=b[2];
a[3,i]:=b[3];
if i=1 then
begin
vuzx:=det(a);
vx:=vuzx/vuz;
end;
if i=2 then
begin
vuzy:=det(a);
vy:=vuzy/vuz;
end;
if i=3 then
begin
vuzz:=det(a);
vz:=vuzz/vuz;
end;
a[1,i]:=a1;
a[2,i]:=a2;
a[3,i]:=a3;
End;
end;
begin
N := StrToInt(Edit1.Text);
For i:=1 to N do
For j:=1 to N do
Begin
a[i,j] := StrToFloat(StringGrid1.Cells[j - 1,i - 1]);
b[j] := StrToFloat(StringGrid2.Cells[0,j - 1]);
End;
kramer(vzn,vx,vy,vz,a,b,x);
StringGrid3.Cells[0,0]:=FloatToStr(vx);
StringGrid3.Cells[0,1]:=FloatToStr(vy);
StringGrid3.Cells[0,2]:=FloatToStr(vz);
end;
end;
end.
Тестування