Vorstellungsgesprächsfrage

steph90

Mitglied
Problemstellung ist das aus dem Vorstellungsgespräch bekannte Lagerproblem. In einem Lager gibt es einen Roboter der eine Anzahl an Objekten im Lager auf möglichst kurzem Weg einsammeln soll.

Ziel der Aufgabe ist es ein Lager, einschließlich Roboter und zu sammelnder Objekte in simpler Form darzustellen und auf der Konsole, sowie als Grafikoberfläche anzuzeigen.

Das durch das Lager dargestellte Problem soll dann mithilfe des ‘Nearest Neighbor’ Algorithmus, bei dem der Roboter immer das nächstgelegene nächste Objekt ansteuert, gelöst werden.

1)
- Schreibe ein Programm, dass für 2 variable Zahlen ‘s’ und ‘r’ ein s * r Grid erstellt und dieses auf der Konsole ausgibt.

Bsp für s = 3, r = 4:

| 1,1 | 2,1 | 3,1 | | 1,2 | 2,2 | 3,2 | | 1,3 | 2,3 | 3,3 | | 1,4 | 2,4 | 3,4 |

2)
- Das Programm soll so gestaltet sein, dass ‘s’ und ‘r’ als Kommandozeilenargumente oder über die Konsole festgelegt werden können.

- Es soll eine Möglichkeit geben, ‘s’ und ‘r’ zufällig aus einer festen Menge an Zahlen bestimmen zu lassen.

3)
- Es soll einen Startpunkt ‘r‘ für den Roboter geben. Auch ‘r’ soll als Kommandozeilenargument oder über die Konsole festgelegt werden können.

- Der Startpunkt soll zufällig im Grid verteilt und auf der Konsole durch ein beliebig gewähltes Symbol angezeigt werden.

Bsp für s = 3, r = 4, Startpunkt im Grid gekennzeichnet durch ‘p’

|||| |p | | | |||| ||||

4)
- Es soll eine bestimmte Anzahl an zu sammelnden Objekten ‘z‘ geben. - Für ‘z’ sollen die gleichen Regeln wie für ‘s’ und ‘r’ gelten: ‘

  • ‘z’ soll als Kommandozeilenargumente oder über die Konsole festgelegt werden können

  • ‘z’ soll aus zufällig aus einer festen Menge an Zahlen festgelegt werden können

    - Die zu sammelnden Objekte sollen zufällig im Grid verteilt und auf der Konsole durch ein beliebig gewähltes Symbol angezeigt werden.

    Bsp für s = 3, r = 4, z = 4 zu sammelnden Objekte im Grid gekennzeichnet durch ‘x’

    |p | | x| |x | | | | | x| | |x | | |

    5)
    - Es soll eine Möglichkeit geben, sich das Lager wie auf der Konsole auch in einer Grafikoberfläche anzeigen zu lassen.

    6)
    - Es soll eine Möglichkeit geben, dass durch das Lager dargestellte Problem mithilfe des ‘Nearest Neighbor’Algorithmus zu lösen und die Lösung anzeigen zu lassen
    könnte jemand mir dabei helfen.
    ich habe nur die ersten 2 Frage gemacht.
    danke im voraus
 

steph90

Mitglied
die 2)
Java:
public static void main(String[] args) throws IOException {
  int s = 0; // Zahl der Spalten
  int r = 0; // Zahl der Zeilen
  BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  System.out.print("Enter Zahl der Spalten 's': ");
  try {
    s = Integer.parseInt(br.readLine());
    System.out.print("Enter Zahl der Zeilen 'r'  : ");
    try {
      r = Integer.parseInt(br.readLine());
      int[][] matrix = new int[r][s];
      for (int i = 0; i < matrix.length; i++) {
        matrix[i] = new int[s];
      }
      for (int i = 0; i < r; i++) {
        System.out.print("|");
        for (int j = 0; j < s; j++) {
          System.out.print((j + 1) + "," + (i + 1) + "|");
        }
        System.out.println();
      }
    } catch (NumberFormatException nfe) {
      System.err.println("Invalid Format!");
    }
  } catch (NumberFormatException nfe) {
    System.err.println("Invalid Format!");
  }
}
 
Zuletzt bearbeitet von einem Moderator:

MoxxiManagarm

Top Contributor
Problemstellung ist das aus dem Vorstellungsgespräch bekannte Lagerproblem
Also ein Einstellungstest, ja? Wieso bewirbst du dich, wenn du es nicht kannst.

int[][] matrix = new int[r];

Das kann gar nicht funktionieren, du weißt ein 1-dimensionales Array einem 2-dimensionalen Array zu. Die anschließende Schleife bräuchtest du wenn dann nur für Objekte.

Die Kommandozeilenparameter stehen in args, am besten kümmerst du dich um diese als nächstes.
Viele nutzen dafür gerne http://commons.apache.org/proper/commons-cli/
 

steph90

Mitglied
Also ein Einstellungstest, ja? Wieso bewirbst du dich, wenn du es nicht kannst.



Das kann gar nicht funktionieren, du weißt ein 1-dimensionales Array einem 2-dimensionalen Array zu. Die anschließende Schleife bräuchtest du wenn dann nur für Objekte.

Die Kommandozeilenparameter stehen in args, am besten kümmerst du dich um diese als nächstes.
Viele nutzen dafür gerne http://commons.apache.org/proper/commons-cli/
bist du mit Java löffeln geboren?
ich möchte gern lernen deswegen
 

MoxxiManagarm

Top Contributor
Aber normalerweise lernt man das doch in einem Studium oder in einer Ausbildung...
Hast du da geschlafen?

Das Lagerproblem ist jetzt für mich auch nicht das gängigste unter den Einstellungstests. Die sehen da komplett verschieden aus.
 

MoxxiManagarm

Top Contributor
Aber ist das von einem echten Einstellungstest für dich?

Falls ja: Unternehmen machen den Einstellungstest um ein Grundverständnis vorauszusetzen. Wenn du das noch nicht hast dann bist du einfach noch nicht so weit.
Falls nein: Dann ist es empfehlenswerter kleiner anzufangen. Dafür ist die Aufgabe doch recht mächtig im Umfang.
 

AndiE

Top Contributor
Wenn du dich testen willst, könne man so vorgehen:
1. erst einmal feste Werte annehmen
2. bei einem Raster von 3 x 4 ergeben sich 12 Lagerfächer, die einen Inhalt haben können ODER vor denen der Roboterarrm stehen kann (ODER= logisches oder)
3. Die nächste Aufgabe wäre also: Fülle das Raster 3 x 4 mit 5 Gegenständen('x') und einem Roboterarm('r').

Tipp:
Mache das nicht alles prozedural, sondern schwenke recht bald auf Klassen um.
Ich finde BlueJ für Anfänger gut inklusive des Buches, das es dazu gibt. Besorge dir das und lerne damit.

mache dir klar, dass du ein Lagerfach mit (Zeile, Spalte) ansprichst.

Und nun viel Erfolg.
 

Neue Themen


Oben