Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  TM - Plant Simulation
  Geheimnis Sortierer

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Geheimnis Sortierer (957 mal gelesen)
HeBr
Mitglied



Sehen Sie sich das Profil von HeBr an!   Senden Sie eine Private Message an HeBr  Schreiben Sie einen Gästebucheintrag für HeBr

Beiträge: 36
Registriert: 20.01.2005

erstellt am: 13. Feb. 2005 14:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo liebes Forum,

heute habe ich ein Sortierproblem - mit dem Sortierer...
Anhand einer selbstdefinierten Tabelle (S_Schluessel) möchte ich LKWs mit den Namen LKW_A ... LKW_D im Sortierer sortieren. In der Tabelle habe ich jedem LKW-Namen eine Zahl zwischen 1 und 4 zugeordnet und mit einer Methode sollen diese Zahlen ausgelesen werden und nach Größe absteigend sortiert werden.

Bsp:
wurde LKW_B die Nummer 4 zugeteilt, soll er als erstes wieder aus dem Sortierer rausfahren - obwohl er z.B. als drittes Fahrzeug in den Sortierer reingefahren ist.
So.
Grundlegend verstehe ich schonmal nicht wie dieser Sortierer und weiter auch die Methode, die ich ihm zuweisen kann, funktioniert und was mit den Werten passiert, die die Methode zurückgibt. Ok, das wird dann in die Inhaltsliste des Sortierers eingetragen, aber selbst wenn ich diese Liste direkt anspreche und sortiere kommen die LKWs immer noch nicht in der Reihenfolge raus die ich definiert habe.
Im Forum habe ich schon gelesen, dass der Sortierer keine Sortierzeit benötigt, was erklären würde, dass jeder einzelne LKW einfach so durch den Sortierer durchflutscht. Deshalb habe ich den Ausgang mal gesperrt, um zu schauen was dann passiert - aber auch dann erreiche ich nicht das gewünschte Ergebnis. Ich mein: wie kann ich was im Sortierer sortieren, wenn immer nur ein BE im Sortierer ist?!
Hier mal die Methode, die ich für den Sortierer gebastelt habe, die der Sortierer auch versteht aber dennoch nicht so ausliest, wie ich das gerne hätte. Ach ja, die Methode steht selbstverständlich im Sortierer unter Attribute --> Sortierkriterium.

: real
is
x: integer;
y: integer;

LKW_Name:String;

do
--S_1.AusgangGesperrt:=true;
LKW_Name:=@.Name;
print LKW_Name;
-- das finden der LKW_A, LKW_B, ... muss in eine Schleife eingebaut werden,
-- die nach und nach alle LKWs ausliest, um die Priorität der Reihenfolge
-- zurückzugeben.

S_Schluessel.ZeigerX:=1;
S_Schluessel.ZeigerY:=1;

S_Schluessel.finden(LKW_Name);

x:=S_Schluessel.ZeigerX;
y:=S_Schluessel.ZeigerY;
result := S_Schluessel[x+1,y];
--S_1.inhaltsliste.sortieren(1,"ab");
print result;
/*if S_1.statAnzahlEin<4 then
  S_1.AusgangGesperrt:=true;
else
  S_1.AusgangGesperrt:=false;
end;*/
print "testmarke";
end;


Freue mich wie immer auf Antwort:-)
Danke.

Gruß

Heiko


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 13. Feb. 2005 21:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi Heiko,

also die Sortiermethode gibt den jeweiligen Wert nach dem sortiert werden soll zurück. Diesen definierst Du ja selber in Deiner Sortiermethode (1..4). Wenn der LKW mit dem höchsten Wert als erster den Sortierer verlassen soll, dann mußt Du bei Belegung: "Aufsteigend" wählen !.
Weiterhin sollte bei sortieren:, "Bei Eintritt" stehen.

Wenn der Sortierer mehrere LKW´s bei der Sortierung berücksichtigen soll, dann kannst Du via Methode definieren, dass erst ab einem bestimmten Fuellstand die  LKW´s den Baustein verlassen sollen.

Siehe hierzu http://ww3.cad.de/foren/ubb/Forum262/HTML/000025.shtml


Gruß
 

------------------
DER SIMULATOR 

HeBr
Mitglied



Sehen Sie sich das Profil von HeBr an!   Senden Sie eine Private Message an HeBr  Schreiben Sie einen Gästebucheintrag für HeBr

Beiträge: 36
Registriert: 20.01.2005

erstellt am: 14. Feb. 2005 14:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Simulator,

es läuft!
Habe es allerdings etwas anders gemacht, als du vorgeschlagen hast.
Die if-Abfrage in der Eingangssteuerung hat nämlich nicht das gewünschte Ergebnis geliefert. Grund scheint folgender zu sein: Verlässt der erste LKW den Sortierer - passiert also die Ausgangssteuerung, wird der Ausgang  zwar geöffnet, der Sortierer wiederum startet aber nun für jedes noch in ihm verbliebene Element - sprich LKW - wieder die Eingangssteuerung, da sind aber nicht mehr so viele LKWs drin wie nötig und der Ausgang wird wieder gesperrt.
Habe nun eine globale Variable definiert, die die max. Anzahl an LKWs im System enthält. In der Eingangssteuerung ist nun eine if Abfrage mit "globaleVariable - Anzahl BEs im Sortierer=0". Falls wahr, dann öffne Ausgang. Der Ausgang wird also nur geöffnet, falls alle LKWs im Sortierer sind.
Die Ausgangssteuerung kann nun weggelassen werden.
Vieleicht habe ich bei der Umsetzung Deiner Lösung was falsch gemacht. Fände die Lösung nämlich eleganter, weil sie keine neueingeführten Variablen benötigt.

Dankeschön für deine Antwort.

Heiko

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz