# Vorstellungsgesprächsfrage



## steph90 (17. Apr 2018)

Problemstellung ist das aus dem Vorstellungsgespräch bekannte Lagerproblem. In einem Lager gibt es einen Roboter der eine Anzahl an Objekten im Lager auf mö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 Grafikoberfläche anzuzeigen.

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

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

Bsp fü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 über die Konsole festgelegt werden können.

- Es soll eine Möglichkeit geben, ‘s’ und ‘r’ zufällig aus einer festen Menge an Zahlen bestimmen zu lassen.

3)
- Es soll einen Startpunkt ‘r‘ für den Roboter geben. Auch ‘r’ soll als Kommandozeilenargument oder über die Konsole festgelegt werden können.

- Der Startpunkt soll zufällig im Grid verteilt und auf der Konsole durch ein beliebig gewähltes Symbol angezeigt werden.

Bsp für s = 3, r = 4, Startpunkt im Grid gekennzeichnet durch ‘p’

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

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


‘z’ soll als Kommandozeilenargumente oder über die Konsole festgelegt werden können


‘z’ soll aus zufällig aus einer festen Menge an Zahlen festgelegt werden können

- Die zu sammelnden Objekte sollen zufällig im Grid verteilt und auf der Konsole durch ein beliebig gewähltes Symbol angezeigt werden.

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

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

5)
- Es soll eine Möglichkeit geben, sich das Lager wie auf der Konsole auch in einer Grafikoberfläche anzeigen zu lassen.

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


----------



## Robat (17. Apr 2018)

Was genau glaubst du denn was jetzt hier passieren wird ohne konkrete Fragestellung deinerseits?


----------



## thecain (17. Apr 2018)

Bekomme ich dann auch deinen Job? oder was ist der Sinn davon, dass du diese Frage hier stellst?


----------



## AndiE (17. Apr 2018)

Wie funktioniert denn die Robotersteuerung?


----------



## steph90 (18. Apr 2018)

ich hab schon die erste Aufgabe gelöst. nun verstehe ich nicht die andere deshalb brauche ich eure Hilfe oder ein paar Tipps


----------



## Flown (18. Apr 2018)

Zeig doch mal deinen Code. Bitte Code-Tags verwenden [code=java]//JAVA CODE HERE[/code]


----------



## steph90 (18. Apr 2018)

die 2)

```
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!");
  }
}
```


----------



## Flown (18. Apr 2018)

@steph90  Wow du hast nicht mal meinen ganzen Post gelesen:


Flown hat gesagt.:


> Bitte Code-Tags verwenden
> 
> 
> 
> ...


----------



## steph90 (18. Apr 2018)

was ist das code-tags?


----------



## steph90 (18. Apr 2018)

Flown hat gesagt.:


> @steph90  Wow du hast nicht mal meinen ganzen Post gelesen:


sorry


----------



## MoxxiManagarm (18. Apr 2018)

> Problemstellung ist das aus dem Vorstellungsgesprä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 (18. Apr 2018)

MoxxiManagarm hat gesagt.:


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


bist du mit Java löffeln geboren? 
ich möchte gern lernen deswegen


----------



## MoxxiManagarm (18. Apr 2018)

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.


----------



## steph90 (18. Apr 2018)

wenn dir sage dass ich gern lernen möchte, heißt dass ich weder einen Studium, noch eine Ausbildung.


----------



## MoxxiManagarm (18. Apr 2018)

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.


----------



## prgprg (18. Apr 2018)

Lern erst mal die Grundlagen wenn du an so einer Aufgabe schon scheiterst.


----------



## AndiE (18. Apr 2018)

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.


----------

