Zeichendreieck OOP

Cosma

Aktives Mitglied
Hallo, ich habe am Samstag Matura und ich bin auf ein Problem gestoßen:

Ich sollte ein Zeichendreieck erstellen:
*
**
***
und so weiter, je nach dem was der Benutzer eingibt.
Jetzt sollte ich das aber immer objektorientiert lösen, und daran scheitere ich gerade.
Mal generell mein Programm:
Java:
package zd;

import java.util.Scanner;
public class Zd {
public static void main(String[] args) {
        
        Scanner sc=new Scanner(System.in);
        System.out.println("Geben Sie die gewünschte Zahl ein");
        int a=sc.nextInt();
        System.out.println("Geben Sie ein beliebiges Zeichen ein");
        String b=sc.next();
        
        for(int i=1; i<=a; i++)
        {for(int j=1; j<i+1; j++)
        
        {System.out.print(b);}
        System.out.println();
 
}

}}

Ich wäre jetzt an die Sache so rangegangen:tt
Klasse dreieck erstellen, die eine Methode mit einem int und String Parameter hat .. Stimmt das ?
 

XHelp

Top Contributor
Kannst ja im Konstruktor die beiden Parameter übergeben und dann eine Methode wie "printTriangle()" oder so anbieten, die das Ausgeben übernimmt
 

Cosma

Aktives Mitglied
Nur wie ich dann die Methode schreibe versteh ich nicht:

public void printTriangle(int anzah, String zeichen)
{}

so hätte ich das gemacht, aber es geht ja nicht
 

XHelp

Top Contributor
Wenn du die Parameter bereits im Konstruktor übergeben und gespeichert hast, dann brauchst du die nicht nochmal zu übergeben.
Und "aber es geht ja nicht" ist immer eine ungünstige Beschreibung eines Problems: Werde konkreter.
 

Cosma

Aktives Mitglied
Okay das Problem hat sich mal erledigt.
Jetzt würde ich gerne das Dreieck in eine Datei speichern.
Ich weiß im Prinzip wie man das anstellt, aber ich muss ja irgendwie darauf achten wie ich das einlese, da es ja mehrzeilig ist oder?
Muss ich das Dreieck vorher irgendwo speichern?
 

XHelp

Top Contributor
Jetzt würde ich gerne das Dreieck in eine Datei speichern.
Ich weiß im Prinzip wie man das anstellt, aber ich muss ja irgendwie darauf achten wie ich das einlese, da es ja mehrzeilig ist oder?
Muss ich das Dreieck vorher irgendwo speichern?
Du willst wissen, ob du das Dreieck vorher speichern musst um es zu speichern? :bahnhof: Darüber hinaus willst du wissen, ob du irgendwas beim Einlesen zu beachten musst, während du es speicherst?
Versuche deine Frage etwas präziser zu stellen.
 
S

SlaterB

Gast
'ich will speichem' - naja, Standardthema, aber zumindest eine bekannte Frage
'ich muss beim Einlesen aufpassen' - häh? wir sind doch grad erst beim Speichern?
'muss ich vorher speichern?' - häh? vor dem Speichern erst Speichern?

aber schade, zu spät
 

langhaar!

Bekanntes Mitglied
Ein 'Nein' zu beiden Fragen. EDIT: auf Beitrag 6 bezogen

Du 'musst' das Dreieck nicht im Speicher speichern; du kannst es aber.
Ein Einlesen erübrigt sich ohnehin komplett, wenn du es nicht speicherst.

Kann ich das Dreieck einfach in einen String speichern und den dann in die Textdatei speichern?
Viele Wege führen nach Rom. Kannst du so machen. Ob es sinnvoll ist, ist eine andere Frage.
Ich würde direkt bei der Erzeugung des Dreiecks die Datei speichern. Ohne Zwischenspeichern in irgendwelchen Objekten.
 
Zuletzt bearbeitet:

Cosma

Aktives Mitglied
Ok dann habe ich keinen Plan wie ich an das rangehen könnte. Ich habs eben immer nur mit einem String zum Beispiel gemacht
 
S

SlaterB

Gast
> Kann ich das Dreieck einfach in einen String speichern und den dann in die Textdatei speichern?

zu diesen beiden Fragen aber ein Ja als Antwort,
Strings kann man mit + zusammenfügen
 
G

Gast2

Gast
Ja kannst du. Der FileWriter bspw. kennt ne Methode
Code:
write(String)
 

r.w.

Bekanntes Mitglied
Ok dann habe ich keinen Plan wie ich an das rangehen könnte. Ich habs eben immer nur mit einem String zum Beispiel gemacht

Wenn es nur darum geht, das Dreieck mit Deinem Programm wieder anzeigen zu können,
würde ich gar nicht die Ausgabe speichern, sondern z.B. nur eine Zeile mit den Parametern.

Für Dein Beispiel:
1;3

Dann brauchst Du nur diese Zeile einzulesen und erzeugst
aus den Parametern eine Instanz Deiner Dreiecks-Klasse.

Wenn Du Dir allerdings das Dreieck in einem Editor ansehen
möchtest, musst Du natürlich die Ausgabe speichern.

VG ROlf
 
Ähnliche Java Themen

Ähnliche Java Themen


Oben