Скачиваний:
2
Добавлен:
01.05.2014
Размер:
4.73 Кб
Скачать
unit UMain_F;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, UMatr, Gauges, Menus;

type
TMain_F = class(TForm)
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Razm_M: TBitBtn;
GroupBox1: TGroupBox;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
BitBtn1: TBitBtn;
GroupBox2: TGroupBox;
Label6: TLabel;
Edit5: TEdit;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
Gauge1: TGauge;
MainMenu1: TMainMenu;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
//N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure Razm_MClick(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);

private
{ Private declarations }
n:Longint;
A,B,C: matr;
public
{ Public declarations }
end;

var
Main_F: TMain_F;

implementation

uses UShow, Uprog, UHelp;

{$R *.dfm}

procedure TMain_F.FormCreate(Sender: TObject);
begin
Edit2.Text:='';
Edit3.Text:='';
Edit4.Text:='';
Edit5.Text:='';
Caption:='Разреженные матрицы';
N:=0;
end;

procedure TMain_F.Razm_MClick(Sender: TObject);
begin
try
n:=StrToInt(Edit1.Text);
if (n<1) Or (n>Max) then
begin
MessageDlg('Вы ввели некорректную размерность!',mtError,[mbOK],0);
exit;
end;
UMatr.Null(A,n);
Edit1.Enabled:=False;
//Razm_M.Enabled:=false;
BitBtn1.Enabled:=true;
BitBtn2.Enabled:=true;
except
MessageDlg('Вы ввели некорректную размерность!',mtError,[mbOK],0);
End;
end;

procedure TMain_F.BitBtn1Click(Sender: TObject);

var i,j: ind_M;
el: type_el;
begin
try
i:=StrToInt(Edit2.Text);
j:=StrToInt(Edit3.Text);
el:=StrToInt(Edit4.Text);
if ((i<1) or (i>n)) or
((j<1) or (j>n))
or (el=0) then
begin
MessageDlg('Некорректный ввод данных!',mtError,[mbOK],0);
exit;
end;
Input(n,i,j,el,A);
except
MessageDlg('Некорректный ввод данных!',mtError,[mbOK],0);
end;
end;

procedure TMain_F.BitBtn3Click(Sender: TObject);
begin
if n=0 then
begin
MessageDlg('Матрица не создана!',mtError,[mbOK],0);
exit;
end;
Show_F.Load(A, N);
Show_F.ShowModal;

end;

procedure TMain_F.BitBtn2Click(Sender: TObject);
var deg, k, i, j:longint;
Rez : type_el;
begin
Try
deg:=StrToInt(edit5.Text);
Except
MessageDlg('Некорректный ввод степени!',mtError,[mbOK],0);
Exit;
End;
if deg<1 then
begin
MessageDlg('Некорректный ввод степени!',mtError,[mbOK],0);
Exit;
End;

Gauge1.Progress := 0;

if deg=1 then
begin
Gauge1.Progress := 100;
C := A;
end
else
begin
j:=0;
Gauge1.Progress := Trunc((1 / Deg) * 100);
CopyMatr(A,B,n);
Null(C,n);
For k:=2 to deg do
begin
Gauge1.Progress := Trunc((K / Deg) * 100);
DelMatr(C,n);
For i:=0 to n-1 do
begin
For j:=0 to n-1 do
begin
Proizv (B,A,i,j,rez);
if rez<>0 then
Input(n,i+1,j+1,rez,C);
end;{for}
j:=0;
end; {for}
DelMatr(B,n);
CopyMatr(C,B,n);
end; {for}

End;
Show_F.Load(C,N);
Show_F.ShowModal;
end;

procedure TMain_F.N2Click(Sender: TObject);
begin
Form1.ShowModal;
end;

procedure TMain_F.N3Click(Sender: TObject);
begin
Help_F.ShowModal;
end;

procedure TMain_F.N4Click(Sender: TObject);
begin
BitBtn4Click(Self);
end;

procedure TMain_F.BitBtn4Click(Sender: TObject);
begin
If MessageDlg('Вы уверены, что хотите завершить работу программы?', mtConfirmation,[mbYes ,mbNo],0)= mrYes then
begin
UMatr.DelMatr(A,n);
Umatr.DelMatr(B,n);
UMatr.DelMatr(C,n);
Main_F.Close;
end;
end;

procedure TMain_F.BitBtn5Click(Sender: TObject);
var f_in:textfile;
i,j:Ind_M;
el:type_el;
begin
Razm_M.Enabled:=false;
Edit1.Enabled:=false;
BitBtn1.Enabled:=true;
assignfile (f_in,'a:\f.txt');
reset (f_in);
read(f_in,n);
Null(A,n);
while not eof(f_in)do
begin
read(f_in,i,j,el);
readln(f_in);
Input(n,i,j,el,A);
end;
end;


end.
Соседние файлы в папке Возведение матрицы в степень
  • #
    01.05.20142.66 Кб2UHelp.dfm
  • #
    01.05.2014342 б2UHelp.pas
  • #
    01.05.20149.17 Кб3UMain_F.dcu
  • #
    01.05.201451 б2UMain_F.ddp
  • #
    01.05.201411.52 Кб2UMain_F.dfm
  • #
    01.05.20144.73 Кб2UMain_F.pas
  • #
    01.05.20142.42 Кб3UMatr.dcu
  • #
    01.05.20143.53 Кб2UMatr.pas
  • #
    01.05.20143.23 Кб2Uprog.dcu
  • #
    01.05.201451 б2Uprog.ddp
  • #
    01.05.20141.5 Кб2Uprog.dfm