![]() |
|
(Sadeleştirildi) Girilen sayı adedinde iç içe for döngüsü oluşturma - Baskı Önizleme +- Delphi Can (https://www.delphican.com) +-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3) +--- Forum: Access violation (https://www.delphican.com/forumdisplay.php?fid=136) +--- Konu Başlığı: (Sadeleştirildi) Girilen sayı adedinde iç içe for döngüsü oluşturma (/showthread.php?tid=1268) |
(Sadeleştirildi) Girilen sayı adedinde iç içe for döngüsü oluşturma - Abdullah ILGAZ - 21-08-2017 Tekrar merhaba, Öncelikle herkese gösterdiği ilgi ve alakadan ötürü, ve vakit ayırıp okuyup, anlatım bozukluklarına rağmen cevaplandırmaya çalıştıkları için teşekkürü borç bilirim. Bu ve bir önceki soruyu oluşturmamın ana gayesi, DelphiCan'da "sinerji oluşturma" çabasıdır. Ancak soracağım sorularda yine gerçek dünyada işimize yarayacak, bir şekilde bir projede karşımıza çıkacak şeylerden ibarettir. Nitekim bu soru, henüz ar-ge aşamasında olan özel ve gizli bir projenin içinde kullanılan özel bir konu. Bu yüzden betimlemek adına "depo" ve "ürün" kavramları ile anlatmaya çalıştım. İşin kötü yanı, bu konuyu anlatabilmek için bir video çekmem gerekiyor. Kağıt üzerinde peşpeşe cümle kurarak 5-10 cümle ile çizim ve görsel destekli izah etmesi bile sorunlu oluyor. Bu anlatanın yada dinleyenin algısal durumundan değil, olayın biraz sıradışı olmasından kaynaklanıyor. Proje, bir kuruluşun gizlilik anlaşması doğrultusunda gerçekleştiği için sizlere detay veremiyor olmaktan olayı özür dilerim. Şimdi daha sade, mümkün mertebe teknik kavramlar geçirmeden izah etmeye çalışacağım. Projede x kavramı var. Bir de bu x'lerin y değerleri var. Yani şöyle bir şey dersek yanlış olmaz; type TXModel = class(TObject) id:integer; value:variant; ylist: array of variant; end; X modelinin YList alanındaki değerler bir aradayken bir anlam ifade ediyor. Bir X için 12 tane Y var. Yani YList'in uzunluğu her zaman 12'dir. Her Y'nin değeri 0~30 arasında olacaktır. Ancak eksi değere düşmediği için Gaussian elimination method geçerli değil çünkü değerler negatif olmamak zorunda. X modelinden en az 2 tane olmak zorunda. En fazla da 8 tane olabilir. Buradaki kıstas şu; Girilecek modellerin YList'leri doğrultusunda oluşacak bir değer var. Bu değeri sağlamak için modellerin YListlerini deneme-yanılma yaparak her türlü ihtimali denememiz gerekiyor. Tekrar ediyorum Girilen modellerin girilmesinde bir sebep var. Bağımsız örneklem yaparsam; Kimyasal bir karışım oluşturacaklar gibi düşünebiliriz. Bu karışımda hangisinden ne kadar koyulması gerektiğini yine diğerlerinin miktarlarıyla ölçeceğiz. Bu bahsi geçen for döngüleri, girilen modellerin ylist değerlerinin miktarlarını tespit etmek.--- Varsayımsal çıktı; X modelinden 2 tane, ve ylist (12 dediğim) ilk 5 değeri bu şekilde; x1.y1 = 5 x1.y2 = 4 x1.y3 = 3 x1.y4 = 2 x1.y5 = 1 x2.y1 = 2 x2.y2 = 6 x2.y3 = 5 x2.y4 = 1 x2.y5 = 3 --- Buradaki mantık; y1'lerin her x değerinde girdiği formül sayesinde x1'den şu kadar koyarsak y1 değeri ihtiyacımızı karşılar, x2'den şu kadar koyarsak y1 değeri ihtiyacımızı karşılar, dememiz gerekiyor. Soru 2 ila 8 tane satır girilecek. 12 tane de kolon var. Oluşan matristeki değerlerin hepsinin bir anlamı var. Bu değerleri çarp-böl-kes-biç yapıp uygun miktarları hesaplayacağız. Bunun için yatay olarak kolonlar asıl mesele gibi gözükse de, her satır, bu miktar meselesini karıştırıyor. Burada da permütasyon olasılık işimizi çözdü. Demostrasyon ve test birimlerinde başarılı sonuçlar aldık. Ancak bunu statik çözmek için 2li, 3lü, 4lü...8li çözüm fonksiyonları yazmam gerekiyor. Orada da yazılımın revize görmesi yada kriterlerin değişmesi durumunda gidip onlarca satır kodu revize etmek ve gözden kaçmaması için daha çok efor sarf etmek gerekecek. Bu yüzden tek fonksiyon ile, hepsinde aynı işi yapacak formülün kullanımını ortak hale getirmek istiyorum. 2 satırsa iç içe 2 satır olacak ki, satırların yatay değerleri birbirleriyle hesaplamaya girip doğru miktarı bize sunsun. Aynı şekilde 4 satır olduğunda, iç içe 4 döngü olacak ve bu kez yatay olarak 12, dikey olarak 4 satırdan oluşan matris kontrole girecek. Burada da oluşan değer yukarıda söylediğim gibi (0~30) arasında olacak. Tekrar vakit ayırıp buraya kadar okuyanlara teşekkür ederim. İyi günler. ![]()
Save Girilen sayı adedinde iç içe for döngüsü oluşturma - Abdullah ILGAZ - 23-08-2017 Konuyu tekrar yukarıya çekmek istiyorum. Bu soruya cevap veren geliştiriciye +10 Beyin Fırtınası Puanı verilecektir. Konu ile ilgili görüş, bilgi, düşünce, tavsiye yada herhangi bir fikir paylaşımında bulunarak katkı yapabilirsiniz. Yine bu katkılarınız size puan olarak yansıtılacaktır. Girilen sayı adedinde iç içe for döngüsü oluşturma - SimaWB - 23-08-2017 Ben soruyu ilk okuduğumda anlamamıştım. Sonra belki birileri cevap verince anlarım demiştim. Şimdi tekrar okudum yine anlamadım Bunca zamandır kimse cevap yazmadığına göre; acaba sorun bende değil de soruluş şeklinde mi diye düşünmeye başladım
Girilen sayı adedinde iç içe for döngüsü oluşturma - esistem - 23-08-2017 Kombinasyon gibi bir olay anladığım kadarı ile ? Şimdi baktım, şöyle bişimiş deger1=(a,b,c,d,) deger2=(1,2,3,4) sonuç (a1,a2,a3,a4,b1,b2,b3,b4,c1,c2,c3,c4,d1,d2,d3,d4) Cvp: Girilen sayı adedinde iç içe for döngüsü oluşturma - witalihakko - 23-08-2017 Bende soruyu tam anlamadığım için bir şeyler yazmadım. Recursive metodlarımı kastediyor acaba şeklinde bir düşünce oluştu sadece fakat oradan ilerisine gidemedim. Cvp: Girilen sayı adedinde iç içe for döngüsü oluşturma - Abdullah ILGAZ - 23-08-2017 (23-08-2017, Saat: 09:40)SimaWB Adlı Kullanıcıdan Alıntı: Ben soruyu ilk okuduğumda anlamamıştım. Sonra belki birileri cevap verince anlarım demiştim. Detaylı açıklama ekledim (SimaWB) abi Save (23-08-2017, Saat: 09:53)esistem Adlı Kullanıcıdan Alıntı: Kombinasyon gibi bir olay anladığım kadarı ile ? Permütasyon sistemine sadık kalacak şekilde olacak. Detaylı açıklama ekledim. (23-08-2017, Saat: 10:04)witalihakko Adlı Kullanıcıdan Alıntı: Bende soruyu tam anlamadığım için bir şeyler yazmadım. Recursive metodlarımı kastediyor acaba şeklinde bir düşünce oluştu sadece fakat oradan ilerisine gidemedim. Recursive işimi çözmüyor çünkü buradaki olay for miktarına göre for döngülerinin iç içe yazılması. Yani bir metodu iç içe tetiklemek işimi çözmüyor. Detaylı açıklama ekledim. [Yeni Anlatım Eklendi] Girilen sayı adedinde iç içe for döngüsü oluşturma - esistem - 23-08-2017 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?
[Yeni Anlatım Eklendi] Girilen sayı adedinde iç içe for döngüsü oluşturma - meko - 23-08-2017 memtable kullanmak serbest mi
[Yeni Anlatım Eklendi] Girilen sayı adedinde iç içe for döngüsü oluşturma - witalihakko - 23-08-2017 Bende okuyunca anlar gibi oldum ama sonra baktım yine anlamamışım
Cvp: [Yeni Anlatım Eklendi] Girilen sayı adedinde iç içe for döngüsü oluşturma - savasabd - 23-08-2017 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. |