Yorumları: 151
Konuları: 1
Kayıt Tarihi: 31-08-2016
Rep Puanı: 5.549 Üstad
Okudum düşündüm fikir kumkuması yaptım hatta onyüz milyon baloncuk yuttum iyimi yine de anlamadım.
Ayakkabıyı sefaletten
Çok sonraları tanıdım
Öyle ufuklarda mı olurmuş Allah'ım
Giyer giyer koşardım
Toprağın dostluğundan
Oyuncaklar yaptım çamurdan
Tenimin rengini aldım topraktan
Sen bakma esmerliğim sonradan...
Yorumları: 884
Konuları: 35
Kayıt Tarihi: 12-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.853 Uzman
23-08-2017, Saat: 14:41
(Son Düzenleme: 23-08-2017, Saat: 15:18, Düzenleyen: esistem.)
Sanırım şöyle bir olay isteniyor, örneğin a,b,c,d diye 4 ürünümüz var, her ürünü diğer tanımlı ürünler ile karşılaştırmak gerekiyor.
Örneğimize göre, a ile b yi, a ile c yi, a ile d yi, b ile c yi, b ile d yi ve c ile d yi : a-b, a-c, a-d, b-c, b-d, c-d gibi.
aşağıdaki gibi bir kod işinizi görecektir sanırım.
const
a:array[0..3] of string=('a','b','c','d');
var
b:string;
x, y : integer;
begin
b:='';
for x:=0 to 3
do begin
for y:=0 to 3
do begin
if (y>x) then
b:=b+a[x]+a[y]+' - ';
end;
end;
Yorumları: 357
Konuları: 30
Kayıt Tarihi: 10-07-2017
Aktif Kullandığınız Delphi Sürümü:
- Delphi 10.3
- Lazarus / FPC
Rep Puanı: 4.215 Uzman
23-08-2017, Saat: 15:05
(Son Düzenleme: 03-04-2021, Saat: 09:19, Düzenleyen: savasabd.)
Hocam bu da delphi'de yazılmış hali.(Kodu bir çalıştırın hocam donguolustur(int n) fonksiyonuna hangi değeri verirseniz o kadar döngü oluşur.)
Yorumları: 1.499
Konuları: 83
Kayıt Tarihi: 05-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 12.314 Üstad
Bence problem, konu sahibi sevgili arkadaşımızın biraz daha izahına muhtaç sanırım. Eğer, zahmet buyurup bir nebze daha izahat yapabilir ise; çok daha isabetli yorumlar yapılabilecektir sanıyorum.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
Yorumları: 46
Konuları: 3
Kayıt Tarihi: 02-12-2016
Rep Puanı: 55 Başlangıç
23-08-2017, Saat: 15:37
(Son Düzenleme: 23-08-2017, Saat: 15:39, Düzenleyen: SecondLife.)
Function ReonYerles(v:array of string;ilkurun:string=''):string;
var
i:Integer;
begin
Result:='';
for i := Low(v) to High(v) do
begin
if ilkurun ='' then Result:=Result+ReonYerles(v,v[i])+#13#10
else
if ilkurun <> v[i] then
Result:=Result+'['+ilkurun+'-'+v[i]+']';
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
const
a:array[0..3] of string=('a','b','c','d');
var
s:string;
begin
s:=ReonYerles(a);
ShowMessage(s)
end;
Yorumları: 884
Konuları: 35
Kayıt Tarihi: 12-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.853 Uzman
(23-08-2017, Saat: 15:35)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı: Bence problem, konu sahibi sevgili arkadaşımızın biraz daha izahına muhtaç sanırım. Eğer, zahmet buyurup bir nebze daha izahat yapabilir ise; çok daha isabetli yorumlar yapılabilecektir sanıyorum.
Sanırım arkadaş yoğun olduğundan dolayı foruma giremedi hocam, bu gün takip ettim sabah bi ara geldi sonra online olmadı hiç. Gelince izahını yapacaktır muhtemelen.
Yorumları: 488
Konuları: 65
Kayıt Tarihi: 14-06-2017
Aktif Kullandığınız Delphi Sürümü:
- Delphi 10.2
- Delphi XE
- Lazarus / FPC
Rep Puanı: 1.609 Programcı
Bir olay bu kadar anlatılamaya bilirmiş  sayısız şekilde for döngüsü çağırmak istiyorsun anlaşılan bu döngünün girişi çıkışı olacak. Bu döngüyü bir fonksiyon yapsan ve değerleri değiştirip istediğin kadar bu fonksiyonu çağırsan gibi anlamadığım bir şeye cevap vermeye çalıştım gibi birşey oldu
Topluluk mopluluk yok :/
Yorumları: 953
Konuları: 124
Kayıt Tarihi: 06-07-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 6.383 Üstad
24-08-2017, Saat: 09:42
(Son Düzenleme: 24-08-2017, Saat: 09:52, Düzenleyen: Abdullah ILGAZ.)
(23-08-2017, Saat: 10:51)esistem Adlı Kullanıcıdan Alıntı: Merhaba hocam, ben yine anlamadım şimdi elinizde raflar var, rafların yüksekliği derinliği belli (?), her bir raf max 8 ürün alıyor. Mesela yüksekliği belli seviye olan ürünler aynı rafa girebiliyor mu yoksa her rafta aynı türden ürünler olmak zorundamı? Sizin yapmak istediğiniz elimize örneğin 3 adet ürün geldi, bunların ebatları alınıp hangi raf uygunsa (boşsa) sıradan ürünleri o raflara yerleştirmekmi?
Hocam 3 ürün geldiyse iç içe 3 tane for oluşturarak bu 3 ürünün birbirleriyle karşılaştırılacağı değerleri karşılaştıracağız. Ne kadar ürün, o kadar "for döngüsü" diyebiliriz
Save
(23-08-2017, Saat: 11:21)meko Adlı Kullanıcıdan Alıntı: memtable kullanmak serbest mi 
Her şey serbest
Save
(23-08-2017, Saat: 11:54)witalihakko Adlı Kullanıcıdan Alıntı: Bende okuyunca anlar gibi oldum ama sonra baktım yine anlamamışım 
Aslında iç içe çağırma ile istenilen anlaşılmış hocam. Buradaki ana espri şu; "n tane ürün var. Her ürünün 12 farklı özelliği var. Buradaki 12 özelliğin her birinin farklı koşul ve kontrolleri var."
Örn: 3 tane ürün geldi. Bu üç ürünün ayrı ayrı 12 özelliğini mukayese ederek, en uygun yerleşimi sağlıyoruz. Statik olarak kod oluşturunca tıkır tıkır çalışıyor yazdığım kontrol ve döngüler. Burada istediğim gelen ürün adedine göre iç içe döngüye alarak permütasyonu çalıştırmak.
[ ilk ürün için [ içinci ürün için [ üçüncü ürün için ] ] ]
---
Yaptığım kontrolün sistemi; 12 özellik için değer arttırımı yapmak. Örneğe sadık kalarak; 3 ürün için yan yana 3 tane değer var; 0 0 0. İlk parametresi için 1 0 0... 2 0 0.... 9'a kadar gidebilir. Sonra 0 1 0.... 0 2 0.... En son gidebileceği değer 9 9 9. Bu şekilde her ürünün diğer ürünlerle denetimini yapmak için ürün miktarınca iç içe döngü ile matris kontrolü yazmış olacağız.
Save
(23-08-2017, Saat: 14:12)savasabd Adlı Kullanıcıdan Alıntı: #pragma hdrstop
#pragma argsused
#ifdef _WIN32
#include <tchar.h>
#else
typedef char _TCHAR;
#define _tmain main
#endif
#include <stdio.h>
#include <stdlib.h>
#define ALT 0 //raflara yerleşecek ürünün alt değeri yani içiçe oluşacak döngünün başı
#define UST 9 //raflara yerleşecek ürünün üst değeri yani içiçe oluşacak döngünün son değeri
void donguolustur(int n)
{
int *ndizi=new int[n];
memset(ndizi,0,n);
_lab:
for (int i= ALT; i <= UST; i++)
{
for (int k = 0; k < n-1; k++)
{
printf(",%d",ndizi[k]); // ben buradaki oluşacak matrisin index değerlerini yazdırıyorum ama UST-ALT+1 üzeri n olan bir dizi oluşturulursa ki bu döngünün toplam eleman sayısıdır.
}
printf(",%d \n",i); //buradaki k değeriyle ndizi içindeki değerlerin çarpımının toplamıyla oluşacak index ile yukarda bahsettiğim diziye istediğiniz herhangi bir değer de yerleştirilebilir.
//yani matrisin açılmış ardışıl halidir dizi ki zaten bellekte de yapılan aynı işlem yapılır ama biz çok boyutlu gibi işlem yaparız.
}
ndizi[n-2]++;
for (int j= n-2; j >=0; j--)
{
if(j!=0&&ndizi[j]==UST+1)
{
ndizi[j-1]++;
ndizi[j]=ALT;
}
}
if(ndizi[0]<UST+1)goto _lab;
}
int _tmain(int argc, _TCHAR* argv[])
{
donguolustur(5);
system("pause");
return 0;
}
Hocam ben delphiyi çok bilmediğimden c++'da yazdım.
Kodu bir çalıştırın hocam donguolustur(int n) fonksiyonuna hangi değeri verirseniz o kadar döngü oluşur.
Umarım soruyu doğru anlamış ve cevaplandırmışımdır.Doğruıysa delphiye uyarlarız.
Müsait bir vaktimde kontrol bloğunu içine yerleştirerek doğru sonuçları verip vermediğini deneyeceğim. Eğer uyarsa Delphi'ye uyarlayıp size de kodları paylaşırım. Çok teşekkürler.
(23-08-2017, Saat: 14:13)QuAdR Adlı Kullanıcıdan Alıntı: Okudum düşündüm fikir kumkuması yaptım hatta onyüz milyon baloncuk yuttum iyimi yine de anlamadım. 
Hocam önceki yorumlara verdiğim cevapları gözden geçirebilir misiniz? Olayı detaylıca enine boyuna anlatamadığım için parça parça yazabiliyorum, kusura bakmayın.
Save
Yorumları: 488
Konuları: 65
Kayıt Tarihi: 14-06-2017
Aktif Kullandığınız Delphi Sürümü:
- Delphi 10.2
- Delphi XE
- Lazarus / FPC
Rep Puanı: 1.609 Programcı
Şöyle yapsak sorunu söylesen bunu nasıl yaparız desen hiç for döngüsü vs. demesen. Koli alan yerleri var koli boyutları şu şekilde 8 ürün en efektif nasıl sığar gibi mesela
Topluluk mopluluk yok :/
Yorumları: 357
Konuları: 30
Kayıt Tarihi: 10-07-2017
Aktif Kullandığınız Delphi Sürümü:
- Delphi 10.3
- Lazarus / FPC
Rep Puanı: 4.215 Uzman
(24-08-2017, Saat: 09:42)Abdullah Ilgaz Adlı Kullanıcıdan Alıntı: (23-08-2017, Saat: 10:51)esistem Adlı Kullanıcıdan Alıntı: Merhaba hocam, ben yine anlamadım şimdi elinizde raflar var, rafların yüksekliği derinliği belli (?), her bir raf max 8 ürün alıyor. Mesela yüksekliği belli seviye olan ürünler aynı rafa girebiliyor mu yoksa her rafta aynı türden ürünler olmak zorundamı? Sizin yapmak istediğiniz elimize örneğin 3 adet ürün geldi, bunların ebatları alınıp hangi raf uygunsa (boşsa) sıradan ürünleri o raflara yerleştirmekmi?
Hocam 3 ürün geldiyse iç içe 3 tane for oluşturarak bu 3 ürünün birbirleriyle karşılaştırılacağı değerleri karşılaştıracağız. Ne kadar ürün, o kadar "for döngüsü" diyebiliriz 
Save
(23-08-2017, Saat: 11:21)meko Adlı Kullanıcıdan Alıntı: memtable kullanmak serbest mi 
Her şey serbest 
Save
(23-08-2017, Saat: 11:54)witalihakko Adlı Kullanıcıdan Alıntı: Bende okuyunca anlar gibi oldum ama sonra baktım yine anlamamışım 
Aslında iç içe çağırma ile istenilen anlaşılmış hocam. Buradaki ana espri şu; "n tane ürün var. Her ürünün 12 farklı özelliği var. Buradaki 12 özelliğin her birinin farklı koşul ve kontrolleri var."
Örn: 3 tane ürün geldi. Bu üç ürünün ayrı ayrı 12 özelliğini mukayese ederek, en uygun yerleşimi sağlıyoruz. Statik olarak kod oluşturunca tıkır tıkır çalışıyor yazdığım kontrol ve döngüler. Burada istediğim gelen ürün adedine göre iç içe döngüye alarak permütasyonu çalıştırmak.
[ ilk ürün için [ içinci ürün için [ üçüncü ürün için ] ] ]
---
Yaptığım kontrolün sistemi; 12 özellik için değer arttırımı yapmak. Örneğe sadık kalarak; 3 ürün için yan yana 3 tane değer var; 0 0 0. İlk parametresi için 1 0 0... 2 0 0.... 9'a kadar gidebilir. Sonra 0 1 0.... 0 2 0.... En son gidebileceği değer 9 9 9. Bu şekilde her ürünün diğer ürünlerle denetimini yapmak için ürün miktarınca iç içe döngü ile matris kontrolü yazmış olacağız.
Save
(23-08-2017, Saat: 14:12)savasabd Adlı Kullanıcıdan Alıntı: #pragma hdrstop
#pragma argsused
#ifdef _WIN32
#include <tchar.h>
#else
typedef char _TCHAR;
#define _tmain main
#endif
#include <stdio.h>
#include <stdlib.h>
#define ALT 0 //raflara yerleşecek ürünün alt değeri yani içiçe oluşacak döngünün başı
#define UST 9 //raflara yerleşecek ürünün üst değeri yani içiçe oluşacak döngünün son değeri
void donguolustur(int n)
{
int *ndizi=new int[n];
memset(ndizi,0,n);
_lab:
for (int i= ALT; i <= UST; i++)
{
for (int k = 0; k < n-1; k++)
{
printf(",%d",ndizi[k]); // ben buradaki oluşacak matrisin index değerlerini yazdırıyorum ama UST-ALT+1 üzeri n olan bir dizi oluşturulursa ki bu döngünün toplam eleman sayısıdır.
}
printf(",%d \n",i); //buradaki k değeriyle ndizi içindeki değerlerin çarpımının toplamıyla oluşacak index ile yukarda bahsettiğim diziye istediğiniz herhangi bir değer de yerleştirilebilir.
//yani matrisin açılmış ardışıl halidir dizi ki zaten bellekte de yapılan aynı işlem yapılır ama biz çok boyutlu gibi işlem yaparız.
}
ndizi[n-2]++;
for (int j= n-2; j >=0; j--)
{
if(j!=0&&ndizi[j]==UST+1)
{
ndizi[j-1]++;
ndizi[j]=ALT;
}
}
if(ndizi[0]<UST+1)goto _lab;
}
int _tmain(int argc, _TCHAR* argv[])
{
donguolustur(5);
system("pause");
return 0;
}
Hocam ben delphiyi çok bilmediğimden c++'da yazdım.
Kodu bir çalıştırın hocam donguolustur(int n) fonksiyonuna hangi değeri verirseniz o kadar döngü oluşur.
Umarım soruyu doğru anlamış ve cevaplandırmışımdır.Doğruıysa delphiye uyarlarız.
Müsait bir vaktimde kontrol bloğunu içine yerleştirerek doğru sonuçları verip vermediğini deneyeceğim. Eğer uyarsa Delphi'ye uyarlayıp size de kodları paylaşırım. Çok teşekkürler.
(23-08-2017, Saat: 14:13)QuAdR Adlı Kullanıcıdan Alıntı: Okudum düşündüm fikir kumkuması yaptım hatta onyüz milyon baloncuk yuttum iyimi yine de anlamadım. 
Hocam önceki yorumlara verdiğim cevapları gözden geçirebilir misiniz? Olayı detaylıca enine boyuna anlatamadığım için parça parça yazabiliyorum, kusura bakmayın.
Save
Hocam ben delphiye uyarlanmış halini yazdım sonraki cevaplara bakın.
|