====== 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.