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?
-
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:
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 zbmatrix[zx][zy] = ziel
muss ja am anfang die liste definieren
wie hiertypedef 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.