Teknolog-1 Skrevet 17. september 2012 Del Skrevet 17. september 2012 Hei! Jeg har kjøpt meg boken "Programmering i Java" og har nå kommet til kapittel 6 "Klasser som byggeklosser". Der er det tre programmeringsoppgaver og den første gikk fint. Jeg trenger dog hjelp med de to andre. Jeg sitter helt fast med tanke på programkode, helt jernteppe. Håper en av dere kan hjelpe meg. Her er oppgavetekstene: Oppgave 2 Lag en klasse for å regne med brøk. Klassen skal ha to konstruktører: Den ene konstruktøren tar teller og nevner som argument. Hvis neveneren er 0, skal et unntaksobjekt av typen IllegalArgumentException kastes. Den andre konstruktøren tar kun telleren som argument. Da skal nevneren settes lik 1. Klassen skal ha get-metoder, men ikke set-metoder. Klassen skal ha metoder for å summere, subtrahere, multiplisere og dividere en brøk (this) med en annen brøk (parameter til metoden). Metodene har ikke returverdi, men etter at operasjonen er utført, ligger resultatet i this. Du kan se bort fra at resultatet av opersajonen bør forkortes. Lag en testklient som del av klassen. Ekstraoppgave: Sørg for å forkorte brøkene. Oppgave 3 I oppgave 4 side 178 brukte du klassen java.util.Random. Metoden nextInt() er laget slik at den gir et heltall i intervallet fra og med 0 og opp til den tallverdien du sender inn som argument. Klassen tilbyr også en metode nextDouble() som gir deg et desimaltall uniformt fordelt i intervallet [0,0, 1,0>. Denne metoden tar ingen argumenter. Lag en klasse MinRandom som tilbyr følgende metoder: public int nesteHeltall(int nedre, int ovre) // intervallet [nedre, ovre] public double nesteDesimaltall(double nedre, double ovre) // intervallet <nedre, ovre> Klassen skal ha et objekt av klassen java.util.Random som objektvariabel. Metodene foran skal implementeres ved at man bruker dette objektet til å generere neste tilfeldige tall. Resultatet skal så transformeres til det ønskede intervallet. Prøv klassen ved å lage mange tilfeldige tall av begge typer og forsikre deg om at de ligger i de oppgitte intervallene. På forhånd takk! Lenke til kommentar
Kiff Skrevet 18. september 2012 Del Skrevet 18. september 2012 public class Brok { private int teller; private int nevner; public Brok(int t, int n) { if (n == 0) { throw new IllegalArgumentException("Nevner kan ikke være 0"); } teller = t; nevner = n; } public Brok(int t) { teller = t; nevner = 1; } public int getNevner() { return nevner; } public int getTeller() { return teller; } public void adder(Brok other){ //TODO Implement } public void substraher(Brok other){ //TODO Implement } public void multipliser(Brok other){ //TODO Implement } public void divider(Brok other){ //TODO Implement } } 1 Lenke til kommentar
Kiff Skrevet 18. september 2012 Del Skrevet 18. september 2012 import java.security.SecureRandom; import java.util.Random; public class MinRandom { private final Random random = new SecureRandom(); public int nesteHeltall(int nedre, int ovre) { return nedre + random.nextInt(ovre - nedre); } public double nesteDesimaltall(double nedre, double ovre) { return nedre + (ovre - nedre) * random.nextDouble(); } } 1 Lenke til kommentar
Teknolog-1 Skrevet 18. september 2012 Forfatter Del Skrevet 18. september 2012 Tusen takk, blir irrtert på meg selv da jeg ser hvor nære jeg var. Uansett, takk igjen! Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå