Arkadaşlar delphi de matris tersi alan bi program yapabilmek için bir kaç haftadır uğraşıyorum.işin kötü yanı, üniversitede sadece Pascal dersi görüyorken, bizden Delphi de çalışmalar istiyorlar...Matris tersini almak için ; Determinant Bul->Kofaktör al->Transpozeyi al....Programı 2 form kullanarak yaptım, en çok 10*10 matris yapmamız istendiğinden, matris boyutuna 'n' diyerek 2. formdan 1. forma yoladım.(nie ikisinde tek bi formda yapmadım demeyin,kafam bu kadar bilgiyle ancak buna bastı

) ama işte 1. form da işlem yaptırırken determinant değerini atadığım 'D' nin olduğu son satırda bir türlü çözemediğim bir hata verdi....Çok ciddi yardıma ihtiyacım var, 4 gün içinde hocaya teslim etmem gerekiyo Resimlerin Görüntülenmesine Izin Verilmiyor
Resimleri Görebilmek Için
Üye Ol veya
Giris Yap Bu tek bir satırda gelen hata beni çıldırdı..Yardımlarınız Bekliyorum, Şimdiden Herkese Çook Teşekkürler....(bu arada determinant kodlarını direk pascal kitabımdan delphiye uyarladım ve ayrıca sanırım 'D' tanımlamasında bi hata yaptım, real,integer vs. gibi bişi olmasımı gerekiyo ya da matrise değerleri atarken "strtoint" yerine başka birşey mi yazmam gerekiyo...)
FORM1-------------------------- :
unit MatrisTersiSON;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,unit2;
type
TForm1 = class(TForm)
Memo1: TMemo;
Memo2: TMemo;
Button1: TButton;
Button2: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
a,b,c,e:array[1..10,1..10] of Integer;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
i,j:integer;
begin
memo1.Text:='';
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=strtoint(inputbox('A matrisi',inttostr(i)+','+inttostr(j)+'.elemanın degeri:','1'));
memo1.Text:=memo1.Text+' '+inttostr(a[i,j]);
end;
memo1.Text:=memo1.Text+#13#10
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var i,j,k:integer;
D:real;
begin
for k := 1 to n-2 do begin
D:=D/(exp((N-k-1)*ln(a[1,1])));
for i := 1 to n-k do begin
for j := 1 to n-k do
B[i,j]:=a[1,1]*a[i+1,j+1]-a[1,j+1]*a[i+1,1];
end;
for i := 1 to n-k do begin
for j := 1 to n-k do A[i,j]:=B[i,j];
end;
D:=D*(a[1,1]*a[2,2]-a[1,2]*a[2,1]);
end;
for i := 1 to n do begin
for j := 1 to n do
c[i,j]:=(c[i,j]*Exp(-1*Ln(i+j)))/d;
==>>>>""(hata bu satırda;[DCC error]MatrisTersiSON.pas:E2010 Incompatible Types: 'Integer' and 'Extended'"""))))) e[i,j]:=c[j,i];
memo2.Text:=memo2.Text+' '+inttostr(e[i,j]);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
memo1.ReadOnly:=true;
memo2.ReadOnly:=true;
end;
end.
FORM2----------------------------;
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm2 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
n:integer;
implementation
uses MatrisTersiSON;
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
begin
n:=strtoint(inputbox('Matrisin Boyutu','Matrisin Boyutunu Giriniz','1'));
if n<11 then
begin
Form1.show
end
else
begin
showmessage('sadece 1 ile 10 arası değerler atayabilirsiniz')
end;
end;
end.
Hatamı direk hangi satırda,nereye,ne yazıcağımı söyleyerek açıklarsanız çok sevinirim çinki cidden sınırlı bilgiye sahibim delphi hakkında....saygılar....