Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
faecher:nwt:arduino:lernbaustein2:funktionen2:start [11.02.2025 20:32] – [Was ist, wenn es globale und lokale Variablen mit gleichem Namen gibt?] sbel | faecher:nwt:arduino:lernbaustein2:funktionen2:start [11.02.2025 21:07] (aktuell) – sbel | ||
---|---|---|---|
Zeile 203: | Zeile 203: | ||
<code c> | <code c> | ||
int start=2; | int start=2; | ||
- | |||
void setup() { | void setup() { | ||
delay(1000); | delay(1000); | ||
Zeile 212: | Zeile 211: | ||
Serial.println(" | Serial.println(" | ||
quadratzahlen(); | quadratzahlen(); | ||
- | … | + | Serial.println(" |
+ | } | ||
+ | |||
+ | void quadratzahlen() { | ||
+ | // Lokale Variablen | ||
+ | int start=1; | ||
+ | int ende=5; | ||
+ | Serial.print(" | ||
+ | for(int i=start; i<ende; i++) { | ||
+ | int q=i*i; | ||
+ | | ||
Serial.print(" | Serial.print(" | ||
} | } | ||
Zeile 218: | Zeile 227: | ||
return; //Optional, weil kein Wert zurückgegeben wird. | return; //Optional, weil kein Wert zurückgegeben wird. | ||
} | } | ||
+ | |||
</ | </ | ||
+ | |||
+ | Hier gibt es sowohl eine globale als auch eine lokale Variable mit dem Namen '' | ||
+ | |||
+ | ---- | ||
+ | {{: | ||
+ | === (A6) === | ||
+ | |||
+ | * Teste den Sketch. Welche Variable wird in der for-Schleife verwendet? | ||
+ | * Gib den Wert von '' | ||
+ | |||
+ | |||
+ | ===== Funktionen mit Rückgabewert ===== | ||
+ | Funktionen können, wenn sie zu der Stelle zurückkehren, | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | <code c> | ||
+ | void setup() { | ||
+ | delay(1000); | ||
+ | Serial.begin(9600); | ||
+ | delay(1000); | ||
+ | Serial.println(" | ||
+ | double n = nullstelle(-2, | ||
+ | Serial.print(" | ||
+ | Serial.println(n); | ||
+ | Serial.println(" | ||
+ | } | ||
+ | |||
+ | double nullstelle(double steigung, double yachsabsch) { | ||
+ | double nullst = -1 * yachsabsch / steigung; | ||
+ | return nullst; | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | // Leer - der Loop hat hier keine Funktion | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ---- | ||
+ | {{: | ||
+ | === (A7) === | ||
+ | |||
+ | * Was berechnet der abgebildete Sketch? Teste mit verschiedenen Parameterwerten. | ||
+ | * Erweitere den Aufruf der Funktion im Setup so, dass alle Nullstellen aller Geraden mit Steigungen zwischen -2.0 und -1.0 mit der Schrittweite 0.1 berechnet werden: {{ : | ||
+ | |||
+ | ++++ Hilfestellung 1: For Schleife mit 0.1er Schritten | | ||
+ | |||
+ | Die for-Schleife sieht hier z.B. so aus: | ||
+ | <code c> | ||
+ | for (double i = -2; i <= -0.99; i = i + 0.1) { | ||
+ | // Rechnen und ausgeben | ||
+ | } | ||
+ | </ | ||
+ | ++++ | ||
+ | |||
+ | ++++ Lösungsvorschlag | | ||
+ | <code c> | ||
+ | for (double i = -2; i <= -0.99; i = i + 0.1) { | ||
+ | double n = nullstelle(i, | ||
+ | Serial.print(" | ||
+ | Serial.print(i); | ||
+ | Serial.print(" | ||
+ | Serial.println(n); | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ++++ |