Kıyafet Kombinasyon Programı
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 25
- Kayıt: 12 Ara 2013 08:35
Kıyafet Kombinasyon Programı
Merhaba arkadaşlar basit bir program geliştiriyorum ancak matematiksel kısmında nasıl hesaplayacağımı bilemedim.
9 tane sayı değişkenin elle girildiği bir kombinasyon programı.
Kategoriler, Değişkenler ve değerleri şunlar:
1. Üst Giyim Kategorisi [Gömlekler(7 Tane),T-Shirtler(3 Tane),Kazaklar(3 Tane),Sweatshirtler(3 Tane)],
2. Alt Giyim Kategorisi [Pantolonlar(5 Tane) ve Eşorfman Altı(1 Adet)],
3. Dış Giyim Kategorisi [Montlar(2 Tane) ve Fermuarlı-Kapüşonlular(1 Adet)],
4. Ayakkabılar(2 Tane).
Bir kişi bu 4 kategoriden de bir seçeneği giymek zorunda. Bu 4 kategorik değişkenin kaç farklı şekilde giyilebileceğini hesaplatmak istiyorum. Ancak şöyle bir ayrım var. Taktir edersiniz ki 10'un 4'lü kombinasyonu mantıklı sonuç vermiyor. Yani hem pantolon hem eşorfman altı giyemezsiniz. Her kategoriden yalnızca bir seçeneğin göz önünde bulundurulması gerek. Ve yanlarında bulunan sayılarla birlikte farklı kombinasyonları hesaplaması gerek Örneğin; 2. Gömlek, 3. Pantolon, 2.Mont ve 1. Ayakkabı bir kombinasyondur, 1. Gömlek, 4. Pantolon,1.Kapüşonlu ve 2. Ayakkabı ayrı bir kombinasyondur. Bunları ayrı ayrı göz önünde bulundurmalı.
Böyle bir şey yapılabilir mi ? Karışık anlattıysam kusura bakmayın sorun daha detaylı açıklamaya çalışırım.
Programın taslak görüntüsü şöyle:
9 tane sayı değişkenin elle girildiği bir kombinasyon programı.
Kategoriler, Değişkenler ve değerleri şunlar:
1. Üst Giyim Kategorisi [Gömlekler(7 Tane),T-Shirtler(3 Tane),Kazaklar(3 Tane),Sweatshirtler(3 Tane)],
2. Alt Giyim Kategorisi [Pantolonlar(5 Tane) ve Eşorfman Altı(1 Adet)],
3. Dış Giyim Kategorisi [Montlar(2 Tane) ve Fermuarlı-Kapüşonlular(1 Adet)],
4. Ayakkabılar(2 Tane).
Bir kişi bu 4 kategoriden de bir seçeneği giymek zorunda. Bu 4 kategorik değişkenin kaç farklı şekilde giyilebileceğini hesaplatmak istiyorum. Ancak şöyle bir ayrım var. Taktir edersiniz ki 10'un 4'lü kombinasyonu mantıklı sonuç vermiyor. Yani hem pantolon hem eşorfman altı giyemezsiniz. Her kategoriden yalnızca bir seçeneğin göz önünde bulundurulması gerek. Ve yanlarında bulunan sayılarla birlikte farklı kombinasyonları hesaplaması gerek Örneğin; 2. Gömlek, 3. Pantolon, 2.Mont ve 1. Ayakkabı bir kombinasyondur, 1. Gömlek, 4. Pantolon,1.Kapüşonlu ve 2. Ayakkabı ayrı bir kombinasyondur. Bunları ayrı ayrı göz önünde bulundurmalı.
Böyle bir şey yapılabilir mi ? Karışık anlattıysam kusura bakmayın sorun daha detaylı açıklamaya çalışırım.
Programın taslak görüntüsü şöyle:
Re: Kıyafet Kombinasyon Programı
Her kategoriyi kendi içlerinde çarparak ulaşılabilir sanırım.
((ÜstGiyim x AltGiyim) x Dış giyim) x Ayakkabı = Birinci ÜstGiyim kategorisinin giyim kombinasyonu.
AltGiyim, DışGiyim ve Ayakkabı kategorilerinin elemanlarını da kendi aralarında toplamanız gerekecek.
((ÜstGiyim x AltGiyim) x Dış giyim) x Ayakkabı = Birinci ÜstGiyim kategorisinin giyim kombinasyonu.
AltGiyim, DışGiyim ve Ayakkabı kategorilerinin elemanlarını da kendi aralarında toplamanız gerekecek.
-
- Üye
- Mesajlar: 25
- Kayıt: 12 Ara 2013 08:35
Re: Kıyafet Kombinasyon Programı
Bunun için girilen her değer için bir değişken mi oluşturmak gerekiyor?Ancestor yazdı:Her kategoriyi kendi içlerinde çarparak ulaşılabilir sanırım.
((ÜstGiyim x AltGiyim) x Dış giyim) x Ayakkabı = Birinci ÜstGiyim kategorisinin giyim kombinasyonu.
AltGiyim, DışGiyim ve Ayakkabı kategorilerinin elemanlarını da kendi aralarında toplamanız gerekecek.
Yani şöyle yapılabilir mi: Girilen tüm değerlerin toplamı 27.
Bu değerler kadar yani 27 tane değişkeni program kendi oluşturup bunları kendi içinde kategorik olarak çarpabilir mi?
Ya da 4 tane dizi oluşturup program onların içinde kendi değişkenlerini yaratıp dizileri birbirleriyle kombinasyona sokabilir mi?
Re: Kıyafet Kombinasyon Programı
Oluşturulan kategorilerin sayıları fazla ise bunlar için bi döngü kurabilirsiniz sanırım.
Bundan önce Form'a koyulan editlerin isimlerini kendinize göre düzenleyin.
Mesela AltGiyim kategorisindeki editler AltGiyim1 AltGiyim2 AltGiyim3... gibi isimlendirilmiş olsun.
Burada AltGiyim kategorilerindeki tüm rakamları toplamış olduk. Diğer kategoriler içinde böyle birşey yapıp, en son birinci ana kategori elemanları ile aynı mantıkla çarptırabilirsiniz.
Bundan önce Form'a koyulan editlerin isimlerini kendinize göre düzenleyin.
Mesela AltGiyim kategorisindeki editler AltGiyim1 AltGiyim2 AltGiyim3... gibi isimlendirilmiş olsun.
Kod: Tümünü seç
var
AltGiyimToplam, a : integer;
begin
AltGiyimToplam := 0;
for a := 1 to ComponentCount-1 do begin
AltGiyimToplam := AltGiyimToplam + StrToInt(TEdit(FindComponent('AltGiyim'+IntToStr(a))).Text);
end;
end;
-
- Üye
- Mesajlar: 25
- Kayıt: 12 Ara 2013 08:35
Re: Kıyafet Kombinasyon Programı
Kodu şöyle yazdım:Ancestor yazdı:Oluşturulan kategorilerin sayıları fazla ise bunlar için bi döngü kurabilirsiniz sanırım.
Bundan önce Form'a koyulan editlerin isimlerini kendinize göre düzenleyin.
Mesela AltGiyim kategorisindeki editler AltGiyim1 AltGiyim2 AltGiyim3... gibi isimlendirilmiş olsun.
Burada AltGiyim kategorilerindeki tüm rakamları toplamış olduk. Diğer kategoriler içinde böyle birşey yapıp, en son birinci ana kategori elemanları ile aynı mantıkla çarptırabilirsiniz.Kod: Tümünü seç
var AltGiyimToplam, a : integer; begin AltGiyimToplam := 0; for a := 1 to ComponentCount-1 do begin AltGiyimToplam := AltGiyimToplam + StrToInt(TEdit(FindComponent('AltGiyim'+IntToStr(a))).Text); end; end;
var
UstGiyimToplam, a : integer;
AltGiyimToplam, b : integer;
DisGiyimToplam, c : integer;
AyakkabiToplam, d : integer;
begin
UstGiyimToplam := 0;
AltGiyimToplam := 0;
DisGiyimToplam := 0;
AyakkabiToplam := 0;
for a := 1 to ComponentCount-1 do
begin
UstGiyimToplam := UstGiyimToplam + StrToInt(TEdit(FindComponent('UstGiyim'+IntToStr(a))).Text);
end;
for b := 1 to ComponentCount-1 do
begin
AltGiyimToplam := AltGiyimToplam + StrToInt(TEdit(FindComponent('AltGiyim'+IntToStr(b))).Text);
end;
for c := 1 to ComponentCount-1 do
begin
DisGiyimToplam := DisGiyimToplam + StrToInt(TEdit(FindComponent('DisGiyim'+IntToStr(c))).Text);
end;
for d := 1 to ComponentCount-1 do
begin
AyakkabiToplam := AyakkabiToplam + StrToInt(TEdit(FindComponent('Ayakkabi'+IntToStr(d))).Text);
end;
end;
Yalnız birinci üst giyim kategorisi kombinasyonunda ne demek istediğinizi anlamadım. Siz buna uygun olarak yazabilir misiniz kombinasyon hesabını?
Re: Kıyafet Kombinasyon Programı
Umarım yanlış yapmamışımdır, aşağıdaki gibi dener misiniz.
UstGiyim için yapılan döngüyü silin en alt kısma bunu ekleyin
UstGiyim için yapılan döngüyü silin en alt kısma bunu ekleyin
Kod: Tümünü seç
var
.......
GenelToplam : integer;
begin
......
......
GenelToplam := 0;
for a := 1 to ComponentCount-1 do
begin
GenelToplam := GenelToplam + (StrToInt(TEdit(FindComponent('UstGiyim'+IntToStr(a))).Text) * (AltGiyimToplam * (DisGiyimToplam * AyakkabiToplam)));
end;
-
- Üye
- Mesajlar: 25
- Kayıt: 12 Ara 2013 08:35
Re: Kıyafet Kombinasyon Programı
varAncestor yazdı:Umarım yanlış yapmamışımdır, aşağıdaki gibi dener misiniz.
UstGiyim için yapılan döngüyü silin en alt kısma bunu ekleyin
Kod: Tümünü seç
var ....... GenelToplam : integer; begin ...... ...... GenelToplam := 0; for a := 1 to ComponentCount-1 do begin GenelToplam := GenelToplam + (StrToInt(TEdit(FindComponent('UstGiyim'+IntToStr(a))).Text) * (AltGiyimToplam * (DisGiyimToplam * AyakkabiToplam))); end;
GenelToplam, a : integer;
AltGiyimToplam, b : integer;
DisGiyimToplam, c : integer;
AyakkabiToplam, d : integer;
begin
AltGiyimToplam := 0;
DisGiyimToplam := 0;
AyakkabiToplam := 0;
for b := 1 to ComponentCount-1 do
begin
AltGiyimToplam := AltGiyimToplam + StrToInt(TEdit(FindComponent('AltGiyim'+IntToStr(b))).Text);
end;
for c := 1 to ComponentCount-1 do
begin
DisGiyimToplam := DisGiyimToplam + StrToInt(TEdit(FindComponent('DisGiyim'+IntToStr(c))).Text);
end;
for d := 1 to ComponentCount-1 do
begin
AyakkabiToplam := AyakkabiToplam + StrToInt(TEdit(FindComponent('Ayakkabi'+IntToStr(d))).Text);
end;
GenelToplam := 0;
for a := 1 to ComponentCount-1 do
begin
GenelToplam := GenelToplam + (StrToInt(TEdit(FindComponent('UstGiyim'+IntToStr(a))).Text) * (AltGiyimToplam * (DisGiyimToplam * AyakkabiToplam)));
end;
Label11.Caption:=IntToStr(GenelToplam);
end;
" is not a valid integer value dedi. Edit'e girilenleri sayıya çeviremiyor.
-
- Üye
- Mesajlar: 189
- Kayıt: 30 Eyl 2013 10:17
Re: Kıyafet Kombinasyon Programı
Editlarda sanirim deger girilmeyenler mevcut. o sebeple integer cevirirken edit bosmu degilmi kontrolu yapmalisiniz.