matris içinde matris seçmek

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
deltas
Üye
Mesajlar: 358
Kayıt: 06 Mar 2004 01:08
Konum: Malatya...
İletişim:

matris içinde matris seçmek

Mesaj gönderen deltas »

Merhaba arkadaşlar
Sorunum matrisler ve eşleşmeleri ile ilgili
elimizde ixj'lik bir matris var. bu matristen 1xj'lik matrisler oluşturacam. bu şekilde i^j kadar matris oluşur. mesela i=4 j=3 olsun. buradan 1x3'lük 64 tane matris oluşturulabilir. örnek verecek olursam;
y(1,1) y(1,2) y(1,3) y(1,4)
y(2,1) y(2,2) y(2,3) y(2,4)
y(3,1) y(3,2) y(3,3) y(3,4)
y matrisinden yeni 1x3 lük a matrisi üretecek olursak;
a(1,1)=y(1,1)
a(2,1)=y(2,1)
a(3,1)=y(3,1)
-----
a(1,2)=y(1,1)
a(2,2)=y(2,1)
a(3,2)=y(3,2)
----
a(1,3)=y(1,1)
a(2,3)=y(2,1)
a(3,3)=y(3,3)

Şeklinde 64 tane matris oluşturabiliriz.
Bu sorunun olduğu kısım. bunu delphide nasıl yapabilirim. Algoritmayı kuramadım. kafam sürekli karıştı. Ancak buradaki ixj değişken yani 2x3,5x6 şeklinde dışarıdan girecem.
Yardımlarınız için şimdiden teşekkür ederim...
Nice İnsanlar gördüm üstünde elbise yok;
Nice elbiseler gördüm içinde insan yok.
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Re: matris içinde matris seçmek

Mesaj gönderen adelphiforumz »

dinamik array tanıt ve bu array elemanlarını record array gibi kullan
aşağıda tek boyutlu için bir örnek yaptım bunu sen çok boyutlu hale getirirsin

type
DiziRec=Record
AAA:Integer;
BBB:String;
end;

proc......
var
x:Integer;
Dizi: array of DiziRec;
begin
x:=20;
SetLength(Dizi, x);
Dizi[1].AAA := 1;
Dizi[1].BBB := 'test';
end;
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Re: matris içinde matris seçmek

Mesaj gönderen adelphiforumz »

yada
var DiziAdi:array of array of array of.... tip

Örnek
Proc......
var A:array of array of integer;
begin
SetLength(A,2,3);
end;

gibi
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
deltas
Üye
Mesajlar: 358
Kayıt: 06 Mar 2004 01:08
Konum: Malatya...
İletişim:

Re: matris içinde matris seçmek

Mesaj gönderen deltas »

hocam ilginize teşekkür ederim.
ancak istediğim şey bu değil. y(i,j) matrisini ben girecem. program bana a[][] matrisini oluşturacak ve tüm ihtimalleri gösterecek dediğim gibi bana 64 matrisi nasıl elde edebilirim? yani y matrisi giriş a matrisi ise çıkan matrisler olacak ama a matrisinden bana 64 farklı matrisi oluşturacak
Nice İnsanlar gördüm üstünde elbise yok;
Nice elbiseler gördüm içinde insan yok.
deltas
Üye
Mesajlar: 358
Kayıt: 06 Mar 2004 01:08
Konum: Malatya...
İletişim:

Re: matris içinde matris seçmek

Mesaj gönderen deltas »

ya arkadaşalr kafayı yiyecem. bi çözüm bulamadım. algoritma konusunda yardımcı olabilecek bi arkadaş varmı? veya buna benzer işlemlere verilen spesifik bir ad varmı (google'den aramak için)
Nice İnsanlar gördüm üstünde elbise yok;
Nice elbiseler gördüm içinde insan yok.
t-hex
Kıdemli Üye
Mesajlar: 531
Kayıt: 18 Mar 2005 02:45
Konum: İstanbul/Antalya
İletişim:

Re: matris içinde matris seçmek

Mesaj gönderen t-hex »

i,j,k değişkenleri satırları takip ederken x,y,z değişkenleri o satırdaki girdileri takip ediyor. arr: matris arrayi
Delphi olmadığı için c# kodu gönderiyorum. Benzer mantığı delphide yazabilirsin.

Kod: Tümünü seç

for (int i = 0; i < H - 2; i++)
 for (int j = i + 1; j < H - 1; j++)
  for (int k = j + 1; k < H; k++)
   for (int x = 0; x < W; x++)
    for (int y = 0; y < W; y++)
     for (int z = 0; z < W; z++)
      Console.WriteLine(arr[i, x] + " " + arr[j, y] + " " + arr[k, z]);
deltas
Üye
Mesajlar: 358
Kayıt: 06 Mar 2004 01:08
Konum: Malatya...
İletişim:

Re: matris içinde matris seçmek

Mesaj gönderen deltas »

@thex hocam teşekkür ederim. verdiğim matris için sorunu hallettim. anca bunu dinamikmatris yaparsak buradaki for döngüsünü i,j kadar döngüyü artürmamız gerekecek yani her sayı artırımı için ayrı 2 for döngüsü açmam gerekecek. bunu dinamik hale getirebilirmiyiz.
İlginize çok teşekkür ederim....
Nice İnsanlar gördüm üstünde elbise yok;
Nice elbiseler gördüm içinde insan yok.
Cevapla