Merhabalar ;
> > 30 -> 15 de arkasından 70 sırayla 25 - 30 - 35 - 40 -45 -50 diyecek
> > sonra ana dişli gurubu 40 a geçecek şekilde mi ?
>
> Hayır. Sıra numarası ile gidiyor. Yani hareket akışı sıra numarasına
> göre ilerliyor. Verdiğim örneğe göre 30 numaralı dişli sıra ile kendi
> grubundan 1. dişlide 70 numaralı dişli tüm serisini sıra ile
> tamamlamalı. Daha sonra 30. dişli grubu ikinci adımına geçmeli ve yine
> 70 numaralı dişli grubu tüm sırasını tamamlamalı... Aslına aynen
> vites... Ekim makinalarındaki tohum diskinin hesabı yapılıyor. Tekerden
> aldığı hareket tohum diskine kadar gidiyor. Arada şanzıman var ve
> şanzımanın bazı yerlerinde birden fazla dişli bulunuyor. Ve duruma göre
> bu dişlilerden hareket iletilebiliyor. Bir resim bulmam şu anda zor ama
> bulursam gönderirim...
Dediğinize göre Dişli Durumu Sıfır olan Dişliler için bir sonraki dişliyi
gösteren ek bir alan daha koymalısınız ilk tablonuza ; yani tablo yapısı şu
şekilde olsa iyi olur gibi;
ANA DİŞLİ TABLOSU
Ana Dişli Gurubu - Dişli Sayısı - Sonraki Dişli Grubu
10 - 15 - 0
20 - 20 - 0
30 - 0 - 70
40 - 40 - 0
50 - 45 - 0
60 - 55 - 0
70 - 0 - 100
80 - 60
90 - 65
100 - 0 - 0
---- ALT DİŞLİ TABLOSU
Ana Dişli Grubu - Alt Gruplar
30 - 15
30 - 20
30 - 25
70 - 35
70- 40
70 - 80
100 - 20
100 - 30
100 - 35
Program akışı da şu şekilde olabilir;
0 - ANA DİŞLİ Tablosundan Dişli Sayısı ve Sonraki Dişli Grubu Oku
1 - Sonraki Dişli Grubu eşit SIFIR ise ve ana Dişli Grubu Sıfırdan büyük ise ;
HESAPLA; ardından 3 e git
2 - Sonraki Dişli Grubu sıfırdan büyük ve Dişli Sayısı SIFIR ise;
a ) ANA Dişli Gruplarının değerlerini al (ALT DİŞLİ TABLOSUNDAN) - Liste1
i oluşturur.
b ) SONRAKİ Dişli Grubunun Değerine göre ALT DİŞLİ TABLOSUNDAN Liste2 yi
oluşturur.
c ) FOR X=0 dan Liste1 sayısında
FOR Y=0 dan Liste2 sayısında
HESAPLA
3- Ana dişli grubunda bir sonraki kayıt değerini al
4 - 0. adıma git (Ana dişli grubundaki kayıtlar bitinceye kadar ....)
Programınız 30 nolu dişliey geldiğinde veri tabanına bakar - Sonraki Dişli
Grubu sıfır ise alt dişli tablosundan bir değer okumaz hesabını yapar.
Dişli Sayısı 0 (sıfır) gördüğünde ALT DİŞLİ tablosundan 30 dişili gurubu için
tüm değerleri i okur. ANA TABLODA Sonraki Dişli Grubu nda 70 görür. 70 için tüm
değerleri veritabanından alır her birisi için hesabı yapar.
Kolay Gelsin.
Zekeriya BOZKURT
PS: Rakamları salladım. :)
NOT : Kullandığınız programlama dilini bilmiyorum. O yüzden kod konusunda
yardımcı olamayacağım :( Ancak şunu belirtmekte fayda var: Liste1 ve Liste2 nin
tuttuğu değişken sayıları farklılık gösteceği için memory Leak yaşamamak için
liste1 ve liste2 dinamik olmalı veya bunları hafızada tutmak yerine geçici
olarak dosyaya yazıp da okuyabilirsiniz.
_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php