public class Brøk { //atributter private int tæller; private int nævner;
//Default constructor public Brøk() {
}
//Constructor med parametre public Brøk(int enT, int enN) { //Lader enT være tæller i brøken tæller = enT;
//Lader neN være nævner nævner = enN;
//kalder forkort metoden forkort();
//Tjekker med det samme om nævner er 0, hvis den er skrives der en fejl meddelse. Og programmet stoppes. if(enN == 0) { System.err.println("Nævner må ikke være = 0"); //bruger -1 da det er en fejl. havde det været 1 havde et været vellykket altså ingen fejl System.exit(-1); } }
//her returneres tælleren public int getTæller() { return tæller; }
//her returneres nævneren public int getNævner() { return nævner; }
//her er + public Brøk add(Brøk enB) { return new Brøk(getTæller()*enB.getNævner()+enB.getTæller()*getNævner(),getNævner()*enB.getNævner()); }
//her er - public Brøk subtract(Brøk enB) { return new Brøk(getTæller()*enB.getNævner()-enB.getTæller()*getNævner(),getNævner()*enB.getNævner()); }
//her er * public Brøk multiply(Brøk enB) { return new Brøk(getTæller()*enB.getTæller(),getNævner()*enB.getNævner()); }
//her er / public Brøk divide(Brøk enB) { return new Brøk(getTæller()*enB.getNævner(),getNævner()*enB.getTæller()); }
public boolean equals(Brøk enB) { if (getTæller() == enB.getTæller() && getNævner() == enB.getNævner()) { return true; } return false; }
public int compare(Brøk enB) { double førsteBrøk = (double)getTæller() / (double)getNævner(); double andenBrøk = (double)enB.getTæller() / (double)enB.getNævner();
if (førsteBrøk < andenBrøk) { // den anden brøk vi indtastede er størst return -1; } else if (førsteBrøk > andenBrøk) { // Den første brøk som vi indsatte er størst return 1; } else { // De er ens return 0; } }
//metode der bruges til at forkorte med private void forkort() { //tjekker om tæller eller nævner er mindst int mindst = 0;
//hvis tæller er mindre end nævner sætter vi mindst = tæller if(tæller < nævner) { mindst = tæller; }
if(tæller > nævner) { mindst = nævner; }
if(tæller == nævner) { mindst = nævner; }
int forkort = 1;
for(int i = mindst; i > 1; i--) { if(tæller % i == 0 && nævner % i == 0) { forkort = i; //stop når det største tal er fundet break; } }
super så køre det. hvad skal der til før jeg ved start selv kan vælge om det er den ene eller den anden metode der skal bruges. gerne så jeg fra input kan angive om det er division eller addition osv.
public static void Main(String[] args) { Brøk b = new Brøk(1,2); Brøk c = new Brøk(2,3); Scanner sc = new Scanner(System.in); System.out.println("+ eller - ?"); String metode = sc.nextLine();
if(metode.equals("+") {
Brøk d = b.add( c ); System.out.println("Resultatet er" + d); }else if(metode.equals("-")) { kald din anden metode her.. }
sc.nextLine(); }
og så er det nok smartere med en switch, men det er bare så du kunne se.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.