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

Cevap