Vermisst

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Vermisst
Wo bleibt der Heulthread? Oder gab es tatsächlich nix zu meckern?

2 Likes

War tatsächlich ganz fair imho, klassiche RK-Klausur und defintiv besser als die von letztem Semester ;),
Für ne ordentliche Umfrage war ich für meinen Teil heute zu faul, Bitte um Verzeihung.


War ne faire Klausur (und ich danach zu gut drauf und beschäftigt, um eine Umfrage zu erstellen).


Fand die Programmieraufgabe leider nich ganz so dankbar wie erhofft :stuck_out_tongue: aber war wirklich in Ordnung

1 Like

Von meiner Seite gibst auch nix zu meckern. War ziemlich fair.
Programmieraufgabe fand ich jetzt nicht schwer, und Routing ist wie immer halt(außer letztes sem -.-).


Programmieren war doch nur den Statechart abschreiben oder nicht? also ich hab nur if/else gebraucht.

Was ich nich versteh, bei der einen funktion war „void a(void);“ gegeben? was soll das void in der Klammer? Hab das vorhin extra mal in Netbeans probiert, aber da kommt n Syntaxerr?!


Dann lügt dein Netbeans wohl… [m]void[/m] in der Klammer bewirkt, dass du die Funktion nicht mit mehr Parametern aufrufen kannst, als sie deklariert ist (das geht, wenn du das [m]void[/m] nicht angibst).

Beispielsweise kompiliert also

void a() {}
int main() {
  a("foo");
}

aber nicht

void a(void) {}
int main() {
  a("foo");
}

In C++ ist das [m]void[/m] bei leerer Parameterliste übrigens implizit, d.h. mit einem C+±Compiler würde keines der beiden Beispiele kompilieren.


Nur wird in RK in Java programmiert und da ist void a(void) durchaus ein syntaktischer Fehler.
Da hammse beim erstellen der Aufgabe wohl die Programmiersprachen durcheinander gehauen :wink:

2 Likes

Aber wo wir grade bei der Programmier-Aufgabe sind: Was hatte denn das Schlüsselwort nicht blockierend zu bedeuten?
Ich hab das mal so interpretiert, dass es einfach keinen “ausweglosen” Zustand gibt, was aber ja eigtl. schon aus dem Statechart hervorgeht. Groß zu parallelisieren schien mir dann doch etwas zu viel…


@F30 so hab ich das auch interpretiert, mir kam die ganze Aufgabe aber etwas zu trivial vor als das es so stimmen könnte…

Hat noch jemand im Kopf was er da hingeschrieben hat und kann das mal Skizzieren? :slight_smile:

@neverpanic: ja in C geht das, aber in Java nicht, was aber geht ist sowas wie “void a(void b);” was “passiert” dadurch denn?


Kurze Zwischenfrage: Weißt jemand zufällig wie lang die Korrektur ungefähr dauert?


ca. 7 Tage, angeblich diesen Freitag oder kommenden Montag soll sie korrigiert sein!


Ich würde eher annehmen, dass man nicht auf irgendwelche Ereignisse warten sollte, quasi sleep-ähnliche Funktionen, die blockieren, bis ein Datenpaket ankommt oder sowas. Reine Spekulation :slight_smile:


ja? Gut, dann wars wohl doch so einfach :o dachte mir nur, dass ich irgendwas übersehen habe ^^


Ist mir unbekannt, kannst dir ja mal den Java Bytecode dazu anschauen, der beantwortet die Frage eventuell.

Ups, sorry, Java. Hätte ich eigentlich wissen können…


Im Bytecode bleibt das [m]void[/m]-Argument bestehen und sieht dementsprechend wieder etwas mehr wie in C aus:

// public void foo()
public void foo();
  Code:
     0: return        
}

// public void bar(void a)
public void bar(void);
  Code:
     0: return        
}

Ich mehme mal an, man könnte vlt. irgendwas im Spec dazu finden, bin dem aber auch nicht mehr weiter nachgegangen.

Allerdings hab ich auch keine Möglichkeit gefunden, eine mit [m]void[/m]-Argument definierte Methode aufzurufen: [m]bar()[/m] passt nicht zur Signatur; [m]bar(void)[/m] ist kein gültiger Ausdruck.


Ergebnisse online

http://www7.informatik.uni-erlangen.de/~eckert/teaching/rechnerkommunikation-ss12/res/rkss12.pdf

3 Likes

also ichbin zufrieden mit dem Ergebniss^^


ich auch :slight_smile: sehr sehr nice!