Anfänger braucht Hilfe



  • Soll für die Fh ein Programm schreiben , welches in einer Matrixkarte von einem Zielpunkt zu einem Startpunkt den kürzesten Weg findet

    Habe die Eingaben nun auch direkt in den Quelltext reingemacht und nicht dynamisch gehalten, um es erstmal zum laufen zu bekommen.

    #include <stdlib.h>
    #include <stdio.h>
    
    //Deklaration der Matrix
    
    int leer=0;
    int wand=255;
    int start=254;
    int ziel=1;
    
    //Deklaration von Start und Ziel
    
    int start_x=5;
    int start_y=3;
    int ziel_x=0;
    int ziel_y=3;
    
    //X ist vertikal, Y ist horizontal
    int map[6][6]=	{{0,0,0,0,0,0},
    				 {0,0,0,0,0,0},
    				 {0,0,0,0,0,0},
    				 {255,255,255,255,0,0},
    				 {0,0,0,0,0,0},
    				 {0,0,0,0,0,0}};
    

    Nun soll das alles weiter mit einer First in First out schleife funktionieren, hier scheiterts nun... ich weiß einfach nicht wie ich da weitermachen soll?

    Vlt kann mir einer helfen?


  • Mod

    Da steht nix von "first in first out Schleife". So etwas gibt es nicht. Lies deine Aufgabe noch einmal genauer.

    edit: Eine first in first out Datenstruktur nennt der Informatiker übrigens eine Queue (zu deutsch Warteschlange wie in deiner Aufgabenstellung :p ). Ich schätze mal, dieses Wort wird dich auf den richtigen Pfad lenken.



  • Warum nimmst du nicht das konkrete Beispiel aus der Aufgabenstellung?
    Und dann schreibe doch mal wenigstens die Prototypen für die dort geforderten Funktionalitäten hin (push,pop). Ebenso die Struktur der Listenelemente.



  • ich krieg des irgendwie ned gebacken... schönes nebenfach soll das sein 🙂



  • Ich glaub, du siehst das viel zu kompliziert 😉

    Bei solchen Aufgaben kann man doch fast alles Schritt für Schritt machen.

    Versuch doch erst einmal die Ausgangsposition auszugeben, so wie sie dir gestellt wurde. Und die Ausgabe packst du in ein Unterprogramm, das du, wenn du die Wavefront-Geschichte angehst nach jedem Schritt wieder aufrufst.

    Aber ein wenig mehr Ehrgeiz kann nicht schaden, wenn das mit dem Studium etwas werden soll 😃

    MfG f.-th.



  • Hier hast du mal was zum Grübeln:

    http://ideone.com/3IpAO

    Genug Arbeit aus der Aufgabenstellung ist auch noch übrig, z.B. die sicheren Eingabeprüfungen und erklären sollst du den Code ja auch können.



  • big thx, dass hilft mir sehr weiter, hab da gestern noch was rausbekommen, ich poste euch mal morgen was ich so bis jetzt rausbekommen hab





  • Shad0vv schrieb:

    big thx, dass hilft mir sehr weiter, hab da gestern noch was rausbekommen, ich poste euch mal morgen was ich so bis jetzt rausbekommen hab

    hey, kannst du vlt posten wie weit du bist? wäre schön zu erfahren, was da neues rausgekommen ist.
    Gruß



  • naja finde den code von wutz bissel zu kompliziert für die aufgabenstellung, ich raff da ned viel 🙂

    viele dinge hat der prof ned mal in der vorlesung angeschnitten, die du benutzt...

    jmd vlt ne idee für ne einfachere lösung



  • Nur nach einer Lösung fragen? Welcher kleine Mann sitzt denn in der Klausur in deinem Ohr, wenn du eine ähnliche Aufgabe bekommst?

    Also ein wenig mehr Eigeninitiative sollte da schon kommen.

    Also schreib schon eine Ausgabefunktion - das solltest du gebacken bekommen. Die Wellenlogik machst du danach und, wenn du die Ausgabefunktion gut geschrieben hast über nimmst du die 1:1, sonst besserst du die halt nach.

    Aber geh die Sache an, der Countdown läuft.

    MfG f.-th.



  • ist mir schon klar nur ich bekomm das mit der liste nicht hin



  • also ich hab das nun soweit, dass die eingabe fertig ist und er start ziel und hindernisse in der matrix speichert und diese ausgibt.

    wie mache ich das nun mit der liste, man soll ja als ausgangswert das ziel nehmen.
    ziel ist dann zb

    matrix[zx][zy] = ziel
    

    muss ja am anfang die liste definieren
    wie hier

    typedef struct {int x,y;} Koordinate;
    typedef struct {int z;Koordinate *liste;} Agenda;
    

    und dann das push und pop ding bauen

    wie mach ich dies nun, bzw wie geb ich dann den ausgangswert in die liste

    per

    push(&a,ziel);
    

    ????



  • verstehe auch ned was dein getfield und setfield genau macht



  • Shad0vv schrieb:

    verstehe auch ned was dein getfield und setfield genau macht

    Was getfield/setfield in Zusammenhang mit Matrizen wohl machen, dürfte doch wohl schon in der Vorstellungswelt von Abiturienten liegen.


Anmelden zum Antworten