Arrays: Mathematische Funktion

F

Felix003

Mitglied
Hi,
ich hätte ne Frage zu einer Übung, die ich gerade mache. Denn irgendwie weiß ich nicht weiter. Es gibt schon einen vorgegebenen Code:
Code:
public class sterne {
    public static void main(String[] args) {
        final int höhe = 3;
        final int breite = 8;
        char[][] myArr;
        myArr = new char[höhe][breite];
        for (int i = 0; i < höhe; i++) {
            for (int j = 0; j < breite; j++) {
                myArr[i][j] = '.';
                System.out.print(myArr[i][j]);
            }
            System.out.println();
        }

    }
}
Die Angabe lautet: Man soll zwischen der Initialisierung und der Ausgabe noch einen Code, der eine Art mathematische Funktion in das Array „zeichnet“ (Funktion: zu jedem x-Wert muss es einen y-Wert geben) hineinschreiben. Man iteriert also 1x über die ganze Breite des 2-dimensionalen Arrays (0 bis WIDTH-1) und wählt an jeder Stelle einen „y-Wert“, an dem man einen Stern einträgt ('*'). Eine „Konstante Funktion“ wäre dann z.B. y= 1 (An jeder Stelle ist der y-Wert = 1).
So habe ich es probiert:
Code:
for (int x = 0; x < höhe; x++) {
            for (int y = 0; y < breite - 1; y++) {
                array[x][y] = '.';
                if(y == 1){
                    array[y][x]= '*';
                    System.out.print(array[y][x]);
                }
                System.out.print(array[x][y]);
            }
            System.out.println();
        }
Die Ausgabe soll also lauten:
........
********
........
Also sodass eine Zeile Punkte sind und die andere Sterne hat usw... (Kommt dann halt auf HEIGHT und WIDTH an)
Danke schonmal im Voraus
 
T

temi

Top Contributor
Evtl. hast du einmal "print()" zuviel im Code?

Du weist der Position im Array entweder einen Punkt oder einen Stern zu und danach gibst du sie einmal aus:
 
Zuletzt bearbeitet:
B

BestGoalkeeper

Bekanntes Mitglied
Wäre als Veränderung auch erlaubt? Das spart uns den Modulo-Operator.
Java:
	public static void main(String[] args) {
		final int höhe = 5;
		final int breite = 8;
		char[][] myArr = new char[höhe][breite];
		for (int i = 0; i < höhe; i += 2) {
			for (int j = 0; j < breite; j++) {
				myArr[i][j] = '.';
			}
		}
		for (int i = 1; i < höhe; i += 2) {
			for (int j = 0; j < breite; j++) {
				myArr[i][j] = '*';
			}
		}
		for (char[] cs : myArr) {
			System.out.println(new String(cs));
		}
	}
Code:
........
********
........
********
........
 
H

httpdigest

Top Contributor
Erstmal würde ich ein bisschen aufräumen und die einzelnen Aspekte des Codes voneinander trennen:
1. Ein Feld initialisieren
2. Eine mathematische Funktion definieren
3. Eine Funktion in das Feld hineinzeichnen
4. Das fertige Feld ausgeben
Und, das ganze ein wenig objektorientiert zu machen, schadet auch nicht.
Java:
import java.util.function.IntUnaryOperator;
public class FunktionsPlotter {
  private static final char LEER = '\u00B7';
  private static final char GEFUELLT = '\u2022';
  private static final IntUnaryOperator KONSTANTE = x -> 1;
  private static final IntUnaryOperator GERADE = x -> x-3;
  private static final IntUnaryOperator PARABEL = x -> (x-7)*(x-7)/10+1;
  private final int breite, hoehe;
  private final char[][] feld;
  public FunktionsPlotter(int breite, int hoehe) {
    this.breite = breite;
    this.hoehe = hoehe;
    this.feld = new char[hoehe][breite];
  }
  private void gibFeldAus() {
    for (int y = 0; y < hoehe; y++) {
      for (int x = 0; x < breite; x++)
        System.out.print(feld[y][x] == '\0' ? LEER : feld[y][x]);
      System.out.println();
    }
  }
  public void zeichneFunktionInsFeld(IntUnaryOperator f) {
    for (int x = 0; x < breite; x++) {
      int y = f.applyAsInt(x);
      if (y >= 0 && y < hoehe)
        feld[hoehe - y - 1][x] = GEFUELLT;
    }
  }
  public static void main(String[] args) {
    FunktionsPlotter p = new FunktionsPlotter(15, 8);
    p.zeichneFunktionInsFeld(PARABEL);
    p.gibFeldAus();
  }
}
 
T

temi

Top Contributor
H

httpdigest

Top Contributor
Ich glaube, das eigentliche Problem ist, dass er die Indexierung vertauscht. Mal behandelt er x als Höhenindex und mal als Breitenindex. Also mal steht [x][y] (falsch) und mal [y][[x] (richtig), somit überschreibt er wieder Werte im Array, die er vorhin gesetzt hatte.
 
T

temi

Top Contributor
F

Felix003

Mitglied
Ok, danke für die ganzen Antworten. Ich werde das berücksichtigen und versuche es nochmal.
 
H

httpdigest

Top Contributor
Also die Lesbarkeit vom geplotteten Graphen verbessert das schon. :D
(hint: es ist NICHT der Stern oder der normale (Satzende-)Punkt).
Und der Wert einer symbolischen Konstanten erschwert nicht die Lesbarkeit vom Code...
Es ist halt das durch diese Unicode-Sequenz repräsentierte Zeichen.
Ja, das hätte man auch so in den Code schreiben können, wenn Leute ihren Code als UTF-8 speichern.
Grundsätzlich gebe ich dir aber insofern Recht, als dass das hier für diese Aufgabenstellung too much ist.
 
B

BestGoalkeeper

Bekanntes Mitglied
Wieso denn nicht einfach so...
Java:
	public static void plotFunction(int w, int h, IntBinaryOperator function) {
		for (int y = 0; y < h; y++) {
			for (int x = 0; x < w; x++) {
				System.out.print((char) function.applyAsInt(x, y));
			}
			System.out.println();
		}
	}

	public static void main(String[] args) {
		final int höhe = 5;
		final int breite = 8;
		plotFunction(breite, höhe, (x, y) -> y % 2 == 0 ? '.' : '*');
	}
?
 
B

BestGoalkeeper

Bekanntes Mitglied
Also seine Beschreibung der Aufgabe ist absolut unverständlich. Aber meine Ausgabe wäre richtig.
 
B

BestGoalkeeper

Bekanntes Mitglied
Ja dann trag da
final int höhe = 3;
ein... Hatte das nur zum Testen geändert...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Z Kein überprüfen des gesamten Arrays möglich.(Viergewinnt Spiel) Java Basics - Anfänger-Themen 6
mihe7 Von Datentypen und (mehrdimensionalen) Arrays Java Basics - Anfänger-Themen 4
A Teilen eines Arrays Java Basics - Anfänger-Themen 5
DorFey Sortieren eines mehrdimensionalen Arrays Java Basics - Anfänger-Themen 8
N Probleme beim printen von Arrays durch for Schleife Java Basics - Anfänger-Themen 3
L If und else bei 2 Dimensionalen Arrays Java Basics - Anfänger-Themen 8
1 Arrays Java Basics - Anfänger-Themen 7
M Rückgabe eines Arrays Java Basics - Anfänger-Themen 10
L Addition von Arrays über die Parameterliste Java Basics - Anfänger-Themen 11
Z Erste Schritte Indexe innerhalb eines Arrays zusammensählen Java Basics - Anfänger-Themen 14
N Länge eines Arrays in einem Objekt testen Java Basics - Anfänger-Themen 51
S Übergabe von Arrays an Methoden Java Basics - Anfänger-Themen 20
D Collections Arrays in ArrayList abspeichern Java Basics - Anfänger-Themen 6
A Freie Stelle eines Arrays Java Basics - Anfänger-Themen 17
H Ein gegebenes Int Array zu Zwei Arrays zurück geben Java Basics - Anfänger-Themen 6
J 2D Arrays summieren Java Basics - Anfänger-Themen 21
J zwei String Arrays miteinander vergleichen Java Basics - Anfänger-Themen 18
A Java.util.Arrays Java Basics - Anfänger-Themen 15
T Methodenverknüpfung mit Arrays Java Basics - Anfänger-Themen 4
R Zugriff auf den Index eines Arrays, welches ein Objekt ist. Java Basics - Anfänger-Themen 4
F Eine Zahl mit Arrays vergleichen Java Basics - Anfänger-Themen 7
A 2d Arrays aus txt.file einlesen Java Basics - Anfänger-Themen 16
B Arrays Java Basics - Anfänger-Themen 4
P Arrays "automatisch" erstellen lassen Java Basics - Anfänger-Themen 12
B Nur eine bestimmte Anzahl an Arrays ausgeben Java Basics - Anfänger-Themen 9
H Gemeinsame Schnittmenge zweier Arrays ausgeben Java Basics - Anfänger-Themen 12
H Größte Duplikat (Größte Doppelte Wert) eines Arrays ausgeben Java Basics - Anfänger-Themen 9
A Summe des Arrays pd mit alternativer Schleife Java Basics - Anfänger-Themen 2
S Elemente eines Arrays bei Ausgabe auslassen Java Basics - Anfänger-Themen 2
M Verständnisproblem der Rekursion bei Arrays Java Basics - Anfänger-Themen 8
F Mehrdimensionale Arrays Java Basics - Anfänger-Themen 12
M Arrays in Funktion Kopieren und Bearbeiten Java Basics - Anfänger-Themen 4
W Erste Schritte Arrays befüllen und ausgeben Java Basics - Anfänger-Themen 11
J Inhalte von zwei Arrays vertauschen?! Java Basics - Anfänger-Themen 6
Curtis_MC Erzeugung mehrdimensionaler Arrays Java Basics - Anfänger-Themen 2
O zwei Arrays nach Werten durchsuchen und zusammenfügen Java Basics - Anfänger-Themen 3
F Arbeiten mit Arrays Java Basics - Anfänger-Themen 2
D Wert des Arrays unter Bedingungen ändern Java Basics - Anfänger-Themen 1
M Werte des Arrays addieren Java Basics - Anfänger-Themen 5
L Zufällige Übereinstimmungen in 2 Arrays Java Basics - Anfänger-Themen 3
A Arrays kombinieren (länge eines Arrays kann 0 sein) Java Basics - Anfänger-Themen 6
A Alle true Werte eines boolean Arrays herausfiltern Java Basics - Anfänger-Themen 19
iman Variablen Dynamik Arrays Java Basics - Anfänger-Themen 9
R Arrays Java Basics - Anfänger-Themen 4
A Methoden Arrays Java Basics - Anfänger-Themen 20
D Unterschied == und equals in Arrays Java Basics - Anfänger-Themen 2
V Schleife für das Einlesen von Werten für int Variablen, die Bestandteil von Arrays sein sollen Java Basics - Anfänger-Themen 16
V Probleme mit Arrays Java Basics - Anfänger-Themen 8
S Arrays erstellen Java Basics - Anfänger-Themen 6
D Ergebnisse in Arrays ausgeben? Java Basics - Anfänger-Themen 11
M Die Inhalte eines Arrays mit der Methode Arrays.toString ausgeben Java Basics - Anfänger-Themen 4
R Weitergabe von Arrays aus Methoden in andere Klasse Java Basics - Anfänger-Themen 5
scratchy1 vollständige und unvollständige Arrays ausgeben Java Basics - Anfänger-Themen 11
L Tiefe Kopie einer Zeile eines zweidimensionalen Arrays Java Basics - Anfänger-Themen 1
L Dynamische Anzahl an Arrays mit verschiedenen Namen erzeugen Java Basics - Anfänger-Themen 6
L Addition von 1 bis n, in Arrays umstellen Java Basics - Anfänger-Themen 15
M Deklarieren und Initialisieren von Arrays Java Basics - Anfänger-Themen 3
O Arrays sortieren in einer Methode Java Basics - Anfänger-Themen 2
E Mehrere Arrays addieren mit Übertrag Java Basics - Anfänger-Themen 13
B Frage zu Arrays Java Basics - Anfänger-Themen 3
O Unterschied Arrays, Listen, Mengen Java Basics - Anfänger-Themen 24
F Arrays im Konstruktor Java Basics - Anfänger-Themen 5
E Methoden 2 Arrays sortieren (MergeSort) Java Basics - Anfänger-Themen 3
R 2D Arrays mit vorgegebenem Muster Java Basics - Anfänger-Themen 2
R Auf eine Stelle [i] des Arrays zugreifen Java Basics - Anfänger-Themen 7
M Methoden Arrays.deepequals() funktioniert nicht Java Basics - Anfänger-Themen 2
O Länge eines Arrays Java Basics - Anfänger-Themen 6
X Arrays untereinander schreiben Java Basics - Anfänger-Themen 4
F Arrays Duplizieren Java Basics - Anfänger-Themen 14
J Erste Schritte Arrays ineinander Verschachteln Java Basics - Anfänger-Themen 6
UnknownInnocent Variablen Teile eines Arrays zufällig sortieren Java Basics - Anfänger-Themen 7
E Arrays nach best Muster füllen Java Basics - Anfänger-Themen 4
L Bestimmte Werte eines Arrays ausgeben. Java Basics - Anfänger-Themen 3
P JButton -Arrays Java Basics - Anfänger-Themen 4
Kornblume Nulltyp eines Arrays von Objekten? Java Basics - Anfänger-Themen 10
S Doppel For Schleife mit Arrays - Problem bei der Ausgabe Java Basics - Anfänger-Themen 4
I Scanner und Arrays Java Basics - Anfänger-Themen 2
I Probleme mit 2 dimensionale Arrays Java Basics - Anfänger-Themen 3
A Best Practice Undefinierte länge bei arrays Java Basics - Anfänger-Themen 4
I bestimmten Wert eines Arrays Java Basics - Anfänger-Themen 23
J Funktionsaufrufe Multiplikation von Arrays Java Basics - Anfänger-Themen 3
M Arrays auf Konsole formatiert ausgeben Java Basics - Anfänger-Themen 7
Z Ersten Buchstaben eines Elements eines String-Arrays auslesen Java Basics - Anfänger-Themen 5
javajoshi Problem mit zwei Threads und Arrays (Runnable) Java Basics - Anfänger-Themen 12
S Nach dem Herüberschieben eines Arrays zwischen 2 Frames öffnet sich das Frame nicht mehr Java Basics - Anfänger-Themen 12
J Arrays und Schleife Java Basics - Anfänger-Themen 6
I Ausgabe von Arrays Java Basics - Anfänger-Themen 2
T Variablen Dreidemensionale Arrays Java Basics - Anfänger-Themen 2
R Arrays und Listen Java Basics - Anfänger-Themen 1
A Arrays addieren- Was mache ich falsch?? Java Basics - Anfänger-Themen 2
F Arrays Sätze speichern und einzelne Worte mit Index Angabe auslesen Java Basics - Anfänger-Themen 4
jaleda100 2D-Arrays Java Basics - Anfänger-Themen 1
K Erste Schritte Berechnung der Summe zweier Arrays Java Basics - Anfänger-Themen 15
kokojamboo92 Schleifen und Arrays Java Basics - Anfänger-Themen 7
B Erste Schritte Histogramm mithilfe 2-dimensionaler Arrays Java Basics - Anfänger-Themen 4
K Arrays verknüpfen Java Basics - Anfänger-Themen 52
T Variablen Beliebig viele Arrays in Schleife erstellen Java Basics - Anfänger-Themen 1
J eine Art Histogramm mithilfe eines Arrays ausgeben Java Basics - Anfänger-Themen 11
J Wert eines Arrays einer Variable zuweisen, sobald der Wert eines anderen Arrays eintritt Java Basics - Anfänger-Themen 2
S Methoden Eindimensionale Arrays Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Anzeige

Neue Themen


Oben