Links und Funktionen
Sprachumschaltung

Navigationspfad


Inhaltsbereich

Lösung5-1

Java source code icon Aufgabe5_1Loesung.java — Java source code, 2 KB (2407 bytes)

Dateiinhalt

public class Aufgabe5_1Loesung {
	/*
	 * Dreicke aus Sternchen drucken.
	 * 
	 * Wir stellen hier 4 verschiedene Varianten zur Lösung der Aufgabe vor,
	 * es gibt sicherlich noch einige mehr.
	 * 
	 * Die Varianten werden zunehmend eleganter, zum Erhalt der vollen Punktzahl
	 * ist die Eleganz jedoch unerheblich.
	 * 
	 * Wichtiger ist, das Ihr Programm richtig funktioniert,
	 * insbesondere in Sonderfällen der Größen 0, 1, 2 und 3.
	 */
	
	public static void main(String[] args) {
		// 
		System.out.println("Wie groß soll Ihr Baum sein? ");
		int baumgroesse = Input.readInt();
		System.out.println();

		// 1. Variante, 2*2 Schleifen für aufsteigende und absteigende Folge
		System.out.println("(Variante 1)");
		for (int i = 1; i <= baumgroesse; i++) {
			for (int j = baumgroesse - i; j < baumgroesse; j++) {
				System.out.print("*");
			}
			System.out.println();
		}
		for (int i = 1; i < baumgroesse; i++) {
			for (int j = i; j < baumgroesse; j++) {
				System.out.print("*");
			}
			System.out.println();
		}

		// 2. Variante, 3 Schleifen plus If-Abfrage
		System.out.println("(Variante 2)");
		for (int i = 1 - baumgroesse; i < baumgroesse; i++) {
			if (i < 0) {
				for (int j = -i; j < baumgroesse; j++) {
					System.out.print("*");
				}
			} else {
				for (int j = i; j < baumgroesse; j++) {
					System.out.print("*");
				}
			}
			System.out.println();
		}

		// 3. Variante, 2 Schleifen plus If-Abfrage
		System.out.println("(Variante 3)");
		for (int i = 1 - baumgroesse; i < baumgroesse; i++) {
			int j = i;
			if (j < 0) {
				j *= -1;
			}
			for (; j < baumgroesse; j++) {
				System.out.print("*");
			}
			System.out.println();
		}

		// 4. Variante, nur 2 Schleifen und etwas umständlicher Berechnung
		System.out.println("(Variante 4)");
		for (int i = 1; i < 2 * baumgroesse; i++) {
			for (int j = 0; j < i - 2 * (i - baumgroesse) * (i / baumgroesse); j++) {
				System.out.print("*");
			}
			System.out.println();
		}

		/* 
		 * 	5. Variante, 2 Schleifen plus UNERLAUBTER Betrag-Funktion,
		 *  als Beispiel wie man es üblicherweise implementieren würde.
		 *  (Verwendet in der Aufgabe unerlaubte Bibliotheksfunktion für Betrag!)
		 */
		System.out.println("(Variante 5)");
		for (int i = 1 - baumgroesse; i < baumgroesse; i++) {
			for (int j = Math.abs(i); j < baumgroesse; j++) {
				System.out.print("*");
			}
			System.out.println();
		}

	}

}

Artikelaktionen


Funktionsleiste