Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

надо написать в делфе матрица

68K
02 марта 2011 года
сашулька
3 / / 02.03.2011
задание:обратите матрицу по схеме единственного деления
0,62 0,73 -0,43 -0,23
0,73 1,00 0,25 0,04
-0,41 0,62 0,21 0,44
0,84 0,32 0,18 -0,47

помогите пожалуйста
278
02 марта 2011 года
Alexander92
1.1K / / 04.08.2008
Говорите, что конкретно не получается, - поможем.
68K
02 марта 2011 года
сашулька
3 / / 02.03.2011
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, StdCtrls, Spin, Buttons;

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    StringGrid2: TStringGrid;
    StringGrid3: TStringGrid;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    SpinEdit1: TSpinEdit;
    SpinEdit2: TSpinEdit;
    Label4: TLabel;
    Label5: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure SpinEdit1Change(Sender: TObject);
    procedure SpinEdit2Change(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Matrix:array[1..40,1..40] of real;
  rows,colons:integer;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
form1.Color:=3774751;
 stringgrid1.color:=form1.Color;
  stringgrid2.color:=form1.Color;
   stringgrid3.color:=form1.Color;
form1.Width:=970;
 form1.Height:=275;
rows:=8;
 colons:=8;


   end;

procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
stringgrid1.RowCount:=spinedit1.Value;
stringgrid2.RowCount:=spinedit1.Value;
stringgrid3.RowCount:=spinedit1.Value;
 rows:=spinedit1.value;
end;

procedure TForm1.SpinEdit2Change(Sender: TObject);
begin
stringgrid1.colCount:=spinedit2.Value;
stringgrid2.colCount:=spinedit2.Value;
 colons:=spinedit2.Value;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
var
i,j:integer;
null:string;
begin
null:='';
for i:=0 to rows-1 do
for j:=0 to colons-1 do
begin
null:=stringgrid1.Cells[j,i];
if null='' then
begin
 application.MessageBox('ìàòðèöà íå ìîæåò ðàâíÿòüñÿ ïóñòîòå','îøèáêà',0);
 exit;
 end;
 end;
for i:=0 to rows-1 do
for j:=0 to colons-1 do
 matrix[i+1,j+1]:=strtofloat(stringgrid1.cells[j,i]);
 for i:=0 to rows-1 do
 for j:=0 to colons-1 do
stringgrid2.cells[j,i]:=floattostr(matrix[i+1,j+1]);
bitbtn1.enabled:=false;
bitbtn4.enabled:=true;
bitbtn2.enabled:=true;
bitbtn3.enabled:=true;
end;
procedure TForm1.BitBtn4Click(Sender: TObject);
var
i,j:integer;
begin
for i:=0 to rows-1 do
begin
stringgrid3.cells[0,i]:='';
 for j:=0 to colons-1 do
  begin
stringgrid1.cells[j,i]:='';
 stringgrid2.cells[j,i]:='';
 end;
end;
bitbtn1.enabled:=true;
bitbtn4.enabled:=false;
bitbtn2.enabled:=false;
bitbtn3.enabled:=false;

end;

procedure TForm1.BitBtn2Click(Sender: TObject);
label perexod;
var
k,j,i:integer;
begin
for i:=1 to rows do
begin
for j:=colons downto i do
matrix[i,j]:=matrix[i,j]/matrix[i,i];
if i=rows then goto perexod;
for k:=i+1 to rows do
for j:=colons downto i do
matrix[k,j]:=matrix[k,j]-(matrix[i,j]*matrix[k,i]);
end;
perexod:
bitbtn1.enabled:=false;
bitbtn4.enabled:=true;
bitbtn2.enabled:=false;
bitbtn3.enabled:=true;
 for i:=0 to rows-1 do
 for j:=0 to colons-1 do
 stringgrid2.Cells[j,i]:=floattostr(matrix[i+1,j+1]);
end;

procedure TForm1.BitBtn3Click(Sender: TObject);
label print;
var
i,k:integer;
matrixprint:array[1..40] of real;
begin
 for i:=rows downto 1 do
 begin
  matrixprint:=matrix[i,colons];
  if i=1 then goto print;
   for k:=i-1 downto 1 do
 matrix[k,colons]:=matrix[k,colons]-matrix[k,i]*matrixprint;
 end;
 print:
  for i:=0 to rows do
 stringgrid3.Cells[0,i]:=floattostr(matrixprint[i+1]);
bitbtn1.enabled:=false;
bitbtn4.enabled:=true;
bitbtn2.enabled:=false;
bitbtn3.enabled:=false;
end;

end.


хотела узнать правильно ли написано, если нет то в каком месте и как исправить
4
02 марта 2011 года
mike
3.7K / / 01.10.2002
Цитата: сашулька
хотела узнать правильно ли написано, если нет то в каком месте и как исправить



А какое место смущает? Или смущает то что слямзили чужой код и ничего в нем не понимаете?

278
03 марта 2011 года
Alexander92
1.1K / / 04.08.2008
Скажу одно: вряд ли кто-то будет вчитываться в этот код. Выпишите то, что касается конкретно алгоритма, и задайте конкретные вопросы, в противном случае - вам прямой путь на Фриланс.
68K
03 марта 2011 года
сашулька
3 / / 02.03.2011
я не слямзила чужой код, просто это вообще первая программа которую я написала на делфи, и не знаю так ли должно все выглядеть.
62K
03 марта 2011 года
flash1989
13 / / 11.09.2010
Если что, обращайтесь ко мне
icq: 588002847
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог