Syntax
Moderator: Moderatoren
Syntax
Doofe Fragen zur cpp-Syntax:
Ich habe mir gerade die Lösung von Versuch 10 angeschaut, die netterweise vom Christian hochgeladen wurde.
Ich selber habe Versuch 10 aber komplett anders gelöst. Ich habe keine der vorgegebenen Variablen oder Funktionen gebraucht und stattdessen mit zweidimensionalen Arrays (gefüllt mit zufälligen Nullen und Einsen) gearbeitet und habe echt Schwierigkeiten die Lösung vom Christian überhaupt nachzuvollziehen.
Das liegt auch teilweise an der komischen Syntax und den ganzen Abkürzungen.
Die höchste Abkürzung, die ich noch verstehe, ist sowas simples wie i++; oder 10 % 2;
Durch googeln bin ich nicht weiter gekommen.
Wofür aber stehen zum Beispiel folgende Abkürzungen?:
((a >> b) & 1)
(ein "und-Zeichen" &; ich kenne nur zwei unds && oder dieses "oder-Zeichen" || )...
a>=b (kenn ich), a==b (auch)
aber was heißt a>>b bzw. a<<b ?
Eine Zeile, die ich nicht verstehe:
for (int i = len - 1; i >= 0; i--)
text += (elem & (1 << i)) ? "1" : "0";
(Das mit dem Fragezeichen und dem Doppelpunkt habe ich noch nie gesehen)
Oder zum Beispiel hier dieses Zeichen: ^
Was bedeutet a^b ?
oder a ^= b
Gibt es da irgend eine Seite für, wo man solche Sachen nachschauen kann?
Es gab bestimmt mal einen Zeitpunkt, wo ihr das auch noch nicht wusstet.
Man muss halt schonmal was von gehört haben...
Danke,
für eventuelle Antworten.
Ich habe mir gerade die Lösung von Versuch 10 angeschaut, die netterweise vom Christian hochgeladen wurde.
Ich selber habe Versuch 10 aber komplett anders gelöst. Ich habe keine der vorgegebenen Variablen oder Funktionen gebraucht und stattdessen mit zweidimensionalen Arrays (gefüllt mit zufälligen Nullen und Einsen) gearbeitet und habe echt Schwierigkeiten die Lösung vom Christian überhaupt nachzuvollziehen.
Das liegt auch teilweise an der komischen Syntax und den ganzen Abkürzungen.
Die höchste Abkürzung, die ich noch verstehe, ist sowas simples wie i++; oder 10 % 2;
Durch googeln bin ich nicht weiter gekommen.
Wofür aber stehen zum Beispiel folgende Abkürzungen?:
((a >> b) & 1)
(ein "und-Zeichen" &; ich kenne nur zwei unds && oder dieses "oder-Zeichen" || )...
a>=b (kenn ich), a==b (auch)
aber was heißt a>>b bzw. a<<b ?
Eine Zeile, die ich nicht verstehe:
for (int i = len - 1; i >= 0; i--)
text += (elem & (1 << i)) ? "1" : "0";
(Das mit dem Fragezeichen und dem Doppelpunkt habe ich noch nie gesehen)
Oder zum Beispiel hier dieses Zeichen: ^
Was bedeutet a^b ?
oder a ^= b
Gibt es da irgend eine Seite für, wo man solche Sachen nachschauen kann?
Es gab bestimmt mal einen Zeitpunkt, wo ihr das auch noch nicht wusstet.
Man muss halt schonmal was von gehört haben...
Danke,
für eventuelle Antworten.
Re: Syntax
Das sind logische Operationen. z.b. ist ^ das Symbol für XOR; << oder >> sind Shiftoperationen. Guck mal ins Info1-Skript, da wurden die mal erläutert.
Alternativ: Eine Erklärung der Bitoperationen
Alternativ: Eine Erklärung der Bitoperationen
Ciao [MD]
-
- Administrator
- Beiträge: 237
- Registriert: Mo 10. Mär 2008, 04:09
- Wohnort: Aachen
- Kontaktdaten:
Re: Syntax
Die Operatoren &,|,^,<<,>> sind wie [MD] bereits sagte bitweise Operatoren.
Im Prinzip nichts schweres, wenn man erstmal weiß, wofür sie stehen.
Die "(...) ? ... : ..."-Syntax ist nur eine Abkürzung für "if (...) ... else ...". Also
Gruß Christian
Im Prinzip nichts schweres, wenn man erstmal weiß, wofür sie stehen.
Die "(...) ? ... : ..."-Syntax ist nur eine Abkürzung für "if (...) ... else ...". Also
Code: Alles auswählen
(Bedingung) ? Anweisung, falls Bedingung wahr : Anweisung, falls Bedingung falsch;
Re: Syntax
Hmmm...
Das war eine total dumme Frage von mir, wenn man hinterher feststellt, dass solche "Bitoperatoren" essentieller Bestandteil des Versuchs 10 waren.
Und ich sitze da im Testat und hab noch nie was von gehört. Jetzt hab ich schon zum dritten mal kein Testat bekommen.
Total berechtigt, wie ich finde.
Ich hab mir das Skript doch 10 mal durchgelesen.
Genau an der fehlenden Denkweise lag auch von Anfang an mein Problem.
Woher soll man wissen, dass man zwei Zahlen im Dezimalsystem so XOR verknüpfen kann? a^b
Anhand des Skriptes meiner Meinung nach nicht. Darum hatte ich zusammenhangslos mit Binärzahlen in Arrays gearbeitet.
Im vorgefertigten Quelltext war doch auch so ein Vektor vorgegeben. Das hat mich dann nochmal verwirrt.
Und egal wie lange man aufzeigt, nie wird einem geholfen.
Das ist so frustrierend...
Das war eine total dumme Frage von mir, wenn man hinterher feststellt, dass solche "Bitoperatoren" essentieller Bestandteil des Versuchs 10 waren.
Und ich sitze da im Testat und hab noch nie was von gehört. Jetzt hab ich schon zum dritten mal kein Testat bekommen.
Total berechtigt, wie ich finde.
Ich hab mir das Skript doch 10 mal durchgelesen.
Genau an der fehlenden Denkweise lag auch von Anfang an mein Problem.
Woher soll man wissen, dass man zwei Zahlen im Dezimalsystem so XOR verknüpfen kann? a^b
Anhand des Skriptes meiner Meinung nach nicht. Darum hatte ich zusammenhangslos mit Binärzahlen in Arrays gearbeitet.
Im vorgefertigten Quelltext war doch auch so ein Vektor vorgegeben. Das hat mich dann nochmal verwirrt.
Und egal wie lange man aufzeigt, nie wird einem geholfen.
Das ist so frustrierend...
Re: Syntax
Du hast jedenfalls recht insofern, dass die Bitoperatoren nirgendwo in der Versuchsbeschreibung genannt werden. Sowieso ist die ganze Versuchsbeschreibung nicht gerade gelungen. Der Florian Bley war einmal bei uns im CIP-Pool, da meinte er auch der Versuch wird wahrscheinlich nächstes mal nicht mehr dabei sein, nur haben wir dann davon nix mehr
Re: Syntax
Kann mir vielleicht jemand helfen?
Was wurdet ihr denn so im Testat gefragt?
Ich wurde gefragt:
-"Welche Bitoperatoren kennst du?" ??
-"Was ist der Unterschied zwischen einem Vector und einem Array?"
(Dazu möchte ich übrigens auchmal die Stelle im Skript sehen, wo etwas dazu steht. Das mit dem Vektor wird glaube ich nur an einer Stelle erwähnt: (S.131) vector<byte> Bitmuster; erstellt ein "Bitmuster" des Datentyps char. #include <vector> stellt dies zur Verfügung.) Mehr aber auch nicht.
Ich habe als Antwort nur so was gestammelt, wie: "Die Größe des Vektors ist dynamisch und muss nicht vorher festgelegt werden, wie beim Array."
KA ob das richtig war...
-"Erläutere den Quelltext!" etc.
mehr weiß ich nicht mehr...
Der Assistent hatte seine Fragen alle auf so einem Zettel fertig ausgedruckt.
Also ich finde das von der Chancenungleichheit her nicht fair Wissen vorauszusetzen, was einem niemals gegeben wurde. Und wenn man was nicht weiß, dann kann man auch nicht wissen, dass man es eigentlich wissen müsste.
Zu doof, dass wir in einer Zeit des Informationsüberflusses leben.
Was wurdet ihr denn so im Testat gefragt?
Ich wurde gefragt:
-"Welche Bitoperatoren kennst du?" ??
-"Was ist der Unterschied zwischen einem Vector und einem Array?"
(Dazu möchte ich übrigens auchmal die Stelle im Skript sehen, wo etwas dazu steht. Das mit dem Vektor wird glaube ich nur an einer Stelle erwähnt: (S.131) vector<byte> Bitmuster; erstellt ein "Bitmuster" des Datentyps char. #include <vector> stellt dies zur Verfügung.) Mehr aber auch nicht.
Ich habe als Antwort nur so was gestammelt, wie: "Die Größe des Vektors ist dynamisch und muss nicht vorher festgelegt werden, wie beim Array."
KA ob das richtig war...
-"Erläutere den Quelltext!" etc.
mehr weiß ich nicht mehr...
Der Assistent hatte seine Fragen alle auf so einem Zettel fertig ausgedruckt.
Also ich finde das von der Chancenungleichheit her nicht fair Wissen vorauszusetzen, was einem niemals gegeben wurde. Und wenn man was nicht weiß, dann kann man auch nicht wissen, dass man es eigentlich wissen müsste.
Zu doof, dass wir in einer Zeit des Informationsüberflusses leben.
Re: Syntax
Dann antworte ich mir mal selber, für die, die morgen noch Testat machen müssen:
-Background-Infos zu CRC, Übertragung von Daten und Erkennung von Fehlern können sicherlich nicht schaden, (wenn man Versuch10 Teil 3 nicht hat und trotzdem erklären kann, wie es rein theoretisch funktionieren würde).
-Um mich herum fingen sehr viele Testate mit der generellen Frage: "Worum gehts in Versuch 10?" an.
-Zu Versuch 11 noch:
-"Warum macht man überhaupt die Normierung?"
kurze Anwort: "Feinere Darstellung von Grauwerten."
lange Antwort: "Durch die Faltung mit der Filtermaske, kann es passieren, dass die Grauwerte (z.B. durch die Multiplikation mit 2 oder -2) weit unterhalb der 0 oder überhalb der 255 liegen. Ohne Normierung setzt man einfach die Werte, die außerhalb dieses Bereichs (0-255) liegen, auf die nächstliegende Grenze. Dadurch geht viel Information verloren.
Bei der Normierung orientiert man sich quasi an dem größten Wert und skaliert alle Werte in den Grauwertebereich rein. Auch Werte, die eigentlich normal noch drin wären, werden skaliert. Dadurch erhält man bei der Ausgabe eine feinere Darstellung mit den Grauwerten."
(Angaben ohne Gewähr)
-Background-Infos zu CRC, Übertragung von Daten und Erkennung von Fehlern können sicherlich nicht schaden, (wenn man Versuch10 Teil 3 nicht hat und trotzdem erklären kann, wie es rein theoretisch funktionieren würde).
-Um mich herum fingen sehr viele Testate mit der generellen Frage: "Worum gehts in Versuch 10?" an.
-Zu Versuch 11 noch:
-"Warum macht man überhaupt die Normierung?"
kurze Anwort: "Feinere Darstellung von Grauwerten."
lange Antwort: "Durch die Faltung mit der Filtermaske, kann es passieren, dass die Grauwerte (z.B. durch die Multiplikation mit 2 oder -2) weit unterhalb der 0 oder überhalb der 255 liegen. Ohne Normierung setzt man einfach die Werte, die außerhalb dieses Bereichs (0-255) liegen, auf die nächstliegende Grenze. Dadurch geht viel Information verloren.
Bei der Normierung orientiert man sich quasi an dem größten Wert und skaliert alle Werte in den Grauwertebereich rein. Auch Werte, die eigentlich normal noch drin wären, werden skaliert. Dadurch erhält man bei der Ausgabe eine feinere Darstellung mit den Grauwerten."
(Angaben ohne Gewähr)