Unterstützung bei einer für mich nicht lösbaren Aufgabenstellung.

  • C#

Es gibt 24 Antworten in diesem Thema. Der letzte Beitrag () ist von DerMannDerNichtKann.

    Unterstützung bei einer für mich nicht lösbaren Aufgabenstellung.

    Hallo Miteinander,

    das hier ist mein erstes Thema in diesem Forum und genau so wie ich hier in dem Forum neu bin, ist das programmieren Neuland für mich...

    Leider bin ich mit der Aufgabenstellung, die mir gegeben wurde, ernsthaft überfordert, da ich erst seit ca. 3 Monaten Informatik in der Uni habe.

    Mein Problem ist das folgende: Ich soll einen Roboter so programmieren, dass er (wenn die Funktion "FuehereAuftragDurch()" aufgerufen wird er) eine von drei Aktionen ausführen soll.

    Allerdings weiß ich nicht wie ich an das Problem herangehen, geschweige denn lösen soll.

    Vorgegeben ist mir der folgende Quelltext:
    /// <summary>
    /// Die in der Simulation durchzuführende Aufgabe.
    /// </summary>
    public override void FuehreAuftragDurch()
    {
    // Deaktiviert das SimulationsObjekt
    // Die Robotersteuerung wird nun in der Simmulation nicht mehr berücksichtigt.
    SetEnabled(false);
    }

    Im Anhang befindet sich die Aufgabenstellung noch einmal explizit erklärt (TA-3.3) , ich hoffe das mir jemand hier helfen kann und verweile.

    Vielen Dank im Voraus für eure Mühen,

    mit freundlichen Grüßen asdf.
    Dateien
    Du hast in deiner FuehreAuftragDurch() insgesamt 3 Möglichkeiten, was du für einen Auftrag durchführst.

    1. Bedingungen:
    - Roboter hat ein Teil
    - Teil ist nicht null

    Auszuführen:
    - Produktionseinrichtung zum nächsten empfangsbereiten Arbeitsschritt suchen
    Produktionseinrichtung gefunden
    -> fahre Roboter an diese Produktionseinrichtung, wenn noch nicht dort
    -> Übergebe Teil an Produktionseinrichtung -> Roboter enthält kein Teil mehr
    -> Verarbeite der Produktionseinrichtung anstoßen
    andernfalls
    -> Teil in Produktionseinrichtung EINLAGERN bringen
    -> EINLAGERN anstoßen

    2. Bedingung:
    - Roboter ohne Teil

    Ausführen:
    -> suche Produktionseinrichtung mit Status ABHOLBERREIT
    -> fahre Produktionseinrichtung an, wenn nicht schon dort
    -> sammle Teil ein

    3. Bedingung:
    - kein Teil kann eingesammelt oder transportiert werden ("else")
    Ausführen:
    - nix


    Also im Grunde hast du hier alles was du benötigst, um das in Code umzusetzen.
    Mithilfe von Selektion kannst du somit diese Fälle (Bedingungen) abfragen und die jeweilige Ausführung starten.


    Ich weiß, ich hab aus dem Text nur Stichpunkte gemacht, aber durch diese Strukturierung machst du dir klar, was du brauchst und was geschehen soll.

    LG Acr0most
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    @asdfghjklöä Willkommen im Forum. :thumbup:
    Ich hab mal in das PDF reingesehen, da ist mir der Begriff

    PDF-Dokument schrieb:

    Selbstständigkeitserklärung
    aufgefallen.
    Kannst Du das bitte erläutern?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany

    Ich möchte nicht das ihr mir hier den Quelltext einfach gebt damit ich ihn abschreiben kann...Ich würde mich freuen wenn ihr mir in der Hinsicht helft, dass mir jemand sagt welche Schleifen ich z.B. für die Bedingungen nehmen soll.

    Oder wie ich das Teil in die Bedingung einbinden soll, also was für ein Typ (int, string...) das Teil ist.

    Zum Thema Schleife habe ich an eine if
    else if
    else
    Schleife gedacht, nur weiß ich nicht wie ich das Teil als Varibable darstellen soll die die geforderten Bedingungen erfüllt.

    MfG asdf

    asdfghjklöä schrieb:


    Zum Thema Schleife habe ich an eine if
    else if
    else
    Schleife gedacht, nur weiß ich nicht wie ich das Teil als Varibable darstellen soll die die geforderten Bedingungen erfüllt.


    Na da scheint mir, als wenn da jemand noch nicht Sattelfest ist was die Basics angeht. Vielleicht schaust du dir zunächst (nochmal) die Grundlagen an. Ggf. Hilft es auch ein Buch zu kaufen das einem die Grundlagen strukturiert vermittelt...

    Einige wichtige Grundlagen:
    - Datentypen
    - Schleifen (While/Dor/For Each)
    - Bedingte Anweisungen (If/Else)



    P.s. If/Else If/Else ist keine Schleife.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Hab mir das PDF mal angeschaut. Ich täte dir daher dringend Raten, dich in die OOP einzuarbeiten. Ohne das, wird das, wenn überhaupt, zu keinem sauberen Ergebnis führen. In dem PDF steht eigentlich ganz gut Beschrieben, wie du deiner Klassen aufbauen muss. Da wird z.B von Teilen gesprochen, die eine Liste an Verarbeitungsschritten beinhalten und so...
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    @mrMo
    In dem PDF steht eigentlich ganz gut Beschrieben, wie du deiner Klassen aufbauen muss. Da wird z.B von Teilen gesprochen, die eine Liste an Verarbeitungsschritten beinhalten und so...

    Die einzelnen Klassen habe ich bereits in meiner Projektmappe erzeugt und bearbeitet, mir fehlt lediglich der Ansatz wie ich die 3. Aufgabe der 3. TA zu lösen habe, weil ich nicht genau weiß welche ANWEISUNG ich nehmen soll und wie ich das Teil in die Schleife zu implementieren habe...

    @EaranMaleasi , @Acr0most doch, ich habe seine Antwort zu Kenntnis genommen, sorry ich habe allerdings vergessen ihm zu antworten.... Zu dem Thema: Wie ich bereits oben schon zu @mrMo gesagt habe: "Die einzelnen Klassen habe ich bereits in meiner Projektmappe erzeugt und bearbeitet, mir fehlt lediglich der Ansatz wie ich die 3. Aufgabe der 3. TA zu lösen habe, weil ich nicht genau weiß welche ANWEISUNG ich nehmen soll und wie ich das Teil in die Schleife zu implementieren habe..."

    Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von „asdfghjklöä“ ()

    Achso, na aber das hat dir @Acr0most doch schön aufgelistete. Das wäre dann vermutlich mit If/Else/etc. umsetzbar.

    Kleiner Tipp von mir:
    Wenn ich ein Problem habe das ich nicht lösen kann, versuche ich selbiges zu visualisieren. Ich male mir also das Problem auf und versuche es zeichnerisch zu lösen (so mit Pfeilen und so, wie ein Schaubild halt). Wenn ich das hin bekommen habe, ist es einfach den Code dazu zu schreiben.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    @mrMo
    Kleiner Tipp von mir:Wenn ich ein Problem habe das ich nicht lösen kann, versuche ich selbiges zu visualisieren. Ich male mir also das Problem auf und versuche es zeichnerisch zu lösen (so mit Pfeilen und so, wie ein Schaubild halt). Wenn ich das hin bekommen habe, ist es einfach den Code dazu zu schreiben.


    Naja das habe ich ja alles schon in den TA 1 und 2 gemacht mit Hilfe von Sequenz- und Klassendiagrammen.Aber wirklich helfen tut mir das nicht, den Text verstehe ich auch ohne Probleme und ich weiß auch was ich zu tun habe, da ich aber erst vor ca. 2 Monaten mit dem programmieren angefangen habe, bin ich noch extrem unsicher was mein Problem in diesem Thema darstellt. Ich weiß einfach nicht wie ich an das Problem (in Form eines Quelltextes) herangehen soll... Ich denke mir fehlen in der Hinsicht wirklich die Basics.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „asdfghjklöä“ ()

    Also in der Klasse AbstrakterRoboter hast du Referenzen auf beliebig viele Produktioneinrichtungen,

    zunächst musst du die Ausgabe jeder Produktionseinrichtung abfragen (GetAusgabe() in einer for Schleife)

    Wenn es jetzt mindestens eine Produktionseinrichtung gibt die eine Ausgabe != null erzeugt hat, hat der Roboter ein Teil (if Abfrage)

    Dann musst du wieder durch alle Produkteinrichtungen gehen und schauen ob du eine Produkteinrichtung findest die für GetAktuellerStatus() den Status.EMPFANGSBEREIT zurückgibt.

    das geht jetzt so ewig weiter, eigentlich steht im Text alles drinne was man braucht, du musst nur im Klassendiagramm schauen welche Methoden du benutzen musst um das ganze umzusetzen.

    Wenn da also steht:

    " Ist diese gefunden, so wird die Position der
    Produktionseinrichtung
    durch den Roboter angefahren, wenn er sich
    nicht schon an dieser Position befindet" (quasi was nach EMPFANGSBEREIT kommt)

    Dann schaust du was der Text da aussagt.

    1. Ist diese gefunden -> zwei Möglichkeiten (gefunden/nicht gefunden) -> if verzweigung
    2. Position der Produktionseinrichtung durch den Roboter angefahren -> Suche nach einer Methode in der Klasse Produktionseinrichtung mit der du dessen Position erfragen kannst und eine in Roboter in der du dessen Position setzen kannst (z.B. GetPosition() in Produktionseinrichtung) oder eben verschiedene Methoden die zusammen gesetzt diese Aufgabe erfüllen
    3. ,wenn er sich nicht schon an dieser Position befindet -> zwei Möglichkeiten (befindet sich dort/befindet sich dort nicht) -> if verzweigung
    @RushDen
    Wenn es jetzt mindestens eine Produktionseinrichtung gibt die eine Ausgabe != null erzeugt hat, hat der Roboter ein Teil (if Abfrage)

    Diesen Satz habe ich nicht ganz verstanden...warum hat der Roboter ein Teil wenn mindestens eine Produktionseinrichtung die Ausgabe "Ungleich Null" erzeugt hat?

    Ansonsten: Vielen Dank für den Rest deines Kommentars, er hat mir sehr weiter geholfen! :)

    asdfghjklöä schrieb:

    damit ich ihn abschreiben kann
    Bitte erläutere zunächst, was Du in der Selbstständigkeitserklärung unterschreibst, damit wir erkennen können, inwieweit unsere Hilfe gehen darf.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany das Zitat von mir ist unvollständig, ich habe gesagt das ich NICHT einfach alles Abschreiben will, sondern nur, wie das @RushDen schon gut gemacht hat, mir Ansätze geben die mir Helfen die Lösung zu finden.
    Zu der Selbstständigkeitserklärung: "Mit meiner Unterschrift bestätige ich, dass alle von mir eingereichten Dokumenten (Modelle, Diagramme, Quelltexte, Dokumentationen, u. Ä.) von mir selbst entwickelt und erstellt wurden und ich meine Lösungen und Lösungsansätze niemandem weitergegeben habe. Zitate und kopierte Inhalte sind in den Belegen und Quelltexten mit Quellenangabe kenntlich gemacht. Es wurden ausschließlich die von den Tutoren in den Praktikumszeiten angebotenen sowie die unten deklarierten Quellen in Anspruch genommen."
    Falls das so OK für dich ist...?
    @asdfghjklöä Ja, das ist OK.
    Problem: Wenn Du von hier Ansätze übernimmst und für Dich perfektionierst, erwarten wir von Dir die Offenlegung der Lösung.
    Dafür darfst Du hier kostenlos Hilfe abgreifen.
    Allerdings darfst Du niemandem nichts weitergeben.
    Das sieht nicht gut aus. ;(
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Also die Selbstständigkeitserklärung ist doch ein Witz, oder?
    Es ist Teil des Lernens, bei Unverständnis zu Fragen. Egal ob Tutoren oder Leuten mit Ahnung im Forum.
    Dies durch eine Klausel zu unterbieten ist m.M.n. kompletter Blödsinn.

    Solange man nicht anfragt nach dem Motto "Ey, mach mich mal die Programm", sondern nach kleineren Ansätzen und Ideen fragt, ist es doch ok?

    Jeder der erst anfängt und/oder seit zig Jahren in einer Firma arbeitet, fragt sich mal durch um einer Lösung näher zu kommen.

    @RFG was meinst du gibt es für Möglichkeiten, dass dem TE geholfen wird? - Außer den Tutoren.


    LG Acr0most
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    @Acr0most Vielen Dank für dein Verständnis, ich sehe das genau so, bis jetzt musste ich in meiner ganzen schulischen Laufbahn noch keine Selbstständigkeitserklärung für irgendwas abgeben...
    Aber wenn @RodFromGermany das so für angemessen empfindet werde ich mein bestes geben diesen Anforderungen gerecht zu werden und mein Ergebnis dann anschließend hier posten! :)
    Ansonsten würde es mich auch mal interessieren wie Du RFG an die Sache herangehen würdest, genau wie Acr schon gefragt hat?