
Funktionen mit wiederkehrenden Werten (Programmieren)

Upgrade für mehr Inhalte
True or false? We give the function a name so we can call it in the program.
Lina hat zwei kleine Roboterprogramme zu einem größeren Programm zusammengeführt Dafür nutzte sie Funktionen. Sie wandelte zwei Abschnitte ihres Codes in zwei Funktionen um. Der Teil des Programms, der die Funktionen nutzt, ist ihr Hauptprogramm. Es sieht so aus: Die erste Anweisung ist ein Aufruf der Start-Funktion. Dann können zwei verschiedene Leute ihren Namen und ihr Alter eingeben.
Das Programm berechnet den Altersunterschied und der Roboter gibt das Ergebnis aus. Am Ende des Hauptprogramms wird die Ende-Funktion aufgerufen. Lina testet das Programm. Der Roboter führt die Anweisungen in "Start" aus: Öffne Augen, drehe die Antenne und schalte den Bildschirm ein. Dann kehrt das Programm von der Start- Funktion zum Hauptprogramm zurück.
Es liest die Zeile, die direkt nach dem Aufruf der Start-Funktion kommt. Der Roboter bittet Lina, ihren Namen und ihr Alter einzugeben. Danach kommt die Anweisung "Bitte den Nutzer, seinen Namen einzugeben". Aber diese Anweisung hatten wir schon! Diese fünf Zeilen sind fast genauso wie diese fünf Zeilen, außer dass erst die Variablen "Name1" und "Alter1" genutzt werden und dann die Variablen "Name2" und "Alter2".
Wenn ein Code wiederholt wird, kann Lina auch eine Funktion nutzen. Das hat sie bereits gelernt! Aber der Code ist an beiden Stellen nicht genau gleich. Die Variablen heißen unterschiedlich. Funktioniert es trotzdem, wenn man eine Funktion verwendet?
Ja, es funktioniert tatsächlich. Schau dir das an. Die Anweisungen für die Funktion sind schon fertig: hier! Lina kopiert die Zeilen und setzt sie über das Hauptprogramm. Sie braucht eine Funktion, die für alle Namen und Altersangaben funktioniert, nicht nur für Name1 und Alter1 oder Name2 und Alter2.
Wie bekommt sie das hin? Sie wandelt die Variablen in nur "Name" und nur "Alter" um - sie entfernt also die Zahlen. Die Zahlen kommen dazu, wenn die Funktion auf den Aufruf im Programm reagiert. An das Ende der Funktion schreibt Lina die Anweisung "Gib Name und Alter zurück". Die Funktion sendet dann den Wert der Variablen "Name" und "Alter" an das Hauptprogramm zurück.
Die neue Funktion bekommt den Namen "Hallo" mit zwei Klammern. Lina schaut ins Hauptprogramm. Das Programm soll das Alter von zwei Leuten vergleichen. Sie ruft also die "Hallo"-Funktion zweimal auf. Wie hier und hier.
Beim ersten Mal, wenn die Funktion aufgerufen wird, werden "Name" und "Alter" in den Variablen "Name1" und "Alter1" gespeichert. Dafür schreibt sie das hier. "Name1 und Alter1 Aufrufen Hallo" Sie weist den Variablen mit einem Ist-gleich-Zeichen die Werte zu. Name und Alter der anderen Person werden in "Name2" und "Alter2" gespeichert. Hast du gesehen, was sie gemacht hat? Eine einzige Funktion wurde genutzt, um Werte in verschiedenen Variablen zu speichern.
Lina testet ihren Code. Das Programm startet, indem es die Start-Funktion aufruft. Der Roboter wacht auf. Das Programm geht zu der nächsten Zeile. Jetzt wird die Hallo-Funktion aufgerufen.
Und der Roboter fragt nach Linas Namen. "Lina" wird in der Variable "Name" gespeichert. Hallo Lina. Der Roboter fragt nach Linas Alter und sie antwortet 16. "16" wird in der Variable "Alter" gespeichert. Die Werte der Variablen "Name" und "Alter" werden an die Zeile zurückgegeben, die die Funktion aufgerufen hat. "Lina" wird in "Name1" gespeichert und "16" in "Alter1". Die nächste Zeile des Hauptprogramms ruft wieder "Hallo" auf.
Der Roboter fragt nach Marias Namen. "Maria" wird in der Variable "Name" gespeichert. Hallo Maria. Der Roboter fragt nach Marias Alter und sie antwortet 15. "15" wird in der Variable "Alter" gespeichert. Die Werte für die Variablen "Name" und "Alter" werden an das Hauptprogramm weitergegeben. Und jetzt wird "Maria" in der Variable "Name2" gespeichert und "15" in "Alter2".
Die nächste Zeile im Hauptprogramm speichert das Ergebnis von "Alter1" minus "Alter2". Und dann sagt der Roboter Lina ist ein Jahr älter als Maria. Das Programm funktioniert! Die Hallo-Funktion kann verschiedene Werte zurückgeben, die in verschiedenen Variablen gespeichert werden, dank Rückgabewerten.