Therealone1998 Geschrieben 18. Oktober 2019 Geschrieben 18. Oktober 2019 Guten Tag, und zwar soll ich eine Software programmieren, die die kürzeste Route innerhalb eines Lagers berechnet und diese ausgibt. Das Lager besteht aus Räumen, in welchen Verschiedene Regale vorhanden sind. Meine Frage ist nun, welche Möglichkeiten euch einfallen diese Gegebenheit zu programmieren. Ich habe mich sehr kurz gefasst, das weiß ich. Im grundegenommen möchte ich auf einem Bereich Regale platzieren und ich habe mich noch nicht so ganz entschlossen, wie ich das machen könnte. Meine Idee wäre ein Mehrdimensionales Array für das Lager zu machen und dort die Schränke mit anderen mehrdimensionalen Arrays zu platzieren. Nur ist die Frage, ob man auf Mehrdimensionalen Feldern auch andere Mehrdimensionale Felder ablegen kann. Oder fällt euch was besseres ein? Wie meint ihr kann man die Räume kennzeichnen und überhaupt die Route berechnen? Zitieren
L3v14than Geschrieben 18. Oktober 2019 Geschrieben 18. Oktober 2019 (bearbeitet) Hi! Ja, du kannst Arrays verschachteln. Um dir helfen zu können fehlen mir noch Informationen zu deiner Code-Struktur und Zielstellung. Da wären z.B. ein UML-Diagramm und ein PAP hilfreich. Außerdem müsste ich wissen, anhand welcher Umstände die Routen berechnet werden sollen, spielt z.B. eine Metrik wie Steigung der Wege eine Rolle? Ich gehe davon aus, dass du objektorientiert programmieren möchtest. Also schätze ich, dass du Räume, Regale und Bereiche durch Klassen realisiert hast. Um eine Route berechnen zu können, brauchst du ja irgendeine Repräsentation der möglichen Wege und Schritte.Ich würde mir ein Grid-Modell ausdenken, also ein 2D-Koordinatensystem. Die Regale erhalten dann Koordinaten in Form von Punkten (x,y). Nun könnte man es ganz einfach und statisch halten und die konkreten Routen zu allen anderen möglichen Zielen in einem mehrdimensionalen Array hinterlegen: Bsp: 5 Regale A, B, C, D und E haben die Koordinaten (1,1), (2,2), (3,1), (2,4), (2,5). Die möglichen Routen sind so definiert, dass man von B aus in alle Räume außer E kommt, E ist nur mit D direkt verbunden. --> Array mit 5 Feldern für Regale, in den Feldern dann Arrays mit Zielen. (A) -> (B) (B) -> (A,C,D) (C) -> (B) (D) -> (B,E) (E) -> (D) Wenn nun die Aufgabe lautet: Berechne Route von E nach A, kannst du bei E beginnend rekursiv über die Ziele iterieren und schauen, welche Routen dich nach A bringen und welche davon die geringste Differenz haben. Die Differenz kann man Berechnen, indem man die Differenzen der einzelnen Punkt-Koordinaten berechnet. Bearbeitet 18. Oktober 2019 von L3v14than Zitieren
Whiz-zarD Geschrieben 19. Oktober 2019 Geschrieben 19. Oktober 2019 Keine Ahnung, wie weit du schon bist aber wie viel Erfahrung du schon in der Softwareentwicklung hast aber schaue dir den Dijkstra-Algorithmus an: https://de.m.wikipedia.org/wiki/Dijkstra-Algorithmus L3v14than reagierte darauf 1 Zitieren
Therealone1998 Geschrieben 19. Oktober 2019 Autor Geschrieben 19. Oktober 2019 (bearbeitet) Ok danke euch schonmal, also beim Klassendiagramm bin ich mir noch etwas unsicher. Ich habe aber mal mein User Case-Diagram hinzugefügt, vllt. hilft euch das noch, um das Programm zu verstehen. Also genau L3v14than die Route hat keine Steigung, das Lager hat nur mehrere Etagen, sobald man mehr als 2 Etagen absuchen muss, sollte der Auftrag aufgeteilt werden. Und wie genau kann man Arrays verschachteln. Also wenn ich jetzt ein Feld habe und dort ein Regal platzieren möchte, dass eine Länge von x und eine breite von y und je Fach noch eine Aufteilung in drei verschiedene Verschiebbare Bereiche hat. Das Programm muss ja auch überprüfen können, wo sich das Produkt befindet, dass am kürzesten zu erreichen ist. Das heißt ich müsste ein Zusammenspiel aus den Räumen, den Produkten und dem Koordinatensystem(für die Routenberechnung) haben. Oder verstehe ich dich da falsch? Danke für eure Hilfe Bearbeitet 19. Oktober 2019 von Chief Wiggum Dateianhang entfernt. Zitieren
L3v14than Geschrieben 19. Oktober 2019 Geschrieben 19. Oktober 2019 (bearbeitet) Das "Verschachteln von arrays" findest du mit google unter genau diesen Worten im ersten Treffer. ? Dabei ist "mehrdimensionales array" präziser. Letztlich: int [] [] myArray = new int[4][2]; Leg bitte die komplette Aufgabenstellung auf den Tisch. Gerne gehe ich da mit dir zusammen durch, aber nur frustriert, wenn sich wichtige Spezifikationen mittendrin ändern. Die weitere DImension ist aber nicht schwer hinzuzufügen, die Koordinaten erhalten nur eine Angabe mehr: P(x,y,z). Was Zusammenspiel von Räumen, Regalen und Produkten betrifft: Da kommt es auf deine Spezifikation/Aufgaben-/Zielstellung an. Musst du denn mit mehrdimensionalen Arrays arbeiten? Du könntest dir ansonsten für die Dinge Klassen anlegen: class Raum{ private 3dPunkt punkt; private Regal[] regale; //Konstruktor, Getter und Setter } class Regal{ private Artikel[][] artikel = new Artikel[breite][laenge]; //Konstruktor, Getter und Setter } class Artikel{ private String artikelName; private double artikelPreis; //etc. //Konstruktor, Getter und Setter } Dann legst du dir eine HashMap<Raum, Vector<Raum>> an und legst so zu jedem Raum die verbundenen Räume fest. Bearbeitet 19. Oktober 2019 von L3v14than Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.