/* Add.java
$DATE (12.01.2001)
$AUTH Lars Ehrhardt
$VER 1.0
Dieses Java-Programm realisiert die add-Funktion mittels primitiver Rekursion.
add (x,0) = g(x) = x
add (x, y+1) = h(x,y,add(x,y)) mit h (x,y,z) = succ(z)
*/
public class add {
public static void main (String[] arguments) {
int x, y,w;
x = 0;
y = 10;
w = add(x,y);
if (w < 0)
System.out.println("Fehler: Bitte nur y-Werte <= 0 eingeben!");
else
System.out.println("Die Addition von " + x + " mit " + y +" ist " + w + "!");
}
static int add (int a, int b) {
int z;
if (b < 0)
return(-1); //Fehler: y-Werte < 0 nicht zulässig!
else {
if (b == 0)
return (a);
else {
z = add(a+1, b-1);
return(z);
}
}
}
}
/* Schnittpunkt.java
$DATE (12.01.2001)
$AUTH Lars Ehrhardt
$VER 1.0
Übung 12 - Aufgabe 3:
Berechnen Sie den Schnittpunkt zweier Geraden anhand von Determinanten.
Hintergrundinformationen:
2,2-Matrix [a b]
[c d]
Determinante (a,b,c,d): (a*d)-(b*c)
Eine Gerade wird durch folgende Mathematische Gleichung beschrieben:
a*x + b*y = 0 (wobei a und b != 0 sein müssen!)
Der Schnittpunkt zweier geraden existiert wenn die folgende
Determinantengleichung ungleich 0 ist: (a1*b2) - (b1*a2)
Dann ergibt sich der Schnittpunkt aus:
x = det(c1,b1,c2,b2)/det(a1,b1,a2,b2)
y = det(a1,c1,a2,c2)/det(a1,b1,a2,b2)
Eine Nulldivision kann dabei nicht auftreten da dann die
Geraden parallel oder übereinander liegen!
*/
class Schnittpunkt {
public static void main (String arguments[]){
IsCrossed(1,2,3,4,5,6);
IsCrossed(1,2,3,2,4,6);
} // end main
public static void IsCrossed (int a1, int b1, int c1, int a2, int b2, int c2){
System.out.print("Bei den Werten " + a1 + "," + b1 + ","+ c1 +" und " + a2 +"," + b2 +"," + c2 + " ");
if (det(a1,b1,a2,b2) == 0)
System.out.println("sind die Geraden parallel oder liegen übereinander!");
else {
int x, y;
x = (det(c1, b1, c2, b2) / det(a1, b1, a2, b2));
y = (det(a1, c1, a2, c2) / det(a1, b1, a2, b2));
System.out.println("liegt der Schnittpunkt der beiden Geraden bei (" + x +"," + y + ")!");
} // end else
} // end IsCrossed
public static int det(int a, int b, int c, int d){
return((a*d)-(b*c));
} //end det
} // end class