Aşağıdaki gibi bir algoritma işinizi görür sanırım.Hatalar olmuş
olabilir.Metin editöründe yazdım ve derleyip test etmedim.Aslında basit bir
mantığı var.Ama yine de anlamadığınız yer olursa buradan cevaplayayım.Olayın
odak noktası ise basit.Kalın olarak yazdırdığım özyinelemeli çağırım işin
püf noktası*


public class DDisli{
    int sıra no;
    int drupDisliAdedi;
    int grupDisliSayisi[];
}
public class Disli{
    int anadisli[] = new int[m]
    DDisli dDisli[] = new DDisli[n]
    intSgrup=0;

    private void doldur(){
        //sırasıyla
        //1-1. tablodaki disli sayısı 0 olan dislilerin sıra numaraları
anaDisli tablosunu doldurur
        //2-2. tablodaki kaynak sıra no lar gruplanarak dDisli dizisine
atılır
        //Mesela sizin örneğinize göre dDisli dizisinde iki eleman olacak
        //birinci elemanın içindeki nesnenin sıra numarası 30 grup disli
sayısı dizisinin içi ile sırasıyla 15,20,25
        //ikinci elemanın içindeki nesnenin sıra numarası 70 grup disli
sayısı dizisinin içi ile sırasıyla 25,30,35,40,45,50 olacak
    }

    private void hesapla(int disli_sayisi){
    //hesaplama
    }
    public int mainLoop(){
        doldur();
        diziIsle(0);
        return 0;

    }
    private void diziIsle(int z){
        int i=0;
        if(z!=m){
            hesapla(anadisli[z])
            i++;
            intSgrup ++;
            diziIsle(z+1)
        }
        for(j=i;j<dDisli[intSgrup].grupDisliAdedi;i++){
            hesapla(dDisli[intSgrup].grupDisliSayisi[j]);
        }
        return;
    }
}*


20 Ekim 2011 22:27 tarihinde Mucibirahman İLBUĞA <[email protected]>yazdı:

> 20-10-2011 22:21 tarihinde, Zekeriya Bozkurt yazdı:
> > 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 ....)
> Merhabalar,
> Dişli gruplarının sayısı her zaman iki olmayabilir :) Bu durumda iç içe
> FOR döngülerinden yararlanamayız. :)
>
> --
> Kolay gelsin,
> Mucip:)
>
> _______________________________________________
> Linux-programlama mailing list
> [email protected]
> https://liste.linux.org.tr/mailman/listinfo/linux-programlama
> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>
_______________________________________________
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