public class zettel4 {
	
	public static void main (String[] args) {
		dreieck(4.3f); // liefert alle Dreiecke mit den passenden Anforderungen
		System.out.println(fibrec(2)); // liefert die n-te Fibonacci-Zahl (hier die 7.)
		System.out.println(fibit(2)); // liefert die n-te Fibonacci-Zahl (hier die 7.)
	}
	
	public static int fibrec (int n) {
		if (n==1) return 1; // 1. Fibonacci-Zahl ist per Definition 1
		if (n==0) return 0; // 0. Fibonacci-Zahl ist per Definition 0
		else return (fibrec(n-1) + fibrec(n-2)); // Alle anderen sind Vorgänger+Vor-Vorgänger
	}
	
	public static int fibit (int n) {
		int e=1, a=1, b=1; // Variablen initalisieren, e ist der return-wert, a,b Helfer-Variablen
		if (n==0) return e=0; // 0. Fibonacci-Zahl ist per Definition 0 
		if (n==1) return e=1; // 1. Fibonacci-Zahl ist per Definition 1
		for (int i=3; i<n+1; i++) { // Solange wie i < (n+1): 
			e=a+b;	// Die i. Fibonacci-Zahl ist a+b
			b=a;	// der neue Vor-Vorgänger ist der aktuelle Vorgänger
			a=e;	// der neue Vorgänger ist die aktuelle Fibonacci-Zahl
		}
		return e;
	}

	public static void dreieck (float f) {
		int b=1, a=1;			// Variablen initialisieren
		while (((float)b/2.0f)<=f) {	// Solange Fläche des Dreiecks unter maxWert
			while (((float)(a*b)/2.0f)<=f) { // Solange Fläche des Dreiecks unter maxWert
				System.out.println("noch drin: a="+a+" und b="+b); // Ausgabe
				a++;		// a-Wert inkementieren
			}
			a=1; b++;		// wichtig: a-Wert wieder auf 1 setzen für nächsten Durchlauf mit b++;
		}
	}
}

/*
Aufgabe 1.)
Testlauf:
fibrec(1)=1
fibrec(4)=3
fibrec(7)=13
fibit(0)=0
fibit(3)=2
fibit(8)=6

Aufgabe 2 a)

Beschreibung zur Problemlösung::
Wie viele Dreieecke mit ganzzahligen Katheten-Längen
mit vorgegebenem maximalem Flächenwert es gibt.

Zur Flächenberechnung rechtwinkliger Dreiecke dient die Formel:
(a*b)/2.
Ganzzahlige Kathetenlängen sind vom Typ int, die Fläche und
Zwischenergebnisse können durchaus einen anderen Typ annehmen. Um
Konflikte zu vermeiden wird an der richtigen Stelle nach float
gecastet.
Da es grob geschätzt, mehrere Möglichkeiten gibt, eine Zahl x als
Produkt zweier ganzer Zahlen zu erhalten, scheint eine Schleife
mehr als geeignet, einem die Arbeit abzunehmen.
Wegen zwei Seiten brauchen wir zwei verschachtelte Schleifen, einmal für
Seite a
undeinmal für Seite b, die je um eins hochgezählt werden.
(a*b)/2 soll kleiner gleich der eingegebenen Fläche sein, so lange
wird die Schleife ausgeführt, so lange passt das "generierte"
Dreieck in die angegebene Fläche und die betreffenden Seitenlängen
werden ausgegeben.

Aufgabe 2.b)
Testlauf: dreieck(3)
noch drin: a=1 und b=1
noch drin: a=2 und b=1
noch drin: a=3 und b=1
noch drin: a=4 und b=1
noch drin: a=5 und b=1
noch drin: a=6 und b=1
noch drin: a=1 und b=2
noch drin: a=2 und b=2
noch drin: a=3 und b=2
noch drin: a=1 und b=3
noch drin: a=2 und b=3
noch drin: a=1 und b=4
noch drin: a=1 und b=5
noch drin: a=1 und b=6

Testlauf: dreieck(6)
noch drin: a=1 und b=1
noch drin: a=2 und b=1
noch drin: a=3 und b=1
noch drin: a=4 und b=1
noch drin: a=5 und b=1
noch drin: a=6 und b=1
noch drin: a=7 und b=1
noch drin: a=8 und b=1
noch drin: a=9 und b=1
noch drin: a=10 und b=1
noch drin: a=11 und b=1
noch drin: a=12 und b=1
noch drin: a=1 und b=2
noch drin: a=2 und b=2
noch drin: a=3 und b=2
noch drin: a=4 und b=2
noch drin: a=5 und b=2
noch drin: a=6 und b=2
noch drin: a=1 und b=3
noch drin: a=2 und b=3
noch drin: a=3 und b=3
noch drin: a=4 und b=3
noch drin: a=1 und b=4
noch drin: a=2 und b=4
noch drin: a=3 und b=4
noch drin: a=1 und b=5
noch drin: a=2 und b=5
noch drin: a=1 und b=6
noch drin: a=2 und b=6
noch drin: a=1 und b=7
noch drin: a=1 und b=8
noch drin: a=1 und b=9
noch drin: a=1 und b=10
noch drin: a=1 und b=11
noch drin: a=1 und b=12

Testlauf: dreieck(4.3f)
noch drin: a=1 und b=1
noch drin: a=2 und b=1
noch drin: a=3 und b=1
noch drin: a=4 und b=1
noch drin: a=5 und b=1
noch drin: a=6 und b=1
noch drin: a=7 und b=1
noch drin: a=8 und b=1
noch drin: a=1 und b=2
noch drin: a=2 und b=2
noch drin: a=3 und b=2
noch drin: a=4 und b=2
noch drin: a=1 und b=3
noch drin: a=2 und b=3
noch drin: a=1 und b=4
noch drin: a=2 und b=4
noch drin: a=1 und b=5
noch drin: a=1 und b=6
noch drin: a=1 und b=7
noch drin: a=1 und b=8


3.a)

...

if !Condition1 GOTO w-ende;
w-start:

Statements_inloop_pre-break;

if Condition2 GOTO w-ende;

Statements_inloop_post-break;

if Condition1 GOTO w-start;
w-ende:

...


3.c) 

...

if Condition1 GOTO mark1
if Condition2 GOTO mark2

Statements_default
GOTO c-ende

mark1:
Statements1
GOTO c-ende

mark2:
Statements2
GOTO c-ende

c-ende:

...
*/
































