Skip to Content

4.6 Lösungen

4.6.1 Arithmetikmethoden

public class Rechenarten {

    public static double add (double a, double b) {
        return (a+b);
        }
    public static double sub (double a, double b) {
        return (a-b);
        }
    public static double mul (double a, double b) {
        return (a*b);
        }
    public static double div (double a, double b) {
        return (a/b);
        }
    public static int add (int a, int b) {
        return (a+b);
        }
    public static int sub (int a, int b) {
        return (a-b);
        }
    public static int mul (int a, int b) {
        return (a*b);
        }
    public static int div (int a, int b) {
        return (a/b);
        }
    public static void main(String[] args) {
        System.out.println(" 5.0 + 4.0 = " + add(5.0,4.0));
        System.out.println(" 9.0 / 4.0 = " + div(9.0,4.0));
        System.out.println(" 9.0 - 4.0 = " + sub(9.0,4.0));
        System.out.println(" 9.0 / 4.0 + 3.0 = " + add(div(9.0,4.0),3.0));

        System.out.println(" 5 + 4 = " + add(5,4));
        System.out.println(" 9 / 4 = " + div(9,4));
        System.out.println(" 9 - 4 = " + sub(9,4));
        System.out.println(" 9 / 4 + 3 = " + add(div(9,4),3));
    }

4.6.2 Flächenberechnung vom Dreieck

public class l4dreiecksflaeche {
  
    public static double flaeche(double a, double b, double c) {  
        double s = (a + b + c) / 2;
        return Math.sqrt(s * (s - a) * (s - b) * (s - c));
    }
  
    public static double flaeche(double gleicherSchenkel, double basis) {
      return flaeche(gleicherSchenkel, gleicherSchenkel, basis);
    }


public static double flaeche(double gleicheSeite) {
return flaeche(gleicheSeite, gleicheSeite);
}

public static void main(String[] args) {
System.out.println(" 3,4,5 = " + flaeche(3.0, 4.0, 5.0));
System.out.println(" 2*4,5 = " + flaeche(4.0, 5.0));
System.out.println(" 3*3 = " + flaeche(3.0));
}
}

4.6.3 Rekursive Addition und Multiplikation

Multiplikation mit Hilfe einer addierenden for-Schleife:

public class Arithmetik1 {


public static void main(String[] args) {
int a=5;
int b=8;
int c=0;

if (args.length > 1) {
try {
a = Integer.parseInt(args[0]);
b = Integer.parseInt(args[0]);
} catch (NumberFormatException e) {
System.err.println("Argument muss Ganzzahl sein");
System.exit(1);
}
}
System.out.println("Eingabe a: " + a +"; b: " +b);

for (int i=0; i<b; i++) {
c += a;
}



System.out.print("Ergebnis c: " + c);
if (c == a*b)
System.out.println(" (korrekt)");
else
System.out.println(" (falsch. Richtig ist " + (a*b)+")");

}

}

Delegation an eine Methode

public class Arithmetik2 {


public static void main(String[] args) {
int a=5;
int b=8;
int c=0;

if (args.length > 1) {
try {
a = Integer.parseInt(args[0]);
b = Integer.parseInt(args[0]);
} catch (NumberFormatException e) {
System.err.println("Argument muss Ganzzahl sein");
System.exit(1);
}
}
System.out.println("Eingabe a: " + a +"; b: " +b);

c = mult(a,b);

System.out.print("Ergebnis c: " + c);
if (c == a*b)
System.out.println(" (korrekt)");
else
System.out.println(" (falsch. Richtig ist " + (a*b)+")");

}

public static int mult(int x, int y) {
int ergebnis=0;
for (int i=0; i<x; i++) {
ergebnis += y;
}
return ergebnis;
}

}

Eine rekursive Multiplikation

public class Arithmetik3 {


public static void main(String[] args) {
int a=5;
int b=8;
int c=0;

if (args.length > 1) {
try {
a = Integer.parseInt(args[0]);
b = Integer.parseInt(args[0]);
} catch (NumberFormatException e) {
System.err.println("Argument muss Ganzzahl sein");
System.exit(1);
}
}
System.out.println("Eingabe a: " + a +"; b: " +b);

c = mult(a,b);


System.out.print("Ergebnis c: " + c);
if (c == a*b)
System.out.println(" (korrekt)");
else
System.out.println(" (falsch. Richtig ist " + (a*b)+")");

}

/**
* Diese Methode multipliziert zwei Zahlen rekursiv.
* Sie funktioniert nur für x Werte die nicht negativ sind!
* @param x darf nicht negativ sein
* @param y
* @return Ergebnis einer Multiplikation
*/
public static int mult(int x, int y) {
int ergebnis=0;
if (x==0)
ergebnis=0;
else
ergebnis=mult(y,(x-1))+y;

return ergebnis;
}

}

Multiplikation mit rekursiver Addition und Multiplikation

public class Arithmetik4 {


public static void main(String[] args) {
int a=5;
int b=8;
int c=0;

if (args.length > 1) {
try {
a = Integer.parseInt(args[0]);
b = Integer.parseInt(args[0]);
} catch (NumberFormatException e) {
System.err.println("Argument muss Ganzzahl sein");
System.exit(1);
}
}
System.out.println("Eingabe a: " + a +"; b: " +b);

c = mult(a,b);


System.out.print("Ergebnis c: " + c);
if (c == a*b)
System.out.println(" (korrekt)");
else
System.out.println(" (falsch. Richtig ist " + (a*b)+")");

}

/**
* Diese Methode multipliziert zwei Zahlen rekursiiv.
* Sie funktioniert nur für x Werte die nicht negativ sind!
* @param x darf nicht negativ sein
* @param y
* @return Ergebnis einer Multiplikation
*/

public static int mult(int x, int y) {
int ergebnis=0;
if (x==0)
ergebnis=0;
else
ergebnis=add(mult(y,(x-1)),y);

return ergebnis;
}

/**
* Diese Methode addiert zwei Zahlen rekursiv.
* Sie funktioniert nur für x Werte die nicht negativ sind!
* @param x darf nicht negativ sein
* @param y
* @return Ergebnis einer Multiplikation
*/

public static int add(int x, int y) {
int ergebnis=0;
if (y==0)
ergebnis=x;
else {
ergebnis=add(x,(y-1));
ergebnis++;
}

return ergebnis;
}


 



about seo | book