faecher:nwt:arduino:lernbaustein2:funktionen2:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

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?] sbelfaecher: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("--- Zwischenmeldung -----");   Serial.println("--- Zwischenmeldung -----");
   quadratzahlen();   quadratzahlen();
-…    Serial.print(q);+  Serial.println("--- Programmende --------"); 
 +
 + 
 +void quadratzahlen() { 
 +// Lokale Variablen 
 +int start=1; 
 +int ende=5; 
 +  Serial.print("- Start: quadratzahlen - "); 
 +  for(int i=start; i<ende; i++) { 
 +    int q=i*i; 
 +    Serial.print(q);
     Serial.print(" ");     Serial.print(" ");
   }   }
Zeile 218: Zeile 227:
   return; //Optional, weil kein Wert zurückgegeben wird.   return; //Optional, weil kein Wert zurückgegeben wird.
 } }
 +
 </code> </code>
 +
 +Hier gibt es sowohl eine globale als auch eine lokale Variable mit dem Namen ''start''. Welche wird jetzt in der for-Schleife verwendet?
 +
 +----
 +{{:aufgabe.png?nolink  |}}
 +=== (A6) === 
 +
 +  * Teste den Sketch. Welche Variable wird in der for-Schleife verwendet?
 +  * Gib den Wert von ''start'' irgendwo im setup mit einem Serial.printl Befehl aus - welcher Wert wird hier ausgegeben?
 +
 +
 +===== Funktionen mit Rückgabewert =====
 +Funktionen können, wenn sie zu der Stelle zurückkehren, an der sie aufgerufen wurden auch noch Ergebnisse zurückgeben. 
 +
 +{{ :faecher:nwt:arduino:lernbaustein2:funktionen2:fkt-signatur3.png |}}
 +
 +{{ :faecher:nwt:arduino:lernbaustein2:funktionen2:fkt-rw.drawio.png |}}
 +
 +<code c>
 +void setup() {
 +  delay(1000);
 +  Serial.begin(9600);
 +  delay(1000);
 +  Serial.println("--- Programmstart -------");
 +  double n = nullstelle(-2,4);
 +  Serial.print("Nullstelle bei x=");
 +  Serial.println(n);
 +  Serial.println("--- Programmende --------");
 +}
 +
 +double nullstelle(double steigung, double yachsabsch) {
 +  double nullst = -1 * yachsabsch / steigung;
 +  return nullst;
 +}
 +
 +void loop() {
 +// Leer - der Loop hat hier keine Funktion
 +}
 +</code>
 +
 +----
 +{{:aufgabe.png?nolink  |}}
 +=== (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: {{ :faecher:nwt:arduino:lernbaustein2:funktionen2:bildschirmfoto_20250211_205809.png |}}
 +
 +++++ 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
 +  }
 +</code>
 +++++
 +
 +++++ Lösungsvorschlag |
 +<code c>
 + for (double i = -2; i <= -0.99; i = i + 0.1) {
 +    double n = nullstelle(i, 4);
 +    Serial.print("Steigung m=");
 +    Serial.print(i);
 +    Serial.print(" Nullstelle bei x=");
 +    Serial.println(n);
 +  }
 +</code>
 +
 +++++
  • faecher/nwt/arduino/lernbaustein2/funktionen2/start.1739302353.txt.gz
  • Zuletzt geändert: 11.02.2025 20:32
  • von sbel