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
matrisde satırların yerini değiştirme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
matrisde satırların yerini değiştirme
En son ebekir tarafından 18 Eki 2006 05:19 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
use your mind feel the difference
- 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.
- 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.
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;
@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.
- 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.
- 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;