# Argumenten Problem



## ShuShu (22. Dez 2011)

Erstellen Sie im Folgenden ein Programm, das einen Teppich incl. Fransen auf der Konsole
malt. Verwenden Sie bei Bedarf statische Methoden, um Ihr Programm zu strukturieren und
Redundanzen zu vermeiden.
a) Legen Sie eine ausführbare Klasse namens Carpet.java an. Lesen Sie in deren
Hauptprogramm zwei ganze Zahlen für die Teppichgröße von der Konsole ein.
b) Implementieren Sie eine Methode printCarpet(), die als Parameter die Länge und die
Breite des Teppichs empfängt und den Teppich auf der Konsole ausgibt, repräsentiert
durch ein entsprechendes Rechteck, das aus dem Zeichen # gebildet wird.
Für einen Teppich mit den Größenangaben 4 und 8 soll das Ergebnis wie folgt aussehen:
####
####
####
####
####
####
####
####
Tipp:
Verwenden Sie zwei ineinander geschachtelte Schleifen. Die innere steuert die Ausgabe
einer Zeile, während die äußere Schleife dagegen die benötigte Anzahl an Zeilen
untereinander ausgibt.
c) Modifizieren Sie Ihr Programm so, dass der Teppich immer so ausgegeben wird, dass die
längere Richtung horizontal verläuft.
Für einen Teppich mit den Größenangaben 4 und 8 soll das Ergebnis wie folgt aussehen:
########
########
########
########
d) Erweitern Sie Ihren Teppich an den Schmalseiten um Fransen der Form --. Ein Teppich
mit gerader Anzahl von Zeilen hat in jeder Zeile eine Franse, ein Teppich mit ungerader
Anzahl von Zeilen nur jeweils in den ungeraden Zeilen.
Für einen Teppich mit den Größenangaben 4 und 8 soll das Ergebnis wie folgt aussehen:
--########--
--########--
--########--
--########--
Für einen Teppich mit den Größenangaben 3 und 8 soll das Ergebnis wie folgt aussehen:
--########--
########
--########--
e) Testen Sie Ihr Programm für Teppiche mit den Größenangaben 20 und 4 bzw. 17 und 50.


Hey ihr lieben Das ist eine Aufgabe die ich bearbeiten sollte;D habe ich jetzt auch gemacht 

nur weiß ich grade nicht wie ich das mit diesen Größenangaben anstellen soll:S

Ich arbeite mit Eclipse und gebe bei den Argumenten zb 4 ein, aber dann kommt nur 4 x 4 teppich und z.B.: nicht 4 x8.

Hoffe ihr könnt mir helfen


----------



## ShuShu (22. Dez 2011)

public static void main(String[] args) {


			/** Initialisierung der Variablen für Länge und Breite
			 *  @param column des Teppichs.
			 *  @param Spalte Zeile des Teppichs.
			 */
			int column = Integer.parseInt(args[0]);
			int row = Integer.parseInt(args[1]);

			// Wenn  Breite größer ist als Länge,dann sollen diese vertauscht werden (Erste Breite dann Länge)
			// temp als Zwischenspeicher

			if (row > column) {
				int temp = row;
				row = column;
				column = temp;
			}

			// Schleife die den Teppich ausgibt
			for (int i = 1; i <= row; i++) {
				System.out.println();
				//Hilfsmethode
				printfranzen(i, row);

				for (int j = 1; j <= column; j++) {
					System.out.print("#");
					//Hilfsmethode 
				}printfranzen(i, row);
			}
		}


		/** Hilfsmethode mit Abfrageanweisung für Ausgabe der Fransen.*/

		public static void printfranzen(int i, int row) {
		if(row%2 == 0)
			System.out.print("--");
		else {
			if (i%2 == 0)
				System.out.print("  ");
			else
				System.out.print("--");
		}
	}
}


----------



## Final_Striker (22. Dez 2011)

ist dir dieser dicker roter Hinweis nicht zufällig aufgefallen?

*Java™ Quelltext ist bitte in [ JAVA]-Tags zu schreiben: [ JAVA]hier Java Code einfügen[ /JAVA]*


----------



## ShuShu (22. Dez 2011)

Also ich bin ja nicht hohl und wenn ich eine Ahnung hätte wie ich das dann anstellen soll, würde ich wohl kaum fragen


----------



## Fab1 (22. Dez 2011)

er meint dein Quellcode soll so aussehen


```
public class Test {

	public static void main(String[] args) {

		/**
		 * Initialisierung der Variablen für Länge und Breite
		 * 
		 * @param column
		 *            des Teppichs.
		 * @param Spalte
		 *            Zeile des Teppichs.
		 */
		int column = Integer.parseInt(args[0]);
		int row = Integer.parseInt(args[1]);

		// Wenn Breite größer ist als Länge,dann sollen diese vertauscht werden
		// (Erste Breite dann Länge)
		// temp als Zwischenspeicher

		if (row > column) {
			int temp = row;
			row = column;
			column = temp;
		}

		// Schleife die den Teppich ausgibt
		for (int i = 1; i <= row; i++) {
			System.out.println();
			// Hilfsmethode
			printfranzen(i, row);

			for (int j = 1; j <= column; j++) {
				System.out.print("#");
				// Hilfsmethode
			}
			printfranzen(i, row);
		}
	}

	/** Hilfsmethode mit Abfrageanweisung für Ausgabe der Fransen. */

	public static void printfranzen(int i, int row) {
		if (row % 2 == 0)
			System.out.print("--");
		else {
			if (i % 2 == 0)
				System.out.print(" ");
			else
				System.out.print("--");
		}
	}
}
```

Ich versteh allerdings deine Frage nicht ganz  wenn ich 2 Parameter in der Kommandozeile übergebe dann passiert etwas. Einen soll man ja nicht übergeben, oder habe ich da was übersehen?


----------



## ShuShu (22. Dez 2011)

Also ich würde gerne wissen wie ich diesen Teppich zb in den Maßen 20 x 4 auf der Konsole ausgebe?

Das mit den Argumenten versteh ich noch nicht so ganze:S:$


----------



## Fab1 (22. Dez 2011)

ganz einfach in dem du in eclipse auf Run --> Run Configurations gehst und anschließend bei dem Registerblatt Arguments folgendes eingibst "4 20" ohne die "" einfach mit einem Leerzeichen getrennt, so werden 2 Argumente übergeben


----------



## ShuShu (22. Dez 2011)

oh man, ich hatte halt mal so ne ähnlich Aufgabe mit 2 Argumenten, habe das dann auch so gemacht, ging dann nicht hab dann gedacht das geht vllt anders aber dann war wohl irgendwas falsch habe es dann ganz anders gemacht 

Vielen lieben dank Fab1


----------



## Jango (22. Dez 2011)

Final_Striker hat gesagt.:


> ist dir dieser dicker roter Hinweis nicht zufällig aufgefallen?
> 
> *Java™ Quelltext ist bitte in [ JAVA]-Tags zu schreiben: [ JAVA]hier Java Code einfügen[ /JAVA]*





ShuShu hat gesagt.:


> Also ich bin ja nicht hohl und wenn ich eine Ahnung hätte wie ich das dann anstellen soll, würde ich wohl kaum fragen



Hahahaha... 

Schonmal darüber nachgedacht, dass damit gemeint ist, den Quelltext in Tags zu packen?
Wegen der Hohlheit... *räusper*


----------



## ShuShu (22. Dez 2011)

OOOH MANN!!

Ich bin Anfängerin und kein Nerd... ich muss doch nicht alles verstehen oder? Deshalb habe ich die Frage gestellt?!?! Logisch oder? Und der einzige der wirklich Helfen konnte war Fab1 und fertig... und mit Hohl meinte ich.. das mir der rote Hinweis schon aufgefallen ist...ayayayay


----------

