====== Funktionen in C++ ======
Der Syntax ist wie folgt:
typenbezeichnung namederfunktion(typ1 varname1, typ2 varname2, ...) {
// Code
return Wert;
}
Soll die Funktion keinen Wert zurückgeben, ist der Typ der Funktion ''void''. Ein solche Funktion kann durch ein einfaches ''return;'' beendet werden.
Es kann mehrere Funktionen mit gleichem Namen geben, wenn sich die Art und/oder Reihenfolge der Typen der Argumente unterscheiden. Z.B.
int quadrat(int x) {
return x*x;
}
float quadrat(float x) {
return x*x;
}
int b = quadrat(42); // Aufruf der ersten Funktion, weil 42 ist ein int.
float c = quadrat(42.0); // Aufruf der zweiten Funktion, weil 42.0 ist ein float.
===== Lesen vom Seriellen Port =====
Siehe https://www.arduino.cc/reference/en/language/functions/communication/serial/ für eine komplette Dokumentation.
void loop() {
Serial.println("Bitte eine Zahl eingeben:");
long eingabe = Serial.parseInt();
Serial.printf("Es wurde %l eingelesen.\n", eingabe);
// tu was mit eingabe...
}
====== Aufgaben ======
===== Teiler oder Primfaktorenzerlegung ausgeben =====
Lesen Sie eine Zahl vom seriellen Port ein und geben Sie die Teiler dieser Zahl aus, bzw. deren Primfaktorenzerlegung.
===== Mandelbrotmenge als ASCII-Art =====
Erzeugen Sie ein Bild der Mandelbrotmenge als ASCII-Art. Kann wie folgt berechnet werden:
Sei $f: \mathbb{C} \mapsto \mathbb{C}$ mit $f(x) = x^2+c$ wobei $c$ dem Punkte (d.h. komplexer Zahl) entspricht, deren "Farbe" berechnet werden möchte.
Sei die Folge $x_1 = c$, $x_{n} = f(x_{n-1})$. Die Farbe ist die Anzahl $n$ an Iterationen, die nötig ist, bis $|x|>2$ (dann ist die Divergenz garantiert). Wenn bis zu einer vorher festgelegten Anzahl $N$ $|x_N|<2$ wird abgebrochen und die Farbe ist N.
Der spannende Bereich ist im Rechteck $(-2-1.5i)$ bis (1.5+1.5i).
Wir könnten damit später auch ein kleines Display ansteuern und die Mandelbrotmenge dort darstellen.