Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

Javakurs/Übungsaufgaben/MathematischeMethoden/Musterloesung: Unterschied zwischen den Versionen

(Die Seite wurde neu angelegt: „'''Hinweis:''' Die Musterlösung kann von eurer Lösung abweichen, da es immer mehrere Varianten gibt ein Problem zu lösen. Im Zweifelsfall Fragt einen Tutor. =...“)
 
K (fix alignment)
 
(Eine dazwischenliegende Version von einem anderen Benutzer wird nicht angezeigt)
Zeile 2: Zeile 2:
  
 
== Lösung ==
 
== Lösung ==
<nowiki>
+
<pre>
 
/**
 
/**
 
  * @author Andy Gunschl (Freitagsrunde)
 
  * @author Andy Gunschl (Freitagsrunde)
  *
+
  *  
 
  */
 
  */
 
public class MatheAufgabe {
 
public class MatheAufgabe {
 
public static void main(String[] args) {
 
public static void main(String[] args) {
double var = 5.0/3.0;
+
double var = 5.0 / 3.0;
System.out.println("Var = "+var);
+
System.out.println("Var = " + var);
+
 
 
System.out.println("---------TEST - add -------");
 
System.out.println("---------TEST - add -------");
+
 
System.out.println( " 1.0 + 2.0 = " + add ( 1.0 , 2.0 ) );
+
System.out.println(" 1.0 + 2.0 = " + add(1.0, 2.0));
 
double x = 5.0;
 
double x = 5.0;
System.out.println( " " + x + " + 2.0 = " + add ( x , 2.0 ) );
+
System.out.println(" " + x + " + 2.0 = " + add(x, 2.0));
System.out.println( " 2.0 + " + x + " = " + add ( 2.0 , x ) );
+
System.out.println(" 2.0 + " + x + " = " + add(2.0, x));
x = add ( x , 2.0 );
+
x = add(x, 2.0);
System.out.println( x );
+
System.out.println(x);
+
 
 
System.out.println("---------TEST - sub -------");
 
System.out.println("---------TEST - sub -------");
+
 
System.out.println( " 1.0 - 2.0 = " + sub ( 1.0 , 2.0 ) );
+
System.out.println(" 1.0 - 2.0 = " + sub(1.0, 2.0));
 
x = 5.0;
 
x = 5.0;
System.out.println( " " + x + " - 2.0 = " + sub ( x , 2.0 ) );
+
System.out.println(" " + x + " - 2.0 = " + sub(x, 2.0));
System.out.println( " 2.0 - " + x + " = " + sub ( 2.0 , x ) );
+
System.out.println(" 2.0 - " + x + " = " + sub(2.0, x));
x = sub ( x , 2.0 );
+
x = sub(x, 2.0);
System.out.println( x );
+
System.out.println(x);
+
 
 
System.out.println("---------TEST - mul -------");
 
System.out.println("---------TEST - mul -------");
+
 
System.out.println( " 1.0 * 2.0 = " + mul ( 1.0 , 2.0 ) );
+
System.out.println(" 1.0 * 2.0 = " + mul(1.0, 2.0));
System.out.println( " 1.0 * 0.0 = " + mul ( 1.0 , 0.0 ) );
+
System.out.println(" 1.0 * 0.0 = " + mul(1.0, 0.0));
System.out.println( " 0.0 * 2.0 = " + mul ( 0.0 , 2.0 ) );
+
System.out.println(" 0.0 * 2.0 = " + mul(0.0, 2.0));
System.out.println( " 1.0 * -2.0 = " + mul ( 1.0 , -2.0 ) );
+
System.out.println(" 1.0 * -2.0 = " + mul(1.0, -2.0));
System.out.println( " -1.0 * 2.0 = " + mul ( -1.0 , 2.0 ) );
+
System.out.println(" -1.0 * 2.0 = " + mul(-1.0, 2.0));
 
x = 5.0;
 
x = 5.0;
System.out.println( " " + x + " * 2.0 = " + mul ( x , 2.0 ) );
+
System.out.println(" " + x + " * 2.0 = " + mul(x, 2.0));
System.out.println( " 2.0 * " + x + " = " + mul ( 2.0 , x ) );
+
System.out.println(" 2.0 * " + x + " = " + mul(2.0, x));
x = mul ( x , 2.0 );
+
x = mul(x, 2.0);
System.out.println( x );
+
System.out.println(x);
  
 
System.out.println("---------TEST - pow -------");
 
System.out.println("---------TEST - pow -------");
+
 
System.out.println( " 1 ^ 2 = " + pow ( 1 , 2 ) );
+
System.out.println(" 1 ^ 2 = " + pow(1, 2));
System.out.println( " 3 ^ 0 = " + pow ( 3 , 0 ) );
+
System.out.println(" 3 ^ 0 = " + pow(3, 0));
System.out.println( " 0 ^ 2 = " + pow ( 0 , 2 ) );
+
System.out.println(" 0 ^ 2 = " + pow(0, 2));
 
int y = 3;
 
int y = 3;
System.out.println( " " + y + " ^ 2 = " + pow ( y , 2 ) );
+
System.out.println(" " + y + " ^ 2 = " + pow(y, 2));
System.out.println( " 2 ^ " + y + " = " + pow ( 2 , y ) );
+
System.out.println(" 2 ^ " + y + " = " + pow(2, y));
x = pow ( y , 2 );
+
x = pow(y, 2);
System.out.println( x );
+
System.out.println(x);
 
}
 
}
+
 
public static double add(double x, double y){
+
public static double add(double x, double y) {
return x+y;
+
return x + y;
 
}
 
}
+
 
public static double sub(double x, double y){
+
public static double sub(double x, double y) {
return x-y;
+
return x - y;
 
}
 
}
+
 
public static double mul(double x, double y){
+
public static double mul(double x, double y) {
 
double erg = 0.0;
 
double erg = 0.0;
if(y<0){
+
if (y < 0) {
// ich tausche die Variablen da es für die Multiplikation egal ist aber ich mir somit den fall für eine negative Zahl spare
+
// ich tausche die Variablen da es für die Multiplikation egal ist
 +
// aber ich mir somit den fall für eine negative Zahl spare
 
double tmp = x;
 
double tmp = x;
 
x = y;
 
x = y;
 
y = tmp;
 
y = tmp;
 
}
 
}
while(y>0){
+
while (y > 0) {
 
erg = erg + x;
 
erg = erg + x;
y = y-1;
+
y = y - 1;
 
}
 
}
+
 
 
return erg;
 
return erg;
 
}
 
}
+
 
 
/**
 
/**
* Hinweis man kann bestimmt Datentypen in andere umwandeln, dies nennt man cast.
+
* Hinweis man kann bestimmt Datentypen in andere umwandeln, dies nennt man
* Wenn du mehr ueber casten wissen willst informier dich bei einem Tutor oder befrage google
+
* cast. Wenn du mehr ueber casten wissen willst informier dich bei einem
 +
* Tutor oder befrage google
 
*  
 
*  
 
* es gibt sicher auch noch schönere Varianten^^
 
* es gibt sicher auch noch schönere Varianten^^
 
*/
 
*/
public static double pow(int basis,int exponent){
+
public static double pow(int basis, int exponent) {
 
double erg = 0.0;
 
double erg = 0.0;
boolean ergNegativ = false; //damit wir wissen ob der exponent negativ ist.
+
boolean ergNegativ = false; // damit wir wissen ob der exponent negativ
 +
// ist.
  
if(basis != 0){
+
if (basis != 0) {
 
erg = basis;
 
erg = basis;
 
}
 
}
+
 
if(exponent == 0){
+
if (exponent == 0) {
 
return 1;
 
return 1;
 
}
 
}
+
 
if(exponent<0){
+
if (exponent < 0) {
exponent = (int) mul(exponent,-1.0);
+
exponent = (int) mul(exponent, -1.0);
 
ergNegativ = true;
 
ergNegativ = true;
 
}
 
}
while(exponent>1){
+
while (exponent > 1) {
erg = mul(erg,basis);
+
erg = mul(erg, basis);
exponent = exponent -1;
+
exponent = exponent - 1;
 
}
 
}
+
 
if(ergNegativ){
+
if (ergNegativ) {
return 1.0/erg;
+
return 1.0 / erg;
 
} else {
 
} else {
 
return erg;
 
return erg;
 
}
 
}
 
}
 
}
 
 
}
 
}
</nowiki>
+
</pre>
  
 
== Kommentare ==
 
== Kommentare ==
 
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf "bearbeiten" und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)
 
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf "bearbeiten" und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)
 
 
<!--
 
Als kleine Starthilfe folgt ein Beispiel, wie so ein Kommentar formatiert sein könnte. Mit "Vorschau zeigen" kannst du dir ansehen, was deine Änderung bewirken würde, ohne wirklich etwas zu ändern.
 
Du musst übrigens außerhalb dieses auskommentieren Bereichs schreiben ;)
 
-->
 

Aktuelle Version vom 4. März 2013, 09:57 Uhr

Hinweis: Die Musterlösung kann von eurer Lösung abweichen, da es immer mehrere Varianten gibt ein Problem zu lösen. Im Zweifelsfall Fragt einen Tutor.

Lösung

/**
 * @author Andy Gunschl (Freitagsrunde)
 * 
 */
public class MatheAufgabe {
	public static void main(String[] args) {
		double var = 5.0 / 3.0;
		System.out.println("Var = " + var);

		System.out.println("---------TEST - add -------");

		System.out.println(" 1.0 + 2.0 = " + add(1.0, 2.0));
		double x = 5.0;
		System.out.println(" " + x + " + 2.0 = " + add(x, 2.0));
		System.out.println(" 2.0 + " + x + " = " + add(2.0, x));
		x = add(x, 2.0);
		System.out.println(x);

		System.out.println("---------TEST - sub -------");

		System.out.println(" 1.0 - 2.0 = " + sub(1.0, 2.0));
		x = 5.0;
		System.out.println(" " + x + " - 2.0 = " + sub(x, 2.0));
		System.out.println(" 2.0 - " + x + " = " + sub(2.0, x));
		x = sub(x, 2.0);
		System.out.println(x);

		System.out.println("---------TEST - mul -------");

		System.out.println(" 1.0 * 2.0 = " + mul(1.0, 2.0));
		System.out.println(" 1.0 * 0.0 = " + mul(1.0, 0.0));
		System.out.println(" 0.0 * 2.0 = " + mul(0.0, 2.0));
		System.out.println(" 1.0 * -2.0 = " + mul(1.0, -2.0));
		System.out.println(" -1.0 * 2.0 = " + mul(-1.0, 2.0));
		x = 5.0;
		System.out.println(" " + x + " * 2.0 = " + mul(x, 2.0));
		System.out.println(" 2.0 * " + x + " = " + mul(2.0, x));
		x = mul(x, 2.0);
		System.out.println(x);

		System.out.println("---------TEST - pow -------");

		System.out.println(" 1 ^ 2 = " + pow(1, 2));
		System.out.println(" 3 ^ 0 = " + pow(3, 0));
		System.out.println(" 0 ^ 2 = " + pow(0, 2));
		int y = 3;
		System.out.println(" " + y + " ^ 2 = " + pow(y, 2));
		System.out.println(" 2 ^ " + y + " = " + pow(2, y));
		x = pow(y, 2);
		System.out.println(x);
	}

	public static double add(double x, double y) {
		return x + y;
	}

	public static double sub(double x, double y) {
		return x - y;
	}

	public static double mul(double x, double y) {
		double erg = 0.0;
		if (y < 0) {
			// ich tausche die Variablen da es für die Multiplikation egal ist
			// aber ich mir somit den fall für eine negative Zahl spare
			double tmp = x;
			x = y;
			y = tmp;
		}
		while (y > 0) {
			erg = erg + x;
			y = y - 1;
		}

		return erg;
	}

	/**
	 * Hinweis man kann bestimmt Datentypen in andere umwandeln, dies nennt man
	 * cast. Wenn du mehr ueber casten wissen willst informier dich bei einem
	 * Tutor oder befrage google
	 * 
	 * es gibt sicher auch noch schönere Varianten^^
	 */
	public static double pow(int basis, int exponent) {
		double erg = 0.0;
		boolean ergNegativ = false; // damit wir wissen ob der exponent negativ
									// ist.

		if (basis != 0) {
			erg = basis;
		}

		if (exponent == 0) {
			return 1;
		}

		if (exponent < 0) {
			exponent = (int) mul(exponent, -1.0);
			ergNegativ = true;
		}
		while (exponent > 1) {
			erg = mul(erg, basis);
			exponent = exponent - 1;
		}

		if (ergNegativ) {
			return 1.0 / erg;
		} else {
			return erg;
		}
	}
}

Kommentare

Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf "bearbeiten" und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)