matrisde satırların yerini değiştirme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
ebekir
Üye
Mesajlar: 52
Kayıt: 06 Nis 2006 05:23

matrisde satırların yerini değiştirme

Mesaj gönderen ebekir »

merhaba şöyle bir algrtimayı yapmaya çalışıyorum

2 4 6 7 8
6 7 8 9 0
3 4 5 6 7
7 6 5 4 3
3 5 6 7 8

böyle bir matrisim olsun 5.satır ile 1. satırı yer değitrimek 2. ile 4. satırların
yerini değitirmek orta satırın yerinde kalmasını istyorum nasıl yapabilrm sadece 5 satır için değil bu 255 satır olsada gerçekleşebilecek
yardımlarınız için sağolun
En son ebekir tarafından 18 Eki 2006 05:19 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
use your mind feel the difference
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- Bu işleme SWAP deniyor. Listen bir TMemo'da olsun örneğin. Satır numaraları 0'dan başladığından verdiğin her index için (-1) gerektiğini ve öyle uygulandığını hatırlatırım.

Kod: Tümünü seç

Procedure MySwap( Var Liste:TMemo; Idx1, Idx2 : Integer );
Var
  Gecici : String;
begin
  Gecici := Liste.Lines[Idx2-1];
  Liste.Lines[Idx2-1] := Liste.Lines[Idx1-1];
  Liste.Lines[Idx1-1] := Gecici;
end;

Kod: Tümünü seç

procedure TForm1.Button2Click(Sender: TObject);
begin
  MySwap( Memo1, 1, 5 );
end;
- Bu fonksiyonu 1'den başlayıp matrix satır sayısının yarısı kadar her satır için gerçekleştirirsen dileğin gerçekleşmiş olur.
Resim
Resim ....Resim
Kullanıcı avatarı
ebekir
Üye
Mesajlar: 52
Kayıt: 06 Nis 2006 05:23

Mesaj gönderen ebekir »

esasen ben bu işlemi delphide yapyacam matlab da bir resmi ters çevirmek için bunu sordum resimin pixsel değerlerini bir diziye aktararak matris üzerinde çevirmem lazım bunu nasıl yapabilirm acaba
use your mind feel the difference
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

@ebekir

- Sorunun cevabı verildi. Farklı bir soru soruyorsun. Konu başlığı alakasız kalıyor.

- Bunu ya yeni bir başlık açıp sormalısın ya da bu konunun başlığını soruna göre düzenlemelisin. Biliyorsun arama yapıldığında önce konu başlığı gelir ve bu durumda yanıltıcı veya bulunamaz bir hal alır.

- Şimid bu düzeltmeyi yapacağını varsayarak ikinci soruna cevap vermeye çalışayım.

- Resim değerlerini alıp alamadığın sorunda anlaşılmıyor, matris üzerinde dönüşüm yapak istediğine göre almış kabul ediyorum.

- Yukarda örneğini verdiğim fonksiyonu basit bir döngü ile işleme alırsan istediğin sonucu elde edeceksin.

Kod: Tümünü seç

procedure TForm1.Button2Click(Sender: TObject);
Var
  Sayac : Integer;
begin
  For Sayac := 1 to (Memo1.Lines.Count div 2) do
  MySwap( Memo1, Sayac, (Memo1.Lines.Count - (Sayac-1)) );
end;
- Bu sorunun tam cevabıdır. Fonksiyon iki index değerini yer değiştiriyor idi, buradaki döngüde dıştan dışa iki değer üretiyor. Satır sayısı tek rakamlı ise ortadakiaynen kalır, çift ise ortadaki diye bir şey olmayacağından ters yüz olur.
Resim
Resim ....Resim
Cevapla