All pastes #282675 Raw Edit

Unnamed

public text v1 · immutable
#282675 ·published 2006-12-17 20:04 UTC
rendered paste body
OppgaveA
Klassen Naeringsmiddel skal ha tre objektvariabler for å lagre hhv. antall gram karbohydrater, proteiner og fett i hundre gram av næringsmiddelet. Lag en konstruktør. Lag tre finnmetoder. Eksempel: Et brødobjekts objektvariabler vil inneholde hhv. 60, 8 og 1.

class Naeringsmiddel {
  public static final double kcalPerGramKarbohydrat = 3.75;
  public static final double kcalPerGramProtein = 4;
  public static final double kcalPerGramFett = 9;
  private double karbohydrater; // i gram per 100 gram matvare
  private double proteiner; // i gram per 100 gram matvare
  private double fett; // i gram per 100 gram matvare

  public Naeringsmiddel(double startKarbohydrater, double startProteiner,
      double startFett) {
    karbohydrater = startKarbohydrater;
    proteiner = startProteiner;
    fett = startFett;
  }

  public double finnKarbohydrater() {
    return karbohydrater;
  }

  public double finnProteiner() {
    return proteiner;
  }

  public double finnFett() {
    return fett;
  }
OPPGAVE B
Lag en Naeringsmiddel-metode finnKcalIKarbohydrater() som returnerer antall kcal i karbohydratene i hundre gram av næringsmiddelet. Lag også lignende metoder for proteiner og fett. Eksempel: For brød skal finnKcalIKarbohydrater() returnere 225 kcal fordi 60 * 3,75 = 225 (det er 60 gram karbohydrater i hundre gram brød, og hvert gram karbohydrat inneholder 3,75 kcal).

  public double finnKcalIKarbohydrater() {
    return karbohydrater * kcalPerGramKarbohydrat;
  }

  public double finnKcalIProteiner() {
    return proteiner * kcalPerGramProtein;
  }

  public double finnKcalIFett() {
    return fett * kcalPerGramFett;
  }
OPPGAVE C
Lag en Naeringsmiddel-metode finnKcalTotalt() som returnerer totalt antall kcal i hundre gram av næringsmiddelet. Eksempel: Hundre gram brød inneholder 266 kcal fordi når vi summerer kcal i hhv. karbohydrater, proteiner og fett får vi 60 * 3,75 + 8 * 4 + 1 * 9 = 225 + 32 + 9 = 266. 

  public double finnKcalTotalt() {
    return finnKcalIKarbohydrater() + finnKcalIProteiner() + finnKcalIFett();
  }
} // Naeringsmiddel

OPPGAVE D
Du skal nå lage en klasse Matrett som skal representere et visst kvantum av et næringsmiddel. F.eks. kan femti gram brød anses som en matrett. 
Klassen Matrett skal ha to objektvariabler: En objektvariabel av type Naeringsmiddel og en objektvariabel for matrettens vekt (i gram). Lag en Matrett-konstruktør. Lag en finnmetode for vekten.


class Matrett {
  private Naeringsmiddel innhold;
  private double vekt; // i gram

  // Velger her at karbohydrater etc. må oppgis for 100 gram av næringsmiddelet
  public Matrett(double startKarbohydrater, double startProteiner, double startFett,
      double startVekt) {
    innhold = new Naeringsmiddel(startKarbohydrater, startProteiner, startFett);
    vekt = startVekt;
   }


  public double finnVekt() {
    return vekt;
  }
OPPGAVE E
Lag en Matrett-metode settVekt() som gjør det mulig å endre matrettens vekt. 

  public void settVekt(double nyVekt) {
    vekt = nyVekt;
  }

OPPGAVE F
Lag en Matrett-metode finnKarbohydrater() som returnerer antall gram karbohydrater i matretten. Tips: Karbohydratinnholdet i hundre gram av næringsmiddelet er kjent, - del denne kjente størrelsen på hundre og gang med vekten; f.eks. er det 30 gram karbohydrater i 50 gram brød - (60 / 100) * 50 = 30. Lag også lignende metoder for proteiner og fett.

  public double finnKarbohydrater() {
    return innhold.finnKarbohydrater() / 100 * vekt;
  }

  public double finnProteiner() {
    return innhold.finnProteiner() / 100 * vekt;
  }

  public double finnFett() {
    return innhold.finnFett() / 100 * vekt;
  }
OPPGAVE G
Lag en Matrett-metode public Matrett bland(Matrett annen): Ved å blande sammen matretten med den matretten som er representert ved annen-objektet, skal man lage en ny matrett, og denne nye matretten skal returneres. Eksempel: 50 gram brød med 5 gram olivenolje er en ny matrett på 55 gram og med et visst energiinnhold.

  // Blander sammen to matretter til en ny matrett
  public Matrett bland(Matrett annen) {
    double fraNyVektTil100Gram = 100 / (vekt + annen.finnVekt());

    double sumKarbohydrater = finnKarbohydrater() + annen.finnKarbohydrater();
    double karbohydraterINyttNaeringsmiddel = sumKarbohydrater * fraNyVektTil100Gram;

    double sumProteiner = finnProteiner() + annen.finnProteiner();
    double proteinerINyttNaeringsmiddel = sumProteiner * fraNyVektTil100Gram;

    double sumFett = finnFett() + annen.finnFett();
    double fettINyttNaeringsmiddel = sumFett * fraNyVektTil100Gram;

    return new Matrett(karbohydraterINyttNaeringsmiddel,
        proteinerINyttNaeringsmiddel, fettINyttNaeringsmiddel,
        vekt + annen.finnVekt());
  }
} // Matrett



// Ekstra klasse:
class MatrettTest {
  public static void main(String[] args) {
    Naeringsmiddel broed100 = new Naeringsmiddel(60, 8, 1);
    System.out.println("Kcal fra karbohydrater i brød: "
        + broed100.finnKcalIKarbohydrater());
    System.out.println("Kcal fra proteiner i brød: " + broed100.finnKcalIProteiner());
    System.out.println("Kcal fra fett i brød: " + broed100.finnKcalIFett());
    System.out.println("Kcal totalt i brød: " + broed100.finnKcalTotalt());
    System.out.println();

    Matrett broed = new Matrett(60, 8, 1, 50);
    System.out.println("50 gram broed inneholder karbohydrater: " + broed.finnKarbohydrater());
    System.out.println("50 gram broed inneholder proteiner: " + broed.finnProteiner());
    System.out.println("50 gram broed inneholder fett: " + broed.finnFett());
    System.out.println();

    Matrett olje = new Matrett(0, 0, 100, 5);
    System.out.println("5 gram olje inneholder karbohydrater: " + olje.finnKarbohydrater());
    System.out.println("5 gram olje inneholder proteiner: " + olje.finnProteiner());
    System.out.println("5 gram olje inneholder fett: " + olje.finnFett());
    System.out.println();

    Matrett bruschetta = broed.bland(olje);
    System.out.println("Broed med olje veier " + bruschetta.finnVekt());
    System.out.println("Broed med olje inneholder karbohydrater: " + bruschetta.finnKarbohydrater());
    System.out.println("Broed med olje inneholder proteiner: " + bruschetta.finnProteiner());
    System.out.println("Broed med olje inneholder fett: " + bruschetta.finnFett());
  }
} // MatrettTest