Sumator liczb przeciwnych

Sumator liczb przeciwnych

Program: wypisujący liczby z przedziału 1-17 oraz ich liczby przeciwne po czym je sumuje (od 1 do 10).

Jak w opisie.

Kompilator: Eclipse

Galeria:

Program w akcji.

Kod programu:

Klasa – Main.

public class Main {

    public static void main(String[] args) {

        FabrykaLiczbNaturalnych cos=new FabrykaLiczbNaturalnych();
        cos.gen(15);
        FabrykaLiczbUjemnych cos2=new FabrykaLiczbUjemnych();
        cos2.gen(-15);
        SumatorPrzeciwnych cos3= new SumatorPrzeciwnych();
        cos3.gen(10);

        for(int i=0;i<1000;i++)
            new Thread(new SumatorPrzeciwnych()).start();
    }
}

Klasa – FabrykaLiczb.

public abstract class FabrykaLiczb {

    private Integer liczbaPoczatkowa;
    private Integer liczbaAktualna;

    public abstract Integer produkujLiczbe();

    public FabrykaLiczb(Integer liczbaPoczatkowa) {
        this.liczbaPoczatkowa = liczbaPoczatkowa;
        this.liczbaAktualna = liczbaPoczatkowa;
    }

    public FabrykaLiczb() {
        this.liczbaPoczatkowa = 0;
        this.liczbaAktualna = 0;
    }

    public Integer getLiczbaPoczatkowa() {
        return liczbaPoczatkowa;
    }

    public Integer getLiczbaAktualna() {
        return liczbaAktualna;
    }

    protected void setLiczbaAktualna(Integer liczbaAktualna) {
        this.liczbaAktualna = liczbaAktualna;
    }
}

Klasa – FabrykaLiczbNaturalnych.

public class FabrykaLiczbNaturalnych extends FabrykaLiczb{

    @Override
    public Integer produkujLiczbe() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public int zmiennapocz;
    public int zmiennakon;

    public FabrykaLiczbNaturalnych(){
       this.zmiennapocz=1;
       this.zmiennakon=1;
    }

    public int getZmiennapocz() {
        return zmiennapocz++;
    }

    public void gen(int x)
    {
        for(int i=1;i<=x;i++)
            System.out.println(getZmiennapocz());
    }
}

Klasa – FabrykaLiczbUjemnych.

public class FabrykaLiczbUjemnych extends FabrykaLiczb{

     @Override
    public Integer produkujLiczbe() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public int zmiennapocz;
    public int zmiennakon;

    public FabrykaLiczbUjemnych(){
       this.zmiennapocz=-1;
       this.zmiennakon=-1;
    }

    public int getZmiennapocz() {
        return zmiennapocz--;
    }

    public void gen(int x)
    {
        for(int i=1;i>=x;i--)
            System.out.println(getZmiennapocz());
    }
}

Klasa – SumatorPrzeciwnych.

public class SumatorPrzeciwnych implements Runnable{

    FabrykaLiczbNaturalnych cos=new FabrykaLiczbNaturalnych();
    FabrykaLiczbUjemnych cos2=new FabrykaLiczbUjemnych();
    int a,b,suma;
    public void gen(int x)
    {
        for(int i=1;i<=x;i++)
        {
            a=cos.getZmiennapocz();
            b=cos2.getZmiennapocz();
            suma=a+b;
            System.out.println(a+" "+b+" "+" "+suma);         
        }
    }

    public void run() {
        gen(1);
    }
}