Muster ausgeben

Hadyaner

Mitglied
Hallo,
ich bin ganz ganz neu in den Bereich "programmieren mit Java" bzw. generell ins Programmieren gekommen, da ich seit letzer Woche "Angewandte Informatik" studiere und habe da einige Fragen, die ihr mir hoffentlich beantworten könnt.
Wir hatten erst eine Vorlesung und sind so weit gekommen :

public class Hello {
public static void main(String[] args) {
System.out.println("Hello World");
}
}

Das ist ja noch ganz einfach, aber jetzt haben wir eine Aufgabe bekommen, die heißt :

Schreiben Sie ein Java-Programm, das folgende Grafik ausgibt:

Code:
   _______
 /             \
/               \
  -"-'-"-'-"-
\              /
 \_______/

Also halt so ähnlich, krieg das hier im HTML Fenster nicht besser hin = ) Meine Frage ist jetzt, wie macht man das? Ich hab es mit Escape-Sequenz probiert aber das geht nicht und ich habe keine Lust die ganze Zeit mit Leerzeichen zu arbeiten, ich glaub nicht das, dass unser Prof so vorgesehen hat. Und die zweite Aufgabe war, dass wir eine x beliebige Aussagen 1000 mal ausgeben sollen und das mit einer Methode, ich hab gelesen und gelesen, aber finde keine Antowrt, ich bin nicht hier um einfach nur Antworten zu finden, ich hoffe ich verstehe das Schritt für Schritt, damit ich das später auch blind machen kann (wie ihr). Zur Erläuterung: Wir dürfen keien Schleifen und Rekursionen verwerden, ich wäre euch sehr dankbar wenn ihr mir helfen könntet.

lg
 
Zuletzt bearbeitet von einem Moderator:
bei den tausend Ausgaben fällt mir noch der Trick ein:
Java:
methode10Ausgaben(String) {
   // String 10x ausgeben
}

methode100Ausgaben(String) {
   // 10x methode10Ausgaben aufrufen
}
usw. ~20 Zeilen Code, die zu 100 Ausgaben führen, mit 30 Zeilen schafft man 1000, mit 40 Zeilen 10.000 usw.,
kann man strenggenommen als halbe Rekursion ansehen

---

beim Muster spricht wirklich etwas gegen
Java:
System.out.println("/             \");
usw?
da hab ich nichts beizutragen ohne Schleifen/ Rekursion,
kann mich an nichts anderes erinnern was hier die letzten Jahre dazu gepostet worden wäre,
aber vielleicht kommt ja noch was
 
Zuletzt bearbeitet von einem Moderator:
Java:
 System.out.println("_______");
      System.out.println("/             \\");
      System.out.println("/               \\");
      System.out.println("-\"-'-\"-'-\"-");
      System.out.println("\\              /");
      System.out.println("\\_______/");

\ mit \\ escapen und " mit \"
 
Java:
 System.out.println("_______");
      System.out.println("/             \\");
      System.out.println("/               \\");
      System.out.println("-\"-'-\"-'-\"-");
      System.out.println("\\              /");
      System.out.println("\\_______/");

\ mit \\ escapen und " mit \"

So hab ich das auch gemacht, also wenn ihr beide meint, dass es nicht anders geht, dann bin ich beruhigt =) und @SlaterB , danke so hatte ich das auch schon, dann geht es mir jetzt echt schon besser, ich dachte ich wäre komplett auf dem Holzweg, danke euch bis dato, ich werde noch sehr sehr oft auf euch zurückkommen = )
 
ich sage dir dass da niemand HTML eincodieren wollte, sondern mit HTML-Fenster die ganz normale Eingabebox gemeint war,
dir überhaupt irgendwas zu sagen ist aber gewiss illusorisch, richtig

geht hauptsächlich an Hadyaner, dass dein Geschwätz nicht zu beachten ist
 
ohne Schleifen etc? Dein Prof möchte bestimmt auf ne komischr Rekursion raus ...

Java:
public class TestBla {

    int counter = 0;
    int wiederholungen = 0;
    String aussage;
    
    public TestBla(int wiederholungen, String aussage) {
        this.wiederholungen = wiederholungen;
        this.aussage = aussage;
    }
    
    public void ausgabe() {
        System.out.println(aussage);
        if(++counter == wiederholungen) return;
        ausgabe();
    }
    
    public static void main( String[] args ) {
        TestBla b = new TestBla(10, "BlaBla");
        b.ausgabe();
    }
}

so klappts auf jeden fall -.-
 
und um auch hier reinzuplappern 😉 :
komisch weil keine sinnvolle Rekursion (Verzweigung) sondern einfach nur eine versteckte for-Schleife bis 10
 
@AlexSpritze: siehe SlaterB 🙂

@SlaterB: bist sicher, dass der bei "Keine Schleifen" auch keine Rekursion meint? Profs haben manchmal komische Gedankengänge.
 
ja :Ihr Programm sollte nicht 1000 Zeilen lang sein. Benutzen Sie Methoden, um das Programm zu kürzen.
Benutzen Sie keine Schleifen und keine Rekursion (kommt später in der Vorlesung), nur den einfachen
Methodenaufruf.
 
ich bin mir nicht sicher, ich lese nur:
Zur Erläuterung: Wir dürfen keien Schleifen und Rekursionen verwerden, ich wäre euch sehr dankbar wenn ihr mir helfen könntet.

edit:
@Hadyaner
das klingt jetzt so, als würde es sich nicht auf die Muster-Ausgabe-Aufgabe beziehen,
wobei dort Schleifen auch nicht wirklich viel helfen würden, da ist ja fast jede Zeile komplett anders
 
Zuletzt bearbeitet von einem Moderator:
ah und jetzt habe ich auch das Wort Rekursion in dem Anfangsposting gefunden 😛 Dann bleibt nur noch Slaters Methode.

Au Backe, es gibt wirklich schon so richtig sinnfreie Aufgaben
 
steht da was interessantes drin? ich kann/will frühestens in 4 Stunden dort reinschauen 😉
wenn es noch um die Aufgabe geht, ruhig hier weiter
 
okay, jap ist recht interessant ^^, also so wie ich das verstanden hab, willst du es so machen ?
Java:
public class NachrichtAUSGABE {
    public static void main (String [] args) {
      System.out.println("blabla");
      Nachricht10();
      Nachricht10();
      Nachricht10();
      Nachricht10();
      Nachricht10();
      Nachricht10();
      Nachricht10();
      Nachricht10();
      Nachricht10();
      Nachricht10();
      Nachricht100();
      Nachricht100();
      Nachricht100();
      Nachricht100();
      Nachricht100();
      Nachricht100();
      Nachricht100();
      Nachricht100();
      Nachricht100();
      Nachricht100();

      
    
       }
  
       public static void Nachricht10() {
        System.out.println("blabla");
        System.out.println("blabla");
        System.out.println("blabla");
        System.out.println("blabla");
        System.out.println("blabla");
        System.out.println("blabla");
        System.out.println("blabla");
        System.out.println("blabla");
        System.out.println("blabla");
        System.out.println("blabla");
       }

         public static void Nachricht100() {
        System.out.println("blabla");
        System.out.println("blabla");
        System.out.println("blabla");
        System.out.println("blabla");
        System.out.println("blabla");
        System.out.println("blabla");
        System.out.println("blabla");
        System.out.println("blabla");
        System.out.println("blabla");
        System.out.println("blabla");
       }
  
}
So ? Dann hätte ich glaub ich 200, ich könnte es noch auf 1000 machen, stimmt, aber wollte wissen ob es dann so korrekt wäre ?
 
Zuletzt bearbeitet:
Methoden unbedingt klein schreiben

in der main brauchst du nicht 10x nachricht10(); aufrufen, 1x nachricht100(); ist doch viel effizienter, darum gehts doch gerade

10x nachricht100(); aufzurufen ist denkbar, wenn es viel mehr werden, dann wieder höhere Methoden definieren,
alles dasselbe

und nachricht100() muss natürlich 10x nachricht10(); aufrufen, nicht nur 10 Ausgaben machen
 
Zuletzt bearbeitet von einem Moderator:
Slaters Vorschlag war eher wie folgt gemeint. Wenn Du dann auch noch den auszugebenden String als Parameter der Methode übergibst, bist Du dann auch beim Ausgabetext flexibler:
Java:
	public static void main(String[] args)  {
		printMessage1000("tausendfache Ausgabe");
	}
	
	public static void printMessage10(String msg) {
		System.out.println(msg);
		System.out.println(msg);
		System.out.println(msg);
		System.out.println(msg);
		System.out.println(msg);
		System.out.println(msg);
		System.out.println(msg);
		System.out.println(msg);
		System.out.println(msg);
		System.out.println(msg);
	}
	
	public static void printMessage100(String msg) {
		printMessage10(msg);
		printMessage10(msg);
		printMessage10(msg);
		printMessage10(msg);
		printMessage10(msg);
		printMessage10(msg);
		printMessage10(msg);
		printMessage10(msg);
		printMessage10(msg);
		printMessage10(msg);
	}
	
	public static void printMessage1000(String msg) {
		printMessage100(msg);
		printMessage100(msg);
		printMessage100(msg);
		printMessage100(msg);
		printMessage100(msg);
		printMessage100(msg);
		printMessage100(msg);
		printMessage100(msg);
		printMessage100(msg);
		printMessage100(msg);
	}
 

Zurück
Oben