Konuyu Oyla:
  • Derecelendirme: 5/5 - 3 oy
  • 1
  • 2
  • 3
  • 4
  • 5
(Sadeleştirildi) Girilen sayı adedinde iç içe for döngüsü oluşturma
#18
(23-08-2017, Saat: 10:51)esistem Adlı Kullanıcıdan Alıntı: Merhaba hocam, ben yine anlamadım Smile ş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 Smile
Save

(23-08-2017, Saat: 11:21)meko Adlı Kullanıcıdan Alıntı: memtable kullanmak serbest mi Smile

Her şey serbest Smile
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 Smile

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. Smile

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
Cevapla


Bu Konudaki Yorumlar
Cvp: [Yeni Anlatım Eklendi] Girilen sayı adedinde iç içe for döngüsü oluşturma - Yazar: Abdullah ILGAZ - 24-08-2017, Saat: 09:42

Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi ORM Yapısı ile işlevsel kod çıktısı oluşturma Abdullah ILGAZ 8 9.999 04-03-2020, Saat: 23:45
Son Yorum: OldyCoder



Konuyu Okuyanlar: 1 Ziyaretçi