Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Madmaster

Frischling

  • »Madmaster« ist der Autor dieses Themas

Beiträge: 24

Wohnort: Wittstock/Dosse

Beruf: Azubi Mechatroniker

  • Private Nachricht senden

1

23.06.2012, 19:23

C++ Syntaxen merken - aber es sind so viele !

Hallo Community,

Ich hab das einfaach mal in Offtopic reingeworfen, weil ich nicht weiß ob die Anfängerprobleme auf in den normalen Bereich sollen/können/dürfen etc.pp.

Ich tu mich mittlerweile relativ schwer mit den Syntaxen, es mangelt mir nicht an dem Verstehen wie was wo und überhaupt zusammenarbeitet, sondern eher daran: Kommt da ein Semikolon hin? ist da eine geschweifte klammer oder eine normale? usw.

Daher ist meine Frage an euch: wie merkt ihr euch den schieren Wust von Klammern, Semikolons, Kommata, Punkten usw und wohin sie gehören.

Ich habe zurzeit mit meinem Wissen, 2 Stunden Zeit und meinem geliebten Buch eine Syntaxliste erstellt. Was haltet ihr davon? Habt ihr sowas auch?

Ich bin mal so frei und pack die Syntaxliste hier als .txt rein, habe sie aber wegen der schönen Farbe auch nochmal im VC 10
»Madmaster« hat folgende Datei angehängt:
  • Syntaxliste.txt (4,14 kB - 121 mal heruntergeladen - zuletzt: 08.03.2024, 23:43)
Theory is when you know something, but it doesen't work. Practice is when something works, but you don'tknow why. Programmers combine Theory and Practice: Nothing works and they don't know why.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Madmaster« (23.06.2012, 19:29)


Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

2

23.06.2012, 19:27

Ist wie hier oder sonst wo irgend etwas zu schreiben, man lernt es einfach und macht es dann automatisch.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

3

23.06.2012, 19:32

Ich habe es mir "learning by doing" angeeignet. Das kommt ganz von selbst (bzw. wird dir der Kompiler schon oft genug ordentlich auf die Finger klopfen) und spätestens wenn man einen Fehler über ne Stunde gesucht hat, merkt man es sich. Aber das ist z.B. einer der Punkte worin C++ manch anderer Sprache hinterher hinkt (z.B. python) bzw. es dem Benutzer schon deutlich erschwert.
Doch keine Panik, dass Gefühl kommt schon von selbst und irgendwann kann man dann ganze Codepassagen einfach runterschreiben.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

4

23.06.2012, 19:42

Ich stimm meinen Vorpostern zu.
Programmier lieber anstatt deine Zeit mit solchen Listen zu verschwenden.

Übrigens bedeutet Syntax so viel wie Satzbau. Es gibt also keinen Plural. ;)
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Madmaster

Frischling

  • »Madmaster« ist der Autor dieses Themas

Beiträge: 24

Wohnort: Wittstock/Dosse

Beruf: Azubi Mechatroniker

  • Private Nachricht senden

5

23.06.2012, 19:53

Gut danke für die hilfreichen posts =)

Werde dann ma schauen das ich die Lust nicht verliere wenn der Compiler (wie so oft) innerhalb weniger Zeilen Code soviel findet was er nicht mag
Theory is when you know something, but it doesen't work. Practice is when something works, but you don'tknow why. Programmers combine Theory and Practice: Nothing works and they don't know why.

foreach

Frischling

Beiträge: 87

Beruf: Student

  • Private Nachricht senden

6

23.06.2012, 20:21

Ich hätte noch ein Paar Anmerkungen zu deiner Syntaxliste, damit du dir nichts falsches einprägst:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
/// Anmerkung: Anmerkungen beginnen mit ///

/// die Groessen haengen von der Platform ab
// Varablen: **********************************************************

extern typ bla      // sagt dem Compiler das die gesuchte variable in iener anderen datei ist
unsigned = 1;       // = positiv / signed = negativ /int = 10;  4 bytes
long = 10;          // 4 bytes
short = 10;         // 2 bytes
bool = true; // true/false   // 1 byte
char = a            // 1 byte  /// gilt bei jeder Platform aber ein byte ist nicht immer ein Oktett (limits.h : CHAR_BIT)
                    /// es muesste 'a' statt a lauten
float = 1.1f;        // 4 bytes
double = 1.1d;       // 8 bytes

#define bla = 10
/// das ist zwar syntaktisch richtig aber hat semantisch nicht den Effekt einer Konstante
/// du meinst vermutlich #define BLA 10

switch (bla)
{
case (bedingung):
    { /// unnoetig
        anweisung;
    } /// unnoetig
    break;

default:
    { /// unnoetig
        anweisung;
    } /// unnoetig
}

/// Anmerkungen beziehen sich im Nachfolgenden nicht nur auf Arrays!
/// Das ist eine Dekleration und eine Definition (auch das: int i;)
int bla[3]; // Deklaration ACHTUNG: Arrays fangen bei 0 an!

/// Das ist eine Dekleration und eine Definition
bla[0] = 1; // Definition

/// Das waere eine Dekleration: extern int i;

/// Bei den Schleifen und bei einigen anderen Punkten, meinst du vieleicht das Richtige
/// Schreibst es aber nicht hin. Gerade beim Programmieren ist es sehr wichtig, dass man
/// sich praezise ausdruecken kann!

Schleifen:  *******************************************

/// So startet die Schleife natuerlich immer bei 0, aber auch das ist gueltig:
/// for(;;){} == while(true){}
for (int i (|| zählvariable) = 0; i < bla; i++)             Achtung: i startet IMMER bei 0!
{
    anweisungen;
}

while (bla != 3)       // Checkt erst Bedingung, dann ausführen (oder auch nicht) des Codeblocks
{
    anweisungen;
}


do                     // Führt erst den Codeblock aus, testet dann bedingung
{
        anweisungen;
} while (bla < 3);

/// Prototypen zeichnen sich nicht durch ihr Erscheinen vor der main Funktion aus
void meineFunktion();           vor main funktion = Prototyp


Ich hoffe dir helfen meine Anmerkungen weiter. Gerade am Anfang ist es schwer sich die Konzepte einzuprägen und den Überblick zu behalten (v.a. wenn es die erste Programmiersprache oder ein anderes Paradigma ist (funktional, objektorientier, prozedural, aspekorientier, usw.)). Aber wenn man die unterschiedlichen Konzepte im Zusammenspiel, beim selbstständigen Programmieren, anwendet werden die Zusammenhänge und die Struktur der Sprache klar.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »foreach« (23.06.2012, 20:28)


Madmaster

Frischling

  • »Madmaster« ist der Autor dieses Themas

Beiträge: 24

Wohnort: Wittstock/Dosse

Beruf: Azubi Mechatroniker

  • Private Nachricht senden

7

23.06.2012, 20:33

danke dir für die Korrekturen und Ergänzungen =)

Allerdings was du als unpräzise definierst ist für mich einfacher zu merken/zu verstehen z.B: semantisch- weiß ich nicht was das ist ^^
Die Liste habe ich so erstellt wie ich damit im Moment am besten klarkomme
Theory is when you know something, but it doesen't work. Practice is when something works, but you don'tknow why. Programmers combine Theory and Practice: Nothing works and they don't know why.

8

23.06.2012, 21:09

einfach programmieren, irgendwann hat mans drauf.
die syntax der deutschen sprache kannst du sicherlich auch ohne nachdenken zu müssen :D

C-/C++-Quelltext

1
2
3
4
5
if () {

blablabla;

}


diesen "klammerstil" finde ich weitaus besser als

C-/C++-Quelltext

1
2
3
4
5
6
if ()
{

blablabla;

}


aber jedem das seine :thumbsup:

9

23.06.2012, 21:12

@Overlord: Ich mag es auch, die geschweifte Klammer in der selben Zeile zu schreiben, aber mit einem Leerzeichen davor. Also so wie du :)

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

10

23.06.2012, 21:17

Hinter dem C-Syntax steckt weitgehend ein ziemlich klares Schema. (Bis auf einige unlogische Ausnahmen, zb. Zeiger- und Arraydeklaration)

Ich gehe mal auf die im ersten Post von dir genannten Punkte ein:
  1. Mit einer runden Klammer können mehrere Ausdrücke zusammengefasst werden. Bei Parametern, Funktions-, Methoden-, Konstuktoraufrufen und einigen Kontrollstrukturen aber immer nötig
  2. Mit einer geschweiften Klammer können mehrere Anweisungen zusammengefasst werden.

    C-/C++-Quelltext

    1
    2
    3
    4
    5
    6
    7
    8
    
    int XYZ()
    {
        {
             {
                   return 1;
             }
        }
    }

    ist genauso richtig wie

    C-/C++-Quelltext

    1
    2
    
    int XYZ()
         return 1;


  3. Mit Semikola werden Programmzeilen abgeschlossen. Außerdem stellt des Semikolon eine leere Anwesung(Eine Anweisung die gar nichts macht) dar. Zb:

    C-/C++-Quelltext

    1
    
    while(ComPort.IsConectedDevice); //Wartet solange bis Gerät angeschlossen - Ohne das Semikolon würde die die nächste Anweisung währenddessen ausgeführt.


  4. Mit Kommas können mehrere Ausdrücke verschaltet werden. Dabei wird immer nur das Ergebnis des letzten Ausdruckes verwendet, der Rest wird ausgeführt, aber verworfen. (Der Operator ist überladbar, das heißt die Wirkung kann bei einigen Klassen abweichen)

    C-/C++-Quelltext

    1
    2
    3
    4
    
    if (DoSomething(), GetValue()) //Es wird immer DoSomething und GetValue ausgeführt. Der Rückgabewert von "[i]GetValue[/i]" wird dann für die Bedingung der Verzweigung benutzt.
    {
        ...
    }

    Außerdem werden Kommas zum Trennen von Parametern und Enums benutzt.

Werbeanzeige

Ähnliche Themen