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

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Buttons, Mask, Sistol;

type
TForm1 = class(TForm)
Panel1: TPanel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
MatrixABox: TGroupBox;
EditA11: TMaskEdit;
EditA12: TMaskEdit;
EditA13: TMaskEdit;
EditA14: TMaskEdit;
EditA15: TMaskEdit;
EditA21: TMaskEdit;
EditA22: TMaskEdit;
EditA23: TMaskEdit;
EditA24: TMaskEdit;
EditA25: TMaskEdit;
EditA31: TMaskEdit;
EditA32: TMaskEdit;
EditA33: TMaskEdit;
EditA34: TMaskEdit;
EditA35: TMaskEdit;
EditA41: TMaskEdit;
EditA42: TMaskEdit;
EditA43: TMaskEdit;
EditA44: TMaskEdit;
EditA45: TMaskEdit;
EditA51: TMaskEdit;
EditA52: TMaskEdit;
EditA53: TMaskEdit;
EditA54: TMaskEdit;
EditA55: TMaskEdit;
VectorXBox: TGroupBox;
EditX1: TMaskEdit;
EditX2: TMaskEdit;
EditX3: TMaskEdit;
EditX4: TMaskEdit;
EditX5: TMaskEdit;
VectorYBox: TGroupBox;
EditY1: TEdit;
EditY2: TEdit;
EditY3: TEdit;
EditY4: TEdit;
EditY5: TEdit;
Label1: TLabel;
Label2: TLabel;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
SD1: TSaveDialog;
OD1: TOpenDialog;
BitBtn6: TBitBtn;
Panel3: TPanel;
Panel4: TPanel;
Panel5: TPanel;
Panel6: TPanel;
Panel7: TPanel;
Label3: TLabel;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
//MatrixA : array[1..MATRIX_SIZE,1..MATRIX_SIZE] of integer;
EditSMatrixA : array[1..MATRIX_SIZE,1..MATRIX_SIZE] of TMaskEdit;
EditSVectorX : array[1..MATRIX_SIZE] of TMaskEdit;
EditSVectorY : array[1..MATRIX_SIZE] of TEdit;
implementation

uses Visual;

{$R *.dfm}

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Close;
end;

procedure TForm1.BitBtn2Click(Sender: TObject);
var i,j,k,l,tmp:integer;
ch: char;
BadData: boolean;
begin
BadData:=false;
for i := 1 to MATRIX_SIZE do begin
//Form2.GridX.Cells[0,i-1] := EditSVectorX[i].Text;
//Form2.GridX.Cells[0,i-1] := EditSVectorX[i].Text;
if EditSVectorX[i].Text <> ' ' then
SistolSystem.VectorX[i] := strtoint(EditSVectorX[i].Text)
else BadData := true;
for j := 1 to MATRIX_SIZE do begin
//Form2.GridA.Cells[j-1,i-1] := EditSMatrixA[i,j].Text;
if EditSMatrixA[i,j].Text <> ' ' then
SistolSystem.MatrixA[i,j] := strtoint(EditSMatrixA[i,j].Text)
else BadData := true;
end;
end;
if BadData then begin
ShowMessage('Матрица или вектор заполнены не полностью!'+#13#10+
'Отображение производится только в символьном режиме.');
Form2.CheckBox1.Enabled := false;
Form2.CheckBox1.Checked := true;
end else Form2.CheckBox1.Enabled := true;
Form2.ShowAXY(Form2.CheckBox1.Checked);
Form2.ShowModal;
end;

procedure TForm1.FormCreate(Sender: TObject);
var i,j,k,l,tmp:integer;
begin
for i := 0 to ComponentCount-1 do begin
if ((Components[i] is TMaskEdit)or(Components[i] is TEdit))and(Components[i].Tag <>0) then begin
tmp := Components[i].Tag;
case tmp div 100 of
0: EditSMatrixA[tmp div 10, tmp mod 10] :=
(Components[i] as TMaskEdit);
1: EditSVectorX[tmp mod 10] :=
(Components[i] as TMaskEdit);
2: EditSVectorY[tmp mod 10] :=
(Components[i] as TEdit);
end;
end
end;
end;

procedure TForm1.BitBtn3Click(Sender: TObject);
var f:file of char;
i,j:integer;
n:byte;
ch: char;
begin
if SD1.Execute then begin
try
AssignFile(f,SD1.FileName);
Rewrite(f);
for i := 1 to MATRIX_SIZE do
for j := 1 to MATRIX_SIZE do begin
if EditSMatrixA[i,j].Text <> '' then
ch := EditSMatrixA[i,j].Text[1]
else
ch := ' ';
Write(f,ch);
end;
for i := 1 to MATRIX_SIZE do begin
if EditSVectorX[i].Text <> '' then
ch := EditSVectorX[i].Text[1]
else
ch := ' ';
Write(f,ch);
end;
closefile(f);
except
MessageDlg('Ошибка при записи в файл!',mtError,[mbOk],0);
end;
end;
end;

procedure TForm1.BitBtn4Click(Sender: TObject);
var f:file of char;
i,j:integer;
n:byte;
ch: char;
begin
if OD1.Execute and fileexists(OD1.FileName) then begin
try
AssignFile(f,OD1.FileName);
Reset(f);
for i := 1 to MATRIX_SIZE do
for j := 1 to MATRIX_SIZE do begin
Read(f,ch);
if ch <> ' ' then
EditSMatrixA[i,j].Text := ch
else
EditSMatrixA[i,j].Text := '';
end;
for i := 1 to MATRIX_SIZE do begin
Read(f,ch);
if ch <> ' ' then
EditSVectorX[i].Text := ch
else
EditSVectorX[i].Text := '';
end;
Closefile(f);
except
MessageDlg('Не могу открыть файл!',mtError,[mbOk],0);
end;
end;
end;

procedure TForm1.BitBtn5Click(Sender: TObject);
var i,j:integer;
begin
for i := 1 to MATRIX_SIZE do begin
EditSVectorX[i].Text := '';
EditSVectorY[i].Text := '';
for j := 1 to MATRIX_SIZE do EditSMatrixA[i,j].Text := '';
end;
end;

procedure TForm1.BitBtn6Click(Sender: TObject);
var i,j,k,l,tmp:integer;
BadData: boolean;
begin
BadData:=false;
for i := 1 to MATRIX_SIZE do begin
if EditSVectorX[i].Text = ' ' then BadData := true;
for j := 1 to MATRIX_SIZE do
if EditSMatrixA[i,j].Text = ' ' then BadData := true;
end;
if BadData then
ShowMessage('Матрица или вектор заполнены не полностью!'+#13#10+
'Расчет невозможен.')
else begin
for j := 1 to MATRIX_SIZE do begin
tmp := 0;
for i := 1 to MATRIX_SIZE do tmp := tmp + strtoint(EditSVectorX[i].Text) * strtoint(EditSMatrixA[j,i].Text);
EditSVectorY[j].Text := inttostr(tmp);
end;


end;
end;


end.
Соседние файлы в папке Лабораторная работа
  • #
    01.05.2014434 б4LAB2.CFG
  • #
    01.05.20142.4 Кб3LAB2.DOF
  • #
    01.05.2014286 б3LAB2.DPR
  • #
    01.05.2014876 б4LAB2.RES
  • #
    01.05.201427.05 Кб4MAIN.DFM
  • #
    01.05.20146.38 Кб4MAIN.PAS
  • #
    01.05.201475.78 Кб7Met_arch2.doc
  • #
    01.05.20149.02 Кб4SISTOL.PAS
  • #
    01.05.201479.54 Кб3VISUAL.DFM
  • #
    01.05.20148.62 Кб4VISUAL.PAS