Funktion: Unterschied zwischen den Versionen

Aus microbit - Das Schulbuch
Zur Navigation springen Zur Suche springen
Maria.grandl (Diskussion | Beiträge)
Maria.grandl (Diskussion | Beiträge)
 
(39 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
==Was ist das?==
==Was ist das?==


Wird eine bestimmte '''Abfolge von Befehlen''' an '''mehreren''' Stellen im Programm benötigt, dann ist es sinnvoll, diese Befehle als '''Funktion''' zusammenzufassen.
Wird eine bestimmte '''Abfolge von Befehlen''' an '''mehreren''' Stellen im Programm benötigt, dann ist es sinnvoll, diese Befehle als '''Funktion''' zusammenzufassen.<br \>
Eine solche '''Funktion''' hat dann einen eigenen '''Namen''' und sie kann an den '''benötigten''' Stelle im Programm '''aufgerufen''' werden.  
Eine solche '''Funktion''' hat dann einen eigenen '''Namen''' und sie kann an den '''benötigten''' Stelle im Programm '''aufgerufen''' werden.<br \>
Bei objektorientierten Programmiersprachen sind Funktionen auch unter dem Namen '''Methoden''' bekannt.<br \>


Durch die Verwendung von Funktionen wird der Code übersichtlicher.
Durch die Verwendung von Funktionen wird der Code übersichtlicher.<br \>
Zudem können bestimmte Aufgabenstellungen mithilfe von Funktionen einfacher umgesetzt werden.
Zudem können bestimmte Aufgabenstellungen mithilfe von Funktionen einfacher umgesetzt werden.<br \>


==Beispielprogramm - Würfelspiel==
==Befehle==
 
Um eine Funktion im Microsoft MakeCode-Editor zu erstellen, musst du auf die Kategorie '''Fortgeschritten > Funktionen''' wechseln:
 
[[Datei:Befehle_funktionen.png|500px|Funktion erstellen]]
 
==Beispielprogramm - Zahlen addieren==
 
Das folgende Programm berechnet die '''Summe von 2 Zahlen'''.
Es wird dafür eine '''Funktion''' mit dem Namen '''''addieren''''' erstellt. 
 
Mit Klick auf '''"Erstelle eine Funktion..."''' öffnet sich das folgende Menü:
 
[[Datei:Funktionen_parameter.png|800px|Datentyp Übergabeparameter festlegen]]
 
In diesem Schritt werden die sogenannten '''Parameter''' oder '''Übergabeparameter''' für die Funktion festgelegt.<br \>
Es gibt auch Funktionen, die keine Übergabeparameter benötigen.
 
Du kannst dir das so vorstellen:<br \>
Der Funktion werden bestimmte '''Daten übergeben''' (daher: '''Übergabe'''parameter).<br \>
Diese Daten benötigt die Funktion, um eine bestimmte Aufgabe zu erledigen.
 
Zurück zum Beispiel:<br \>
Der Funktion '''''addieren''''' werden 2 Zahlen übergeben.<br \>
Die Funktion berechnet dann die Summe dieser Zahlen.
 
Die Übergabeparameter können auch passend '''umbenannt''' werden:
 
[[Datei:Funktionen_parameter_umbenennen.png|800px|Übergabeparameter umbenennen]]
 
Die Funktion wurde nun erstellt:
 
<pre id="fkt01">
function addieren (zahl1: number, zahl2: number) {
}
</pre>
 
 
Im nächsten Schritt wird nun die Summe der beiden Zahlen gebildet:
 
[[Datei:Funktionen_parameter_verwenden.png|400px|Parameter verwenden]]
 
 
Die Funktion gibt das Ergebnis (in diesem Fall: die Summe) zurück.<br \>
Das ist der sogenannte '''Rückgabewert''' der Funktion.
 
Wenn Knopf A gedrückt wird, dann wird die '''Funktion''' '''''addieren''''' mit den '''Zahlen 1 und 3''' '''aufgerufen''' und das Ergebnis angezeigt.<br \>
Das Speichern der Summe in der Variable "summe" ist nicht zwingend notwendig.
 
<pre id="fkt03">
let summe = 0
function addieren (zahl1: number, zahl2: number) {
    summe = zahl1 + zahl2
    return summe
}
input.onButtonPressed(Button.A, function () {
    basic.showNumber(addieren(1, 3))
})
</pre>
 
Zum Programm: https://makecode.microbit.org/_5iaXybUar23K
 
==Beispielprogramm - Zahlen addieren (ohne Übergabeparameter und Rückgabewert)==
 
Es gibt auch die Möglichkeit, die Funktion ohne Übergabeparamete und Rückgabewert zu erstellen.
Dafür werden dann aber Variablen benötigt.
 
<pre id="fkt04">
function addieren () {
    summe = zahl1 + zahl2
}
input.onButtonPressed(Button.A, function () {
    addieren()
    basic.showNumber(summe)
})
let summe = 0
let zahl2 = 0
let zahl1 = 0
zahl1 = 1
zahl2 = 3
summe = 0
</pre>
 
Zum Programm: https://makecode.microbit.org/_7U1295Vug8pW
 
==Beispielprogramm - Intro/Outro==
 
Das folgende Programm zeigt, wie du einzelne Befehle des Programms in eine Funktion "auslagern" kannst:
 
<pre id="fkt05">
function intro () {
    basic.showString("Hi")
}
function outro () {
    basic.showString("Bye")
}
intro()
basic.showIcon(IconNames.Happy)
basic.pause(200)
basic.clearScreen()
outro()
</pre>
 
Zum Programm: https://makecode.microbit.org/_7HtAvV9wPeHt
 
==Beispielprogramm - Horizontale Linie zeichnen==
 
Die Funktion '''''zeichneLinie''''' erzeugt eine horizontale Linie.<br \>
In der zweiten Version des Programmes (Fortgeschritten), kann die y-Position der horizontalen Linie gewählt werden.
 
<pre id="fkt07">
function zeichneLinie () {
    x_wert = 0
    y_wert = 2
    for (let index = 0; index < 5; index++) {
        led.plot(x_wert, y_wert)
        basic.pause(100)
        x_wert += 1
    }
}
let y_wert = 0
let x_wert = 0
zeichneLinie()
</pre>
 
 
Zum Programm: https://makecode.microbit.org/_9w5Ea4hRYX7r
 
Zum Programm (Fortgeschritten): https://makecode.microbit.org/_Y29PgAUasdMw
 
<htmlet>makecode_embed</htmlet>

Aktuelle Version vom 1. Mai 2022, 21:44 Uhr

Was ist das?

Wird eine bestimmte Abfolge von Befehlen an mehreren Stellen im Programm benötigt, dann ist es sinnvoll, diese Befehle als Funktion zusammenzufassen.
Eine solche Funktion hat dann einen eigenen Namen und sie kann an den benötigten Stelle im Programm aufgerufen werden.
Bei objektorientierten Programmiersprachen sind Funktionen auch unter dem Namen Methoden bekannt.

Durch die Verwendung von Funktionen wird der Code übersichtlicher.
Zudem können bestimmte Aufgabenstellungen mithilfe von Funktionen einfacher umgesetzt werden.

Befehle

Um eine Funktion im Microsoft MakeCode-Editor zu erstellen, musst du auf die Kategorie Fortgeschritten > Funktionen wechseln:

Funktion erstellen

Beispielprogramm - Zahlen addieren

Das folgende Programm berechnet die Summe von 2 Zahlen. Es wird dafür eine Funktion mit dem Namen addieren erstellt.

Mit Klick auf "Erstelle eine Funktion..." öffnet sich das folgende Menü:

Datentyp Übergabeparameter festlegen

In diesem Schritt werden die sogenannten Parameter oder Übergabeparameter für die Funktion festgelegt.
Es gibt auch Funktionen, die keine Übergabeparameter benötigen.

Du kannst dir das so vorstellen:
Der Funktion werden bestimmte Daten übergeben (daher: Übergabeparameter).
Diese Daten benötigt die Funktion, um eine bestimmte Aufgabe zu erledigen.

Zurück zum Beispiel:
Der Funktion addieren werden 2 Zahlen übergeben.
Die Funktion berechnet dann die Summe dieser Zahlen.

Die Übergabeparameter können auch passend umbenannt werden:

Übergabeparameter umbenennen

Die Funktion wurde nun erstellt:

function addieren (zahl1: number, zahl2: number) {
	
}


Im nächsten Schritt wird nun die Summe der beiden Zahlen gebildet:

Parameter verwenden


Die Funktion gibt das Ergebnis (in diesem Fall: die Summe) zurück.
Das ist der sogenannte Rückgabewert der Funktion.

Wenn Knopf A gedrückt wird, dann wird die Funktion addieren mit den Zahlen 1 und 3 aufgerufen und das Ergebnis angezeigt.
Das Speichern der Summe in der Variable "summe" ist nicht zwingend notwendig.

let summe = 0
function addieren (zahl1: number, zahl2: number) {
    summe = zahl1 + zahl2
    return summe
}
input.onButtonPressed(Button.A, function () {
    basic.showNumber(addieren(1, 3))
})

Zum Programm: https://makecode.microbit.org/_5iaXybUar23K

Beispielprogramm - Zahlen addieren (ohne Übergabeparameter und Rückgabewert)

Es gibt auch die Möglichkeit, die Funktion ohne Übergabeparamete und Rückgabewert zu erstellen. Dafür werden dann aber Variablen benötigt.

function addieren () {
    summe = zahl1 + zahl2
}
input.onButtonPressed(Button.A, function () {
    addieren()
    basic.showNumber(summe)
})
let summe = 0
let zahl2 = 0
let zahl1 = 0
zahl1 = 1
zahl2 = 3
summe = 0

Zum Programm: https://makecode.microbit.org/_7U1295Vug8pW

Beispielprogramm - Intro/Outro

Das folgende Programm zeigt, wie du einzelne Befehle des Programms in eine Funktion "auslagern" kannst:

function intro () {
    basic.showString("Hi")
}
function outro () {
    basic.showString("Bye")
}
intro()
basic.showIcon(IconNames.Happy)
basic.pause(200)
basic.clearScreen()
outro()

Zum Programm: https://makecode.microbit.org/_7HtAvV9wPeHt

Beispielprogramm - Horizontale Linie zeichnen

Die Funktion zeichneLinie erzeugt eine horizontale Linie.
In der zweiten Version des Programmes (Fortgeschritten), kann die y-Position der horizontalen Linie gewählt werden.

function zeichneLinie () {
    x_wert = 0
    y_wert = 2
    for (let index = 0; index < 5; index++) {
        led.plot(x_wert, y_wert)
        basic.pause(100)
        x_wert += 1
    }
}
let y_wert = 0
let x_wert = 0
zeichneLinie()


Zum Programm: https://makecode.microbit.org/_9w5Ea4hRYX7r

Zum Programm (Fortgeschritten): https://makecode.microbit.org/_Y29PgAUasdMw