Sayfa: [1]   Aşağı git
  Yazdır  
Gönderen Konu: Delphi Matris Tersini Alan Program-Tek Satırda Hata  (Okunma Sayısı 798 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
hakancanus
Ziyaretçi
« : 19 Mayıs 2008, 23:17:52 »

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ı Üzgün ) 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....
Logged
atahan09
Ziyaretçi
« Yanıtla #1 : 20 Mayıs 2008, 08:49:56 »

bu kod bende çalıştı kodlamayı doğru yapmışsın ama küçük hatalar var kolsma üzerinde onları bi incele zaten göze çarpan hatalardır...
Logged
hakancanus
Ziyaretçi
« Yanıtla #2 : 20 Mayıs 2008, 11:05:36 »

DÜZELTİLMİŞ HALİNİ YOLLAR MISIN Ney
Logged
atahan09
Ziyaretçi
« Yanıtla #3 : 20 Mayıs 2008, 14:01:25 »

arkadaşım mesala küçük hatalar dediğim şu bir komutun sonuna ; koymayı unutmuşsun bundan kaynaklanıyor olabilir sorunun yoksa kodlamada bir hata yok...
Logged
JoKeR
Rock On Roal
Administrator
*

Karma: 112
Offline Offline

Cinsiyet: Bay
Mesaj Sayısı: 1291



Üyelik Bilgileri
« Yanıtla #4 : 22 Mayıs 2008, 12:33:10 »

==>>>>""(hata bu satırda;[DCC error]MatrisTersiSON.pas:E2010 Incompatible   Types: 'Integer' and 'Extended'""")))))

kardeş types teki yazdığın intger le arasında bi çakışma yapıo ... sen o hatayı verdiği yeri bi sil sonra dene bakalım her hangi bi hata verecekmi verirse eğer sorunun nerde olduğunu anlar hallederiz ama önce emin olalım sorun orasımı
projeyi görmeden integerlelrde hatayı tespit etmek zor çünkü ...
« Son Düzenleme: 22 Mayıs 2008, 12:41:09 Gönderen: JoKeR » Logged

10 Konusu Olmayan Soru Sormasın Soruları Cevaplanmayacak...

Linklerin Görülmesine Izin Verilmiyor
Linki Görebilmek Için Üye Ol veya Giris Yap
Sayfa: [1]   Yukarı git
  Yazdır  
GoogleTagged

 
Gitmek istediğiniz yer: