1143


Algosy ćwiczenia nr1

Temat. Iterator

Interface Iterator

{

void first();

void last();

void next();

void previous();

boolean isDone();

Object current();

}

Fibonacci:

Fn = 1 for n<2 or F(n-1)+F(n-2) for n>=2

Class FibIter implements Iterator{

int kon, i, f, f1,f2;

boolean isDone()

{ return i>=kon; }

FibIter (int n)

{

kon=i=n;

}

FibIter (int n)

{

if (!isDone())

{

kon=n;

i=1;

f2=1;

}

void first()

{

f=0;

i=0;

f1=0;

}

void next ()

{

i++;

f2=f1;

f1=f;

f=f1+f2;

}

}

//liczby pierwsze

class PrimeIter implements Iterator{

int poc, kon, pier;

boolean isDone()

{ return pier>kon; }

PrimeIter (int poc; int kon)

{

this.poc=poc;

this.kon=kon;

pier=k+1;

}

boolean isPrime(int k)

{

if (k<4) return true;

else

{

int i=3;

while (i*i<k && k%i !=0)

i+=2;

return i*i>k;

}

}

void next()

{

pier++;

while (!isPrime(pier))

pier++

}

void first()

{

pier=poc-1;

while (!isPier(++pier));

}

//iterator co udostępnia kolejne dzielniki pierwsze

class DivIter implements Iterator{

int liczba, dz;

boolean isDone()

{ return liczba==1; }

DivIter (int k)

{

liczba=k;

dz=k+1;

}

void nextDiv()

{

while (k%dz!=0)

dz++;

}

void first ()

{

dz=2;

nextDiv();

}

void next()

{

k=k/dz;

if (k>1) nextDiv();

}

----koniec pierwszych ćwiczeń----



Wyszukiwarka

Podobne podstrony:
1143
1143
1143
1143
1143
1143
1143
1143
LP3 2003 OD NOT 1092 DO NOT 1143
tsd 1143
1143
1143 When The Saints Go Marching In (Marsz) partytura
manual A 1143 ANG
rozporządzenie 1143 2014

więcej podobnych podstron