Kommentare

Erstellt von Kathrin Eberle
Code und Zusatzmaterial
Als PDF
PDF-Download
Arbeitsblatt
PDF-Download erweitert
Erweitertes Arbeitsblatt

Beschreibung

Einen Programmcode zu schreiben ist relativ leicht, ihn jedoch auch nach Jahren sofort zu verstehen ist jedoch schwerer. Damit sofort verstanden wird, was der Programmcode bewirkt, helfen Kommentare. Dadurch können zukünftige Programmierer, bzw. Porgrammcodenutzer oder neu hinzugekommene Mitglieder eines Projektes sofort durch nur wenige Wörter ein Verständnis für die Arbeitsweise entwickeln. Zudem können Kommentare auch einfach als Notizen für sich und andere benutzt werden, um später evtl. an der Stelle einen bestimmten Test laufen zu lassen, eine Stelle zu markieren, um im späteren Verlauf einige Änderungen vorzunehmen oder die besonders betrachtet weden soll, und so weiter.
Kommentare können beim Testen verwendet werden, um bestimmte Codezeilen inaktiv zu machen. da der Compiler sie als Leerzeichen behandelt.

Dazu ist es gut zu wissen welche Kommentare es gibt und wie man sie richtig benutzt. Wir haben zwei Möglichkeiten einen Programmcode zu kommentieren:

Zeilenkommentare

Zeilenkommentare sind die modernste und schnellste Art ein Kommentar zu schreiben.

// Zeilenkommentare werden immer mit zwei Schrägstrichen eingeleitet.
// Jede weitere auszukommentierende Zeile muss mit // anfangen.
// Sie erstecken sich über die gesamte Zeile bis zum Zeilenende
// und können mit einem Punkt beendet werden, müssen es aber nicht. 
int var = 2;   // Sie können auch mitten in der Zeile beginnen und bis zum Ende auslaufen.
int temp = 3;

Sie haben den Vorteil, dass sie verschachtelt werden können, wenn vor dem Kommentar Code zu Testzwecken auskommentiert wurde.

void loop(){                                              // Beginn Programmcode

    Serial.print("Die Variable temp hat den Wert: ");     // Testausgabe
    Serial.print(temp);
    /*
      Serial.print("Die Variable var hat den Wert: ");    // Auskommentierte Ausgabe
      Serial.print(var); 
    */
}

Blockkommentare

Mit Blockkommentaren kann ein Block kommentiert werden. Er wird mit /* geöffnet und mit */ geschlossen. Sie sollten nur an Stellen verwendet werden, an denen längere Textpassagen stehen. Zudem sollten Blockkommentare möglichst nicht zwischen Code stehen, dafür sind Zeilenkommentare besser geeignet. Jedoch kann diese Art des Kommentars als Lückenfüller oder Beschriftung agieren, weil sie auf einen bestimmten Bereich begrenzt ist.

Meistens werden Blockkomentare über der Methode als kurze Zusammenfassung der Arbeitsweise benutzt. Sie können das Kommentieren erleichtern, da man so einen Text ohne Probleme verfassen kann, ohne jede Zeile mit einem // starten zu müssen

/* Ein Blockkommentar kann
   sich über mehrere Zeilen
   erstrecken. */

int var = a;
a = b /* Oder als Lückenfüller agieren und vor dem Zeilenende enden. */ + c;

Code

Der folgende Code soll ein Beispiel für eine gute Kommentierung darstellen. Hier wird eine Glühbirne zum Leuchten gebracht, wenn z.B. ein Hindernis weniger als 10cm entfernt ist. Andernfalls soll die Warnleuchte aus sein.

int led = 12;           // Die LED wird an Pin 12 angeschlossen.

/*
Das Setup enthält wichtige Einstellungen für Objekte oder Aktoren/Sensoren und startet 
eine Schnittstelle mit dem Arduino.
Der Code wird nur einmal beim Start des Arduinos ausgeführt.
*/
void setup() {
  // Lege die LED als Output fest.
  pinMode(led, OUTPUT);
}

/*
Die loop enthält den Code, den der Arduino immer wieder von Zeile 11-24 ausführt.
*/
void loop() {
  /* Lege den Abstand als Gleitkommazahl (Datentyp "float") 20 fest.
     An diesem Punkt könnte man den Abstand auch messen.
  */
  float abstand = 20.0;

  // Falls der Abstand kleiner als 10 ist...
  if (abstand < 10) {
    digitalWrite(led, HIGH);        // ... schalte die LED ein.

  // Ansonsten...
  } else {
    digitalWrite(led, LOW);         // ... schalte die LED aus.
  }
}

Aufgaben

Was ist ein Zeilenkommentar?

Ein Zeilenkommentar ist ein Kommentar, welcher mit // begonnen wird und bis zum Ende der Zeile geht. Er kann auch mitten in der Zeile beginnen, jedoch wird jeder Inhalt bis zum Ende der Zeile kommentiert.

Was ist ein Blockkomentar?

Ein Blockkommentar ist ein Kommentar, welcher als Block aufgeschrieben, mit /* geöffnet und mit */ geschlossen wird. Er kann zudem als Lückenfüller mitten im Code benutzt werden.

Kommentiere diesen Code selbst. Als kleine Hilfestellung, wurde bereits markiert welche Art der Kommentare hier sinnvoll wären.

int motor_links  = 13;      //
int motor_rechts = 12;      //

/*

*/
void setup() {
  // 
  pinMode(motor_links, OUTPUT);     //
  pinMode(motor_rechts, OUTPUT);    //
}

/*

*/
void loop() {
  // 
  digitalWrite(motor_links, HIGH);
  digitalWrite(motor_rechts, HIGH);

  //
  delay(3000);

  // 
  digitalWrite(motor_links, LOW);
  digitalWrite(motor_rechts, LOW);

  // 
  delay(1000);
}
// Wir geben den Pins mit Motoren Namen.
int motor_links  = 13;      // Motor links an Pin 13.
int motor_rechts = 12;      // Motor rechts an Pin 12.

/*
Dieser Code wird einmal beim Start des Arduinos ausgeführt.
*/
void setup() {
  // Wir teilen dem Arduino mit, dass aus den Motorpins Strom kommen soll. 
  pinMode(motor_links, OUTPUT);     // Motor links bekommt Strom.
  pinMode(motor_rechts, OUTPUT);    // Motor rechts bekommt Strom.
}

/*
Dieser Code wird immer wieder hintereinander ausgeführt.
*/
void loop() {
  // Gib beiden Motoren Strom = HIGH. 
  digitalWrite(motor_links, HIGH);
  digitalWrite(motor_rechts, HIGH);

  // Warte 3 Sekunden bis zur Ausführung der nächsten Befehle.
  // ACHTUNG: Die Motoren haben weiterhin Strom,
  // bis dem Arduino ein gegenteiliger Befehl gegeben wird.
  delay(3000);

  // Gib beiden Motoren KEINEN Strom = LOW.
  digitalWrite(motor_links, LOW);
  digitalWrite(motor_rechts, LOW);

  // Warte 1 Sekunde.
  delay(1000);
}

Häufige Fragen und Probleme

Was wird alles kommentiert?

Alles was man für nötig erachtet. Methoden, Klassen, Variablen, Ausgaben, etc.

Muss ich alles kommentieren?

Nein, aber es ist sehr sinnvoll, sowohl für sich selbst als auch für andere.

Bei mir ist alles als Kommentar markiert, wo liegt der Fehler?

Falls es sich um ein Blockkommentar handelt, hast du den Kommentar auch mit */ geschlossen? Beachte, dass Zeilenkommentare bis zum Ende der Zeile gelten.

Das Material und dessen Inhalte sind - sofern nicht anders angegeben - lizenziert unter der Creative Commons Lizenz CC BY-NC-SA 4.0 (für den vollständigen Lizenztext siehe https://creativecommons.org/licenses/by-sa/4.0/legalcode )