Çok boyutlu dinamik dizi değişken
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Çok boyutlu dinamik dizi değişken
Bütün arkadaşlara merhaba.. Çok boyutlu dinamik bir dizi değişkeni bir fonksiyona parametre olarak gönderip fonksiyon dahilinde dizi değişkenin içeriği üzerinde işlem yapmak istiyorum.. Bu konuda bilgi verecek arkadaşlara şimdiden teşekkürler...
Memik YANIK - http://www.memikyanik.com
Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
aklıma gelen en mantıklı cevap diziyi create ettikten sonra pointer la fonksiyona göndermek.
böylece hem taşınan veri sayısı birkaç byte düşer hemde datayıp üst bellekte tutarsınız.
şu an yoğunum. öğleden sonra bi örnek yapar gönderirirm bu başlığa
böylece hem taşınan veri sayısı birkaç byte düşer hemde datayıp üst bellekte tutarsınız.
şu an yoğunum. öğleden sonra bi örnek yapar gönderirirm bu başlığa
.-.-.-.-.-.-.-. ^_^
İnceledim...
Husonet, teşekkürler.. Linki şimdi inceledim.. Benim derdim orada açıklandığı şekilde tanımlanan dizi değişkeni bir fonksiyona parametre olarak gönderebilmek.. Sanırım fonksiyonu deklera ederken veya çağırırken hata yapıyorum..
Memik YANIK - http://www.memikyanik.com
Kod: Tümünü seç
........
private
Array_: Array of Integer;
public
procedure deneme(const X : array of Integer);
............
..........
begin
if Length(array_)>0then SetLength( array_,0);
SetLength( array_,5);
Array_[1] := 1;
array_[2] := 22;
array_[3] := 333;
Array_[4] := 4444;
Array_[5] := 55555;
deneme(Array_);
..............
procedure TFRM_Deneme.deneme(const X : array of Integer);
begin
ShowMessage( IntToStr(X[1])+#13#10+
IntToStr(X[2])+#13#10+
IntToStr(X[3])+#13#10+
IntToStr(X[4])+#13#10+
IntToStr(X[5])+#13#10+
'Length(X) == ' +IntToStr(Length(X) ) );
end;
kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Global değişken...
Freeman teşekkür ederim, gayet anlaşılır kod yazmışsınız. Ancak benim derdim çok boyutlu dinamik dizi değişkendi. Tabii ki bu dizi değişkeni Global olarak tanımlayın diyebilirsiniz. Bu konuyu kitapta anlatmak istediğim için alternatif çözümlere bakmadım..
Memik YANIK - http://www.memikyanik.com
esasında bende @freeman inkine benzer bir çözüm önermiştim ama neyse, pointerları karıştırmayalım.
siz bu değil demişsiniz. tam anlayamadım istediğiniz matris şeklinde bir yapımı?
gibi; biraz açarmısınız?
siz bu değil demişsiniz. tam anlayamadım istediğiniz matris şeklinde bir yapımı?
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
type
Array_ = Array of Integer;
Matris = Array of Array_;
var myArray:Matris;
begin
SetLength( myArray,5);
SetLength( myArray[0],10);
SetLength( myArray[1],6);
SetLength( myArray[2],3);
SetLength( myArray[3],2);
SetLength( myArray[4],53);
myArray[1][1]:=4;
myArray[1][2]:=4;
myArray[2][1]:=4;
myArray[2][2]:=4;
end;
.-.-.-.-.-.-.-. ^_^
Record tipi
Mege'ye teşekkürler.. Biraz baştan alayım: Bir dinamik dizi değişken tanımladım, arından elaman sayısını tespit edip değerler aktardım. Sonra bu dizi değişkenin içeriğini ListBox'a aktaracak bir fonksiyon hazırladım. Bu fonksiyon bildiğimiz fonksiyonlardan pek farklı değil...
Aşağıda bu kodu verdim.
Var
Basket : array string;
Sonuc : String;
Begin
SetLength(Basket, 3);
Basket[0] := 'Ülkerspor';
Basket[1] := 'Efespilsen';
Basket[2] := 'Fenerbahçe';
Sonuc := Takim_yaz(Basket);
Function TWinForm.Takim_yaz(Takim : Array of String): String;
Var i : Integer;
Begin
For i := Low(Takim) To High(Takim) Do
ListBox1.Items.Add(Takim);
End;
Buraya kadar herşey normal. Ancak fonksiyona parametre olarak göndermek istediğim dizi değişken 2 boyutlu olduğunda sorun çıkıyor. Asıl öğrenmek istediğim bu. Arkadaşlar aklı yolu bir misali Freeman Record tipini kullanarak örnek yaptığında ben de Record tipi ile uğraşıyordum.
Aşağıda bu kodu verdim.
Var
Basket : array string;
Sonuc : String;
Begin
SetLength(Basket, 3);
Basket[0] := 'Ülkerspor';
Basket[1] := 'Efespilsen';
Basket[2] := 'Fenerbahçe';
Sonuc := Takim_yaz(Basket);
Function TWinForm.Takim_yaz(Takim : Array of String): String;
Var i : Integer;
Begin
For i := Low(Takim) To High(Takim) Do
ListBox1.Items.Add(Takim);
End;
Buraya kadar herşey normal. Ancak fonksiyona parametre olarak göndermek istediğim dizi değişken 2 boyutlu olduğunda sorun çıkıyor. Asıl öğrenmek istediğim bu. Arkadaşlar aklı yolu bir misali Freeman Record tipini kullanarak örnek yaptığında ben de Record tipi ile uğraşıyordum.
Memik YANIK - http://www.memikyanik.com
S.A.
önce çok boyutlu dinamik dizimizi tanımlıyoruz.
sonra değişkenimizi tanımlıyoruz,
diziyi oluşturuyoruz.
bu diziyi kullanacağımız prcedure şu şekilde olacak (yaz proceduresi)
Umarım soruyu doğru anlamışımdır
kolay gelsin.
önce çok boyutlu dinamik dizimizi tanımlıyoruz.
Kod: Tümünü seç
Type
TTakimType=array of array[1..2] of string;
Kod: Tümünü seç
var
TAkimlar:TTAkimType;
Kod: Tümünü seç
setlength(Takimlar,2);
takimlar[0][1]:='GALATASARAY';
takimlar[0][2]:='ŞAMPİYON';
takimlar[1][1]:='ÇORUMSPOR';
takimlar[1][2]:='HEHEHEHE';
Yaz(takimlar);
Kod: Tümünü seç
procedure TForm1.YAz(s: TTakimType);
var
i:integer;
begin
for i:=low(s) to high(s) do
Begin
l1.items.add(s[i][1]);
l2.items.add(s[i][2]);
End;
end;
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Yazar açıklama getirmek, programcı o işlemi yapmak ister..
Arkadaşlar merhaba,
Gördüm ki Delphi ile teknik bir konuda sorun yaşadığımda peşinen kaygınlanmama gerek yok.. Çünkü buradaki arkadaşların taktir edilecek
bir bilgi düzeyleri var..
Pprogram yazarken takıldığım için burada soru sorsaydım yukarıda bana verilen cevapların ziyadesi ile yeterli olduğunu söylerdim. Konu yazarlık olunca işin rengi değişiyor.. Yazarlıkta sorunu çözme veya o işlemi yapmak yerine açıklama geretirmek gerekiyor. Herkese saygılar...
Gördüm ki Delphi ile teknik bir konuda sorun yaşadığımda peşinen kaygınlanmama gerek yok.. Çünkü buradaki arkadaşların taktir edilecek
bir bilgi düzeyleri var..
Pprogram yazarken takıldığım için burada soru sorsaydım yukarıda bana verilen cevapların ziyadesi ile yeterli olduğunu söylerdim. Konu yazarlık olunca işin rengi değişiyor.. Yazarlıkta sorunu çözme veya o işlemi yapmak yerine açıklama geretirmek gerekiyor. Herkese saygılar...
Memik YANIK - http://www.memikyanik.com
Bilen adam öğretir, bilemeyen yönetir...
Yaklaşık 10 yıldır bilgisayarlar uğraşan bir bilgisayar mühendisiyim, bu yıl mezun oldum. Bilgisayar mühendisliğine girmeden önce öğrendiğim herşeyi kitaplardan öğrendim, ama bu kitapların hiçbirinin yazarı Memik Yanık değildir. Bu yazı kesinlikle ona karşı bir hakaret amacı gütmemektedir, tamamen benim fikirlerimdir.
Öncelikle yıllardır delphi hakkında kitap yazan birinin dinamik dizilerle ilgili sorduğu bu soruyu hayretler içinde okudum. Evet Memik Bey tanınmış bir kitap yazarımız ama bir kitap yazmadan önce o kitabın konusu hakkında ÖĞRETECEK kadar bilgi sahibi olmak gerekmez mi. Evet kabul ediyorum, Memik bey kitaplarında yazdıklarını çok iyi biliyor ve ÖĞRETEBİLİYOR. Sorun da bu zaten. Benim şahsi fikirlerim Memik Bey'in bundan daha ilerisini bilmediği, hatta bu kitapların okunmaması gerektiğidir. Birazdan açıklayacağım, okumaya devam edin...
Ben bir bilgisayar mühendisi ve programcısıyım, ve şuna inanıyorum ki bir mühendis çok bilen değil bilmesi gerektiğini öğrenmeyi bilen kişidir. Mühendisin yeteneği ve özelliği budur : öğrenebilme ve öğrendiklerini problem çözmede kullanabilme yeteneği (sadece mühendislik mezunları mühendis değildir, tanıdığım birçok lise mezunu gerçek mühendis var, eline su bile dökemeyeceğim).
Bahsi geçen kitapları okuyan ve okur okumaz hemen kendisine programcı diyen birçok kişi tanıyorum. Ve aynı kişilerin "cahil, cesur olur" sözüne istinaden altından kalkamayacağı birçok işin içine girip eline yüzüne bulandıranları da. Bu kitaplar orda burda elime geçti ve çoğunu okudum, ama öğrenmek için değil acaba kitaplarını değiştirmiş mi diye (etrafımda çok kitap okuyan adam var, DEPLHI 8 kitabını bile okudum).
Üslubuyla ilgili birşey söylemeye gerek duymuyorum ama anlatım tarzı insanda bu kitabın bilgisayar kitabından daha farklı bir şey olduğu hissini uyandırıyor. Öyle ki bir sözelci bile bu kitabı okuyarak programcı olabilir. Sözelciden kastım şahsın sayısal bilimlerle ilgilenmemesidir. Takdir edersiniz ki TÜM İCATLAR sayısal bilimlerden ve bu sayısal bilimler de FELSEFE'nin neden sorusuna dayanan temelinden türemiştir. Oysa bu kitapta benzer kontroller tekrar tekrar anlatılmış, yani aynı mantık her component'e uygulanmış. Bunun sayesinde bu kitabı okuyanlar bu ve bunun gibi kitaplar ve internet'ten bulunabilecek hazır kontroller ile istedikleri programı yazabileceklerini sanıyorlar. Hatta bu yolun her problemi çözmekte kullanlabileceğine bile.
Oysa, ALGORİTMA kurmadan program yazılmaz. Ve kesinlikle algoritma kurmanın bu kitapta izlenilen yol gibi sabit bir akışı yoktur. Çünkü Algoritmanın algoritması olmaz. Öyle olsaydı herhangi bir problemleri çözebilecek bir algoritmayı ÜRETEN tek bir algoritma ile her problem çözülürdü. Bu da dünya'nın sonu demektir. Ve bu da gösteriyor ki program yazmak algoritma ile (algoritmik düşünce = cebirsel düşünce [Algebra = cebir]) olur. Zaten bu yüzden program yazmaya PROGRAMLAMA SANATI adı verilmiyor mu (Ömer akgöbek'in PASCAL kitabını okuyanlar beni daha iyi anlayacaktır)? Çünkü herkes bir farklı problemleri çözmek için farklı algoritmalar kurar, işte sanat burdadır. Ve her programcı ürettiğine bir sanat eseri gözüyle bakar, çünkü onu düşünerek ve kendinden birşeyler üreterek ortaya çıkarmıştır.
Sonuç olarak ortaya kendini programcı sanan tarzanlar çıkıyor. Lütfen bu sözü unutmayın : Bilen adam öğretir, bilemeyen yönetir. Peki ben Memik Bey'in kitaplarda yazdıklarını bilmiyor muydum, yukarıda sorduğu sorunun cevabını bile yıllar önce bilen, ortaya kullanılabilir yazılım çıkaran biri olarak ben de böyle bir kitap yazamaz mıydım? Yazabilirdim ama yazmadım çünkü bu işi benden çok daha iyi bilen ve yapan kişiler varken pastadan pazar payı kapmak için bu işe girişmem anlamsınız olurdu. Oysa Türkiye'de mühendis kalitesindeki adamların sayısı az olduğu ve özenildiği için böyle kitaplar var ve satıyor. Bunun da bir kaç sonucu var. Bunlardan ilki ortada programcı diye dolaşan tarzanlar, ikincisi de Memik Bey'in maddi kazancı.
Belki bunları yazdığım için forumdan hesabım silinir, ama ben ancak buraya kadar dayanabildim, artık daha fazla dayanacak sabrım kalmadı. Çünkü Memik Bey insanların artık bahsettiğim şeylerin farkına vardığını biliyor ve bu imajından sıyrılmak için gerçek programcı ve mühendislerin bilgilerinden faydalarak kitap yamaya devam edecek.
Bu foruma şimdiye kada üye olamadım ama hep okudum, zira foruma üyelik açıldığı gün de hemen üye oldum (mussiksek.com dan beri mustafa şimşek'i tanıyorum). Burdaki insanların zeka seviyesini tahmin edebiliyorum, ve bilgiyi paylaşma isteğinin farkındayım ama bilgi satılmak için olmamalıdır. Hepinize saygılarımı sunarım.
Umarım üyeliğim silinmez, çünkü burda sadece fikir var.
Öncelikle yıllardır delphi hakkında kitap yazan birinin dinamik dizilerle ilgili sorduğu bu soruyu hayretler içinde okudum. Evet Memik Bey tanınmış bir kitap yazarımız ama bir kitap yazmadan önce o kitabın konusu hakkında ÖĞRETECEK kadar bilgi sahibi olmak gerekmez mi. Evet kabul ediyorum, Memik bey kitaplarında yazdıklarını çok iyi biliyor ve ÖĞRETEBİLİYOR. Sorun da bu zaten. Benim şahsi fikirlerim Memik Bey'in bundan daha ilerisini bilmediği, hatta bu kitapların okunmaması gerektiğidir. Birazdan açıklayacağım, okumaya devam edin...
Ben bir bilgisayar mühendisi ve programcısıyım, ve şuna inanıyorum ki bir mühendis çok bilen değil bilmesi gerektiğini öğrenmeyi bilen kişidir. Mühendisin yeteneği ve özelliği budur : öğrenebilme ve öğrendiklerini problem çözmede kullanabilme yeteneği (sadece mühendislik mezunları mühendis değildir, tanıdığım birçok lise mezunu gerçek mühendis var, eline su bile dökemeyeceğim).
Bahsi geçen kitapları okuyan ve okur okumaz hemen kendisine programcı diyen birçok kişi tanıyorum. Ve aynı kişilerin "cahil, cesur olur" sözüne istinaden altından kalkamayacağı birçok işin içine girip eline yüzüne bulandıranları da. Bu kitaplar orda burda elime geçti ve çoğunu okudum, ama öğrenmek için değil acaba kitaplarını değiştirmiş mi diye (etrafımda çok kitap okuyan adam var, DEPLHI 8 kitabını bile okudum).
Üslubuyla ilgili birşey söylemeye gerek duymuyorum ama anlatım tarzı insanda bu kitabın bilgisayar kitabından daha farklı bir şey olduğu hissini uyandırıyor. Öyle ki bir sözelci bile bu kitabı okuyarak programcı olabilir. Sözelciden kastım şahsın sayısal bilimlerle ilgilenmemesidir. Takdir edersiniz ki TÜM İCATLAR sayısal bilimlerden ve bu sayısal bilimler de FELSEFE'nin neden sorusuna dayanan temelinden türemiştir. Oysa bu kitapta benzer kontroller tekrar tekrar anlatılmış, yani aynı mantık her component'e uygulanmış. Bunun sayesinde bu kitabı okuyanlar bu ve bunun gibi kitaplar ve internet'ten bulunabilecek hazır kontroller ile istedikleri programı yazabileceklerini sanıyorlar. Hatta bu yolun her problemi çözmekte kullanlabileceğine bile.
Oysa, ALGORİTMA kurmadan program yazılmaz. Ve kesinlikle algoritma kurmanın bu kitapta izlenilen yol gibi sabit bir akışı yoktur. Çünkü Algoritmanın algoritması olmaz. Öyle olsaydı herhangi bir problemleri çözebilecek bir algoritmayı ÜRETEN tek bir algoritma ile her problem çözülürdü. Bu da dünya'nın sonu demektir. Ve bu da gösteriyor ki program yazmak algoritma ile (algoritmik düşünce = cebirsel düşünce [Algebra = cebir]) olur. Zaten bu yüzden program yazmaya PROGRAMLAMA SANATI adı verilmiyor mu (Ömer akgöbek'in PASCAL kitabını okuyanlar beni daha iyi anlayacaktır)? Çünkü herkes bir farklı problemleri çözmek için farklı algoritmalar kurar, işte sanat burdadır. Ve her programcı ürettiğine bir sanat eseri gözüyle bakar, çünkü onu düşünerek ve kendinden birşeyler üreterek ortaya çıkarmıştır.
Sonuç olarak ortaya kendini programcı sanan tarzanlar çıkıyor. Lütfen bu sözü unutmayın : Bilen adam öğretir, bilemeyen yönetir. Peki ben Memik Bey'in kitaplarda yazdıklarını bilmiyor muydum, yukarıda sorduğu sorunun cevabını bile yıllar önce bilen, ortaya kullanılabilir yazılım çıkaran biri olarak ben de böyle bir kitap yazamaz mıydım? Yazabilirdim ama yazmadım çünkü bu işi benden çok daha iyi bilen ve yapan kişiler varken pastadan pazar payı kapmak için bu işe girişmem anlamsınız olurdu. Oysa Türkiye'de mühendis kalitesindeki adamların sayısı az olduğu ve özenildiği için böyle kitaplar var ve satıyor. Bunun da bir kaç sonucu var. Bunlardan ilki ortada programcı diye dolaşan tarzanlar, ikincisi de Memik Bey'in maddi kazancı.
Belki bunları yazdığım için forumdan hesabım silinir, ama ben ancak buraya kadar dayanabildim, artık daha fazla dayanacak sabrım kalmadı. Çünkü Memik Bey insanların artık bahsettiğim şeylerin farkına vardığını biliyor ve bu imajından sıyrılmak için gerçek programcı ve mühendislerin bilgilerinden faydalarak kitap yamaya devam edecek.
Bu foruma şimdiye kada üye olamadım ama hep okudum, zira foruma üyelik açıldığı gün de hemen üye oldum (mussiksek.com dan beri mustafa şimşek'i tanıyorum). Burdaki insanların zeka seviyesini tahmin edebiliyorum, ve bilgiyi paylaşma isteğinin farkındayım ama bilgi satılmak için olmamalıdır. Hepinize saygılarımı sunarım.
Umarım üyeliğim silinmez, çünkü burda sadece fikir var.
Soruyu cevaplasaydınız zaten büyürdünüz...
Arkadaşım merhaba;
Askerlik yapanlar bilir; henüz mezun olan teğmenler astsubaylara çok çektirirler.. Delphi veya başka bir konuda benden çok iyi olabilirsiniz. Zaten benim "çok iyi programcıyım" dediğimi kimse duymamıştır.
Sizin iyi programcı olmanız, size ve memlekte yararlı olacağı için sevinmekle yetinirim. Gelelim çok boyutlu dinamik dizi değişkenlere.. Borland'ın programcılarının yazdığı herşeyi kimse bilmek zorunda değildir. Bu nedenle çok boyutlu dinamik bir dizi değişkeni bir fonksiyona parametre olarak gönderme konusunu bilmemem utanılacak birşey değildir.. Keşke saldırmak yerine soruma cevap verseydiniz. Bu durumda bu forumum üyelerinin nazarında büyürdünüz.. Herkese saygılar..
Askerlik yapanlar bilir; henüz mezun olan teğmenler astsubaylara çok çektirirler.. Delphi veya başka bir konuda benden çok iyi olabilirsiniz. Zaten benim "çok iyi programcıyım" dediğimi kimse duymamıştır.
Sizin iyi programcı olmanız, size ve memlekte yararlı olacağı için sevinmekle yetinirim. Gelelim çok boyutlu dinamik dizi değişkenlere.. Borland'ın programcılarının yazdığı herşeyi kimse bilmek zorunda değildir. Bu nedenle çok boyutlu dinamik bir dizi değişkeni bir fonksiyona parametre olarak gönderme konusunu bilmemem utanılacak birşey değildir.. Keşke saldırmak yerine soruma cevap verseydiniz. Bu durumda bu forumum üyelerinin nazarında büyürdünüz.. Herkese saygılar..
Memik YANIK - http://www.memikyanik.com
Konu başlık dışına çıktığı için kilitliyorum. Birbirimizi kırmamaya özen gösterelim lütfen.
Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.