Du er ikke logget inn. Så lenge du ikke er logget inn går du glipp av muligheten for å holde styr på din egen progresjon.

Logg inn

Valgte tags:

Filtrering:

Skriv ut:

02.1 Grensesnitt for geometriske former

a) Vi skal lage et grensesnitt for geometriske former. Dokumentasjonen er gitt:

/**
* Grensesnittet <code>Figur</code> gir metoder for å
* beregne areal og omkrets.
*/
???

    /**
    * Beregner en figurs areal.
    * @return figurens areal.
    */
    ???

    /**
    * Beregner en figurs omkrets.
    * @return figurens omkrets.
    */
    ???
}

Skriv grensesnittet i henhold til dokumentasjonen.

b) Lag klassene Kvadrat og Sirkel.

Start med å skrive en klasse Kvadrat. Et kvadrat har en sidelengde som er av typen
double, og denne skal være deklarert private. Kvadrat skal ha to offentlige metoder,
en til å beregne omkrets, og en til å beregne areal.

Skriv en klasse Sirkel, denne kan være helt tilsvarende Kvadrat, men skal ha en radius istedenfor sidelengde.

(Hint: i Java kan vi bruke Math.PI som en god tilnærming til π.)

Utvid disse til å implementere grensesnittet fra deloppgave a.

c) Vi kan finne summen av arealet og omkretsen til alle kvadrater og sirkler slik:

public class Test {

    public static void main(String[] args) {

        Kvadrat[] kvadrater = {new Kvadrat(1), new Kvadrat(2), new Kvadrat(3)};
        Sirkel[] sirkler = {new Sirkel(4), new Sirkel(5), new Sirkel(6)};

        double totaltAreal = 0, totalOmkrets = 0;
        for (Kvadrat k : kvadrater){
            totaltAreal += k.areal();
        }
        for (Kvadrat k : kvadrater){
            totalOmkrets += k.omkrets();
        }
        for (Sirkel s : sirkler){
            totaltAreal += s.areal();
        }
        for (Sirkel s : sirkler){
            totalOmkrets += s.omkrets();
        }
        System.out.println("totaltAreal:\t" + totaltAreal);
        System.out.println("totalOmkrets:\t" + totalOmkrets);
    }
}

Skriv om programmet slik at en kun bruker én for-each løkke. Programmet skal gi følgende utskrift:

totaltAreal: 255.9026343264141
totalOmkrets: 118.2477796076938