ASCII - Raute

j2610

Mitglied
Hallo Leute :)

Ich soll für die Uni eine ASCII Raute programmieren.
Die Raute könnte ca. so aussehen:
a
'a'
_'a'_

.. also immer die nächst kleiner ASCII Zahl.

Die Raute habe ich bereits programmiert.
Hätte jemand Tipps für mich wie ich das mit dem nächst kleineren ASCII Zeichen umsetzen kann?

Mfg
 

j2610

Mitglied
Scanner sc = new Scanner (System.in);

System.out.println("Bitte Höhe eingeben:");
int h = sc.nextInt();

if (h >= 0 && h % 2 != 0) {

System.out.println("Bitte char eingeben:");
char c = sc.next().charAt(0);

for (int b = 0; b < (h+1)/2; b++) {

for (int z = 0; z < (h*2-1); z++) {

if (z >= (h-b-1) && z <=(h+b-1)) {
System.out.print(c);
c--;
} else
System.out.print(" ");
}

System.out.println();

}

for (int b = (h-2)/2; b >= 0; b--) {

for (int z = (h-1)*2; z >= 0; z--) {

if (z >= (h-b-1) && z <= (h+b-1)) {
System.out.print(c);
c--;
} else
System.out.print(" ");
}

System.out.println();

}

} else System.out.println("Inkorrekte Eingabe!");
}
}
 

krgewb

Top Contributor
Hier nochmal dein Programm in Code-Tags:
Java:
import java.util.Scanner;

public class Hauptprogramm {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        System.out.println("Bitte Höhe eingeben:");
        int h = sc.nextInt();

        if (h >= 0 && h % 2 != 0) {

            System.out.println("Bitte char eingeben:");
            char c = sc.next().charAt(0);

            for (int b = 0; b < (h + 1) / 2; b++) {

                for (int z = 0; z < (h * 2 - 1); z++) {

                    if (z >= (h - b - 1) && z <= (h + b - 1)) {
                        System.out.print(c);
                        c--;
                    } else
                        System.out.print(" ");
                }

                System.out.println();

            }

            for (int b = (h - 2) / 2; b >= 0; b--) {

                for (int z = (h - 1) * 2; z >= 0; z--) {

                    if (z >= (h - b - 1) && z <= (h + b - 1)) {
                        System.out.print(c);
                        c--;
                    } else
                        System.out.print(" ");
                }

                System.out.println();

            }

        } else
            System.out.println("Inkorrekte Eingabe!");

    }
}
Ausgabe:
Code:
Bitte Höhe eingeben:
7
Bitte char eingeben:
d
      d     
     cba    
    `_^]\   
   [ZYXWVU  
    TSRQP   
     ONM    
      L
 

krgewb

Top Contributor
Wir können deine Raute leider nicht sehen.
Meinst du folgendes Konstrukt?
Java:
   d
  cdc
 bcdcb
abcdcba
 bcdcb
  cdc
   d
 

krgewb

Top Contributor
Laut ASCII-Tabelle entspricht das kleine d der Zahl 100. Das kleine c entspricht der Zahl 99 usw.
Nehmen wir für einen Moment an, d entspräche 9. Dann sähe es wie folgt aus:
Code:
   9
  898
 78987
6789876
 78987
  898
   9
Programmiere doch zuerst einmal das.
 
Zuletzt bearbeitet:

krgewb

Top Contributor
Dann würde ich es ganz anders aufziehen.

Code:
   9
  898
 78987
6789876
 78987
  898
   9

Ich würde eine separate for-Schleife (evt. als Methode) machen, die die Leerzeichen auf einen Schlag einfügt.
In Zeile 0 gibt es 3 Leerzeichen.
In Zeile 1 gibt es 2 Leerzeichen usw.

Die Werte würde ich dann mit zwei separaten For-Schleifen ausgeben lassen.
In Zeile 3 soll erst 6789 geschrieben werden und dann 876. Das geht mit zwei for-Schleifen. Die Zeile lautet dann 6789876.

In Zeile 0 ist die niedrigste Zahl 9 minus 0.
In Zeile 1 ist die niedrigste Zahl 9 minus 1.
In Zeile 2 ist die niedrigste Zahl 9 minus 2.
In Zeile 3 ist die niedrigste Zahl 9 minus 3.

Zeile 3 ist die goldene Mitte. Danach geht es wieder runter.
Dies geht mit einer separaten For-Schleife (also nicht in der vorherigen verschachtelt sondern separat!)
In Zeile 4 ist die niedrigste Zahl 9 minus 2.
In Zeile 5 ist die niedrigste Zahl 9 minus 1.
In Zeile 6 ist die niedrigste Zahl 9 minus 0.

Da die Anzahl der Zeilen ungerade sein muss gibt es immer eine Mitte. Bei Wochentagen: MDMDFSS
-> Donnerstag ist in der Mitte
 
Zuletzt bearbeitet:

krgewb

Top Contributor
Kannst du es dir vorstellen?

Das folgende Programm kann die Leerzeichen ausgeben.
Java:
import java.util.Scanner;

public class Hauptprogramm {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        System.out.println("Bitte Höhe eingeben:");
        int h = sc.nextInt();

        if (h >= 0 && h % 2 != 0) {

            System.out.println("Bitte char eingeben:");
            char c = sc.next().charAt(0);

            int mitte = h / 2;
          
            for(int i = 0; i < h; i++){
              
                // Anzahl der Leerzeichen
                int x = 0;
              
                // Leerzeichen
                if(i <= mitte){
                    x = mitte - i;
                }
                else{
                    x = i - mitte;
                }
              
                gebeXLeerzeichenAus(x);
                      
                // TODO
              
                // Zeilenumbruch
                System.out.print("\n");
              
            }              

        } else
            System.out.println("Inkorrekte Eingabe!");

    }

    private static void gebeXLeerzeichenAus(int x) {
        for (int k = 0; k < x; k++) {
            System.out.print(" ");
        }
    }
}
Ausgabe:
 

Anhänge

  • Ausgabe.png
    Ausgabe.png
    5,6 KB · Aufrufe: 93
Zuletzt bearbeitet:

krgewb

Top Contributor
Hier funktioniert die komplette Raute. Jetzt musst du nur noch ASCII machen.

Java:
import java.util.Scanner;

public class Hauptprogramm {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        System.out.println("Bitte Höhe eingeben:");
        int h = sc.nextInt();

        if (h >= 0 && h % 2 != 0) {

            System.out.println("Bitte char eingeben:");
            char c = sc.next().charAt(0);

            int cAlsInt = 9;

            int mitte = h / 2;

            int kleinsterWertUeberhaupt = cAlsInt - mitte;

            for (int i = 0; i < h; i++) {

                // Anzahl der Leerzeichen
                int x = 0;

                if (i <= mitte) {
                    x = mitte - i;
                } else {
                    x = i - mitte;
                }

                gebeXLeerzeichenAus(x);

                int kleinsterWertInDerItenZeile = 0;

                if (i <= mitte) {
                    kleinsterWertInDerItenZeile = cAlsInt - i;
                } else {
                    kleinsterWertInDerItenZeile = kleinsterWertUeberhaupt + (i - mitte);
                }

                for (int k = kleinsterWertInDerItenZeile; k <= cAlsInt; k++) {
                    System.out.print(k);
                }

                for (int k = cAlsInt - 1; k >= kleinsterWertInDerItenZeile; k--) {
                    System.out.print(k);
                }

                // Zeilenumbruch
                System.out.print("\n");

            }

        } else
            System.out.println("Inkorrekte Eingabe!");

    }

    private static void gebeXLeerzeichenAus(int x) {
        for (int k = 0; k < x; k++) {
            System.out.print(" ");
        }
    }
}
 

Anhänge

  • Ausgabe.png
    Ausgabe.png
    8,3 KB · Aufrufe: 180
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Erste Schritte While Schleife / Ausgabe von buchstabe & ASCII Wert Java Basics - Anfänger-Themen 4
obiwanke Ziffern durch ASCII Character ersetzen Java Basics - Anfänger-Themen 8
U Ascii wert verschieben, wie möglich? Java Basics - Anfänger-Themen 3
Sonas814 ASCII-Tabelle Java Basics - Anfänger-Themen 2
J Umwandlung String zu ASCII-Wert und anders Java Basics - Anfänger-Themen 17
E ASCII-Code in Java ausgeben Java Basics - Anfänger-Themen 6
krgewb ASCII-Tabelle Java Basics - Anfänger-Themen 12
O Ascii Tasse Ausgeben Java Basics - Anfänger-Themen 8
S ASCII String zu int Java Basics - Anfänger-Themen 5
R Fehler bei ASCII Char zu Int Umwandlung Java Basics - Anfänger-Themen 2
K Ascii Converter mit Swing Java Basics - Anfänger-Themen 4
P ASCII-Tabelle Java Basics - Anfänger-Themen 5
C String mit ASCII vergleichen + gefundene Gemeinsamkeiten ausgeben Java Basics - Anfänger-Themen 21
H String in Ascii-Werte für Verschüsselungssystem Java Basics - Anfänger-Themen 8
A OOP Buchstaben mit ASCII Werten darstellen Java Basics - Anfänger-Themen 1
G Wert in Ascii Datei ändern, ohne die Datei neu zu schreiben Java Basics - Anfänger-Themen 24
A int in ASCII Konvertieren Java Basics - Anfänger-Themen 6
S ASCII Code aus String herauslesen Java Basics - Anfänger-Themen 3
Rayo Eingelesene Ascii Zahlen wie normale Zahlen prüfen Java Basics - Anfänger-Themen 4
T ASCII Art von Bild erstellen. Java Basics - Anfänger-Themen 32
A String(Ascii ) in String umwandeln Java Basics - Anfänger-Themen 3
D Von short zu Ascii-Code Java Basics - Anfänger-Themen 2
P Erste Schritte Zufallszahl in Ascii-Code umwandeln ?!? Java Basics - Anfänger-Themen 6
S String mit ASCII/HTML Zeichen darstellen Java Basics - Anfänger-Themen 10
C ASCII-Art Haus Java Basics - Anfänger-Themen 18
C ASCII CODES in Linux anders als auf Windows? Java Basics - Anfänger-Themen 4
J Ascii Zeichen von einem String umwandeln und ausgeben Java Basics - Anfänger-Themen 11
T String to ASCII Java Basics - Anfänger-Themen 3
K ASCII-Art mit for Schleife Java Basics - Anfänger-Themen 12
R ASCII-Tabelle Java Basics - Anfänger-Themen 6
achillesat aus .java in ascii datei Java Basics - Anfänger-Themen 12
P ASCII-Bild einlesen Java Basics - Anfänger-Themen 13
I Ascii Bild mittels Scanner einlesen Java Basics - Anfänger-Themen 9
D prüfen ob string nur ascii zeichen enthält Java Basics - Anfänger-Themen 7
G Textdokument ASCII ändern Java Basics - Anfänger-Themen 10
P Ascii Bild einlesen Java Basics - Anfänger-Themen 6
P Ascii Java Basics - Anfänger-Themen 4
C ASCII Codes in Buchstaben umwandeln Java Basics - Anfänger-Themen 2
T Ascii String zu Hex Wert wandeln? Java Basics - Anfänger-Themen 6
S Ascii Datei parsen Java Basics - Anfänger-Themen 2
S Hex-String in Ascii-String umwandeln! Java Basics - Anfänger-Themen 7
J String nur mit ASCII-Zeichen Java Basics - Anfänger-Themen 4
D Ascii-Code ersetzen mit Umlauten Java Basics - Anfänger-Themen 6
L Ausgabe in arabischen Zahlen statt in ASCII Java Basics - Anfänger-Themen 9
M Ascii-Filtering von Usereingaben Java Basics - Anfänger-Themen 3
K String(ASCII) to BigInteger Java Basics - Anfänger-Themen 2
T ASCII Tabelle darstellen Java Basics - Anfänger-Themen 7
G ASCII -> Unicode ? Java Basics - Anfänger-Themen 5
G ASCII -> String Java Basics - Anfänger-Themen 2
N Eclipse und ascii codes, welchen wählen? Java Basics - Anfänger-Themen 3
T byte 2 ASCII ? Java Basics - Anfänger-Themen 2
M Strings nach ASCII Zeichen trennen. Java Basics - Anfänger-Themen 7
C Überprüfung ob Eingabe Text/ASCII Java Basics - Anfänger-Themen 24
F Warum Ausgabe in ASCII Dez. Java Basics - Anfänger-Themen 3
L Fehler bei den ASCII Zeichen Java Basics - Anfänger-Themen 9
K ASCII Schnittstelle. Java Basics - Anfänger-Themen 3
T Bestimmte Zeilen aus ASCII File löschen? Java Basics - Anfänger-Themen 2
L auf ASCII Zeichen prüfen Java Basics - Anfänger-Themen 10
O Ascii Dateien schreiben Java Basics - Anfänger-Themen 5
H Escape Sequenz ASCII Wert als Oktalzahl Java Basics - Anfänger-Themen 6
B ASCII-Datei einlesen und zerlegen Java Basics - Anfänger-Themen 5
H ascii-xml Konverter Java Basics - Anfänger-Themen 4
B Formular-Eingabe in ASCII-Datei speichern Java Basics - Anfänger-Themen 3
S Umrechner Ascii Integer Java Basics - Anfänger-Themen 2
S printable ASCII output erzeugen Java Basics - Anfänger-Themen 3
G Ascii Zeichen? Java Basics - Anfänger-Themen 2
X ASCII-Code => Zeichen / Zeichen => ASCII-Code Java Basics - Anfänger-Themen 2
G Problem bei der Darstellung von bestimmten ASCII-Zeichen Java Basics - Anfänger-Themen 4
B speichern->"neueZeileZeichen"ASCII 1310 in 13 u Java Basics - Anfänger-Themen 10
W char in ASCII-Zeichen umwandeln Java Basics - Anfänger-Themen 4
Dilandau ascii code von zeichen in string ermitteln? Java Basics - Anfänger-Themen 9
G Berechnet ASCII-Code Java Basics - Anfänger-Themen 2
Y Raute umdrehen Java Basics - Anfänger-Themen 10
J raute ausgabe Java Basics - Anfänger-Themen 13
S Raute - for-Schleife Java Basics - Anfänger-Themen 2
B Raute Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben