Quadrat mit Diagonalen ausgeben

Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Moin Leute, ich hab folgende(s) Aufgabe(Problem):

Erstelle ein Programm, das auf dem Bildschirm ein Quadrat mit Diagonalen mit Zeichen ausgibt. Die Seitenlänge soll dabei im Vorfeld eingegeben werden (auf sinnvolle Bereiche einschränken).

Bisheriger Quelltext:



Code:
public static void main(String[] args)
	{
		try
		{
			int sideA = readSideA();
			String bla = square(sideA);
		}//end try
		catch(IOException ex)
		{
			System.out.println("Fehler beim Einlesen");
		}//end catch
		catch(NumberFormatException nfe)
		{
			System.out.println("Das ist keine Zahl");
		}//end catch
	}//end main
	
	public static int readSideA()
					throws IOException
	{
		BufferedReader userIn =
			new BufferedReader(  
	 		new InputStreamReader( System.in ));
	 		
	 	String readA = "";
		int sideA = 0; 	
	 	System.out.print("Bitte geben sie die Länge für seite a ein: ");
	 	readA = userIn.readLine();
	 	sideA = Integer.parseInt( readA );
 	
	 	return sideA;
	}//end readSideA

	public static String square(int sideA)
	{
		String bla = "";
		
		for ( int i = 1; i <= sideA; i++ ) 
		{ 
			for ( int j = 1; j <= sideA; j++ ) 
			{
				System.out.print( "*" );
			}
		
		
			for ( int k = 1; k <= (sideA - (sideA - 1)); k++ ) 
			{
				System.out.println( "*" );
			} 
						
			System.out.println(); 
		}
		
		return bla;
	}//end square


Meine Frage ist jetzt: Wie kann ich, möglichst einfach realisieren das für die eingegeben Seitenlänge die diagonalen gezeichnet werden, bzw weise wie kann ich es machen, das der Stern(*) bis zur mitte, pro zeile immer um eine Position verschoben wird und dann wieder zurück.

Ich erwarte keine Lösung sondern nur den ein oder anderen Denkanstoß.

Danke schonmal im vorraus
 
S

SlaterB

Gast
du hast x Zeilen, die du einer nach der anderen zeichnen musst,
erst malst du dir auf Papier auf, wie sie aussehen soll, dann ein Programm dazu

Zeile 1: ***************
Zeile 2: **---------------------
Zeile 3: *-*--------------------
Zeile 4: *--*-------------------
Zeile 5: *---*------------------
Zeile 6: *----*-----------------

Zeile 1 ist eh ein Sonderfall, bei Zeile 2-6 siehst so aus:
Zeile 2: String, kein Leerzeichen, Stern
Zeile 3: String, 1 Leerzeichen, Stern
Zeile 4: String, 2 Leerzeichen, Stern
Zeile 5: String, 3 Leerzeichen, Stern
Zeile 6: String, 4 Leerzeichen, Stern

du hast doch die Zeilennummer,
dann programmierst du einfach
Stern, (Zeilennummer-2) Leerzeichen, Stern
und dein Programm arbeitet für alle Zeilen korrekt,

das ist nur ein vereinfachtes Beispiel ohne zweite Diagonale und Ende,
die Zeilennummern können anders sein, der Leerzeichenabstand größer,
aber das Prinzip sollte klar sein:
überlege dir, wie jede Zeile aussehen muss und leite dann von
bekannten Zahlen (wie Zeilen-/ Spaltennummer) ab, was zu zeichnen ist
 
S

SlaterB

Gast
noch eine Arbeitserleichterung:
wenn du noch 30x testen willst, was dein Programm ausgibt,
dann willst du doch nicht jedesmal 'eine Länge für seite a eingeben'

setze im Programm in der Testphase
int sideA = 10;
und gut ist ;)
 
G

gast

Gast
hier nun die lösung des problems:

Code:
public class DrawSquare
{
	public static void main(String[] args)
	{
		try
		{
			int size = readSize();
			String line = getLine(size);
			System.out.println(line);
			square(size);
			System.out.println(line);
		}//end try
		catch(IOException ex)
		{
			System.out.println("Fehler beim Einlesen");
		}//end catch
		catch(NumberFormatException nfe)
		{
			System.out.println("Das ist keine natürlich Zahl");
		}//end catch
	}//end main
	
	public static int readSize()
					throws IOException
	{
		BufferedReader userIn =
			new BufferedReader(  
	 		new InputStreamReader( System.in ));
	 		
	 	String read = "";
		int size = 0; 	
	 	System.out.print("Bitte geben sie die Länge für seite a ein (max. 80): ");
	 	read = userIn.readLine();
	 	size = Integer.parseInt( read );
	 	if(size > 80)
	 	{
	 		System.out.println("Zahl zu gross");
	 		System.exit(0);
	 	}
 	
	 	return size;
	}//end readSideA

	public static void square(int size)
	{	
		String line;
		int diaPos1 = 0;
		int diaPos2 = 0;
		
		for ( int i = 1; i < size - 1; i++ ) 
		{ 

			diaPos1 = i;
			diaPos2 = size - i - 1;
			line = getInnerLine(size, diaPos1, diaPos2);
//			line[diaPos1] = '*';
//			line[diaPos2] = '*';
			System.out.println(line); 
//			System.out.println(diaPos1 + " - " + diaPos2);

		}

	}//end square
	
	public static String getLine(int size)
	{
		String line = "";
		for(int i = 0; i < size; i++)
		{
			line += "*";
		}//end for
		
		return line;
	}//end getLine
	
	public static String getInnerLine(int size, int diaPos1, int diaPos2)
	{
		String innerLine = "";
		
		for(int i = 0; i < size; i++)
		{
			if((i == 0) || (i == size - 1) || (i == diaPos1) || (i == diaPos2))
			{
				innerLine += "*";
			}//end if
			else
			{
				innerLine += " ";
			}//end else	
		}//end for
		
		return innerLine;	
	}//end getInnerLine
}//end class
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Quadrat mit Diagonalen Java Basics - Anfänger-Themen 3
Ü Methode soll Quadrat aus der Summer zurückgeben Java Basics - Anfänger-Themen 10
MaZ Quadrat Schleife(Pyramide) Java Basics - Anfänger-Themen 9
xXDasFischXx quadrat Java Basics - Anfänger-Themen 1
F Quadrat Mit Muster Java Basics - Anfänger-Themen 15
J Einfaches Quadrat auf der Console ausgeben lassen Java Basics - Anfänger-Themen 7
K Erste Schritte Nenner zum Quadrat Java Basics - Anfänger-Themen 10
M Quadrat zeichnen einfach bitte! Java Basics - Anfänger-Themen 2
C Input/Output Magisches Quadrat Rechts Formatieren Java Basics - Anfänger-Themen 4
S math Methoden in Java (quadrat) Java Basics - Anfänger-Themen 7
F Das magische Quadrat Java Basics - Anfänger-Themen 8
J Negatives Quadrat bei hohen Basen Java Basics - Anfänger-Themen 11
L Magisches Quadrat und Backtracking Java Basics - Anfänger-Themen 19
S Magisches Quadrat Java Basics - Anfänger-Themen 9
F Rechteck/Quadrat getroffen? Java Basics - Anfänger-Themen 2
K Rechteck/Quadrat Java Basics - Anfänger-Themen 5
P Quadrat und Wurzel HILFE!!!!! Java Basics - Anfänger-Themen 13
T Quadrat mit Array?? Java Basics - Anfänger-Themen 9
G Quadrat in Java Java Basics - Anfänger-Themen 9
J Quadrat mit variabler Kantenlänge Java Basics - Anfänger-Themen 3
K Farbenspiel : Quadrat verschwindet,wenn Fenster inaktiv ist Java Basics - Anfänger-Themen 13
E Magisches Quadrat - wie bring ich des fertig? Java Basics - Anfänger-Themen 2
C Methoden Diagonalen am best. Punkt im zweidimensionales array finden Java Basics - Anfänger-Themen 3
S Zweidimensionales Array mit Diagonalen Java Basics - Anfänger-Themen 9
L Zahlen auf Diagonalen im Array Java Basics - Anfänger-Themen 15
U Diagonalen in 2D Array addieren Java Basics - Anfänger-Themen 4
richis-fragen JTable den angezeigten WERT nicht den Wert aus dem Model ausgeben. Java Basics - Anfänger-Themen 3
richis-fragen JTable effektiv angezeigter Text ausgeben nicht Inhalt vom Model Java Basics - Anfänger-Themen 9
ixChronos Letzten 4 Ziffern einer großen Zahl ausgeben Java Basics - Anfänger-Themen 3
Glühlampe Usereingabe in der gleichen Zeile ausgeben Java Basics - Anfänger-Themen 6
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
H Minimum und Maximum ausgeben lassen Java Basics - Anfänger-Themen 7
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
J Beim Start des Programms zB. eine Linie in JPanel ausgeben Java Basics - Anfänger-Themen 4
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
S Inhalte aus Array vergleichen und Max ausgeben Java Basics - Anfänger-Themen 3
javaBoon86 Arrays 2 Dimension Werte ausgeben Java Basics - Anfänger-Themen 15
S Ausgeben wie oft ein Wert in einem Array vorkommt Java Basics - Anfänger-Themen 7
S Vollmond berechnen und ausgeben Java Basics - Anfänger-Themen 12
S Vollkommene Zahl berechnen und ausgeben Java Basics - Anfänger-Themen 16
K wie kann ich alle Attribute von dem Objekt(pagode) ausgeben lassen ? Java Basics - Anfänger-Themen 3
I Wortkette in umgekehrter Rheinfolge + in neuer Zeile ausgeben Java Basics - Anfänger-Themen 4
jeff98 Wie kann man in Java eine Zeichenformation ausgeben? Java Basics - Anfänger-Themen 9
S Größte Zahl nach Eingabe der Zahl 0 ausgeben Java Basics - Anfänger-Themen 6
Tommilee Char ausgeben Java Basics - Anfänger-Themen 5
K Geldbetrag in Euro + Cents ausgeben Java Basics - Anfänger-Themen 24
M geschachtelte for-Schleifen - Einmaleins ausgeben Java Basics - Anfänger-Themen 3
TheSepp Nur Arrays ausgeben, die Werte zugewiesen haben. Java Basics - Anfänger-Themen 4
julian0507 Wörter einlesen lassen und rückwärts ausgeben Java Basics - Anfänger-Themen 7
I ResultSet aus meiner SQL-Abfrage in einem JTextfield ausgeben. Java Basics - Anfänger-Themen 1
M Werte in Felder speichern und geordnet ausgeben Java Basics - Anfänger-Themen 8
JavaBeginner22 Wort mit der größten Länge ausgeben Java Basics - Anfänger-Themen 4
frager2345 Aufgabe Hash Objekt Elemente ausgeben Java Basics - Anfänger-Themen 2
LilliCherry Array in einer Zeile ausgeben Java Basics - Anfänger-Themen 6
D Grafik auf ein JPane ausgeben. Java Basics - Anfänger-Themen 6
berserkerdq2 Methodenaufrufstapel ausgeben, was ist das? Java Basics - Anfänger-Themen 2
rosima26 Geordnete Arrays ausgeben Java Basics - Anfänger-Themen 31
D Inhalt eines Arrays ausgeben Java Basics - Anfänger-Themen 7
C Zwei Arrays addieren und ausgeben Java Basics - Anfänger-Themen 3
LFB In einer For-Schleife alles in einer Zeile ausgeben Java Basics - Anfänger-Themen 14
Robin Gentele XML von Webserver lesen und ausgeben Java Basics - Anfänger-Themen 5
W Array ausgeben Java Basics - Anfänger-Themen 29
I 2D-Array Position der Liste ausgeben. Java Basics - Anfänger-Themen 2
S Schachbrettmuster ausgeben Java Basics - Anfänger-Themen 3
J Zahlen bis zu einem bestimmten Grenzwert ausgeben Java Basics - Anfänger-Themen 11
Fats Waller Compiler-Fehler Kann ich einen String und die Summe zweier Char Werte mittels der println Anweisung ausgeben Java Basics - Anfänger-Themen 4
M Array rückwärts ausgeben Java Basics - Anfänger-Themen 2
HelpInneed Baum ausgeben (aber mal anders) Java Basics - Anfänger-Themen 3
HeiTim Brauche Hilfe soll ein nummeriertes Feld ausgeben lassen Java Basics - Anfänger-Themen 17
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
xFlozen Text mehrspaltig ausgeben Java Basics - Anfänger-Themen 3
Kotelettklopfer Stringbuilder mit print ausgeben Java Basics - Anfänger-Themen 83
L Methoden Rückgabewert Verbergen / nicht mit ausgeben Java Basics - Anfänger-Themen 4
S Array über ein Ausgabemethode in main ausgeben Java Basics - Anfänger-Themen 31
S Primzahlen in Array ausgeben Java Basics - Anfänger-Themen 14
O Anzahl Datensätze ausgeben Java Basics - Anfänger-Themen 5
W n verschiedene Arrays zufällig ausgeben - mit der Random-Klasse? Java Basics - Anfänger-Themen 8
C Matrix mit Array ausgeben Java Basics - Anfänger-Themen 6
Poppigescorn Mithilfe einer Arrayliste einen Notenspiegel ausgeben Java Basics - Anfänger-Themen 12
C Methode Grouping mit Werten ausgeben Java Basics - Anfänger-Themen 2
A Array einlesen und ausgeben Java Basics - Anfänger-Themen 13
K Datum einlesen und Tag, Monat und Jahr einzeln ausgeben Java Basics - Anfänger-Themen 1
K Datum einlesen und Tag, Monat und Jahr einzeln ausgeben Java Basics - Anfänger-Themen 1
ansystin Teilerfremde Zahlen ausgeben + Zahlenausgabe speichern Java Basics - Anfänger-Themen 3
J Koordinaten per Schleife ausgeben Java Basics - Anfänger-Themen 6
S Wort einlesen Array ausgeben Java Basics - Anfänger-Themen 4
H Eingegebene Zahlen mit Array ausgeben Java Basics - Anfänger-Themen 18
S Arraylist<Object> mit verschiedenen Objects ausgeben Java Basics - Anfänger-Themen 3
L Längstes Element einer ArrayList ausgeben Java Basics - Anfänger-Themen 9
I 12 Spalten von jeweils 30 Zahlen in Konsole ausgeben Java Basics - Anfänger-Themen 6
elsaaaaaa Wochentag als String ausgeben mit JDK Klassen Java Basics - Anfänger-Themen 6
M ArrayList in GUI ausgeben Java Basics - Anfänger-Themen 1
C Erste Schritte Muster ausgeben in der Konsole - großes V Java Basics - Anfänger-Themen 5
J Nur bestimmter Typ aus der ArrayList ausgeben. Java Basics - Anfänger-Themen 9
I Java-Wort einlesen und ausgeben Java Basics - Anfänger-Themen 7
KogoroMori21 Methode in der main ausgeben Java Basics - Anfänger-Themen 2
M Wie kann ich hier den Abstand ausgeben? Java Basics - Anfänger-Themen 3
W Anzahl der Zeilen ausgeben lassen Java Basics - Anfänger-Themen 20
U Teilergebniss mit 0 nicht ausgeben Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben