functions
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
functions [2017/06/29 11:27] – gg | functions [2017/07/05 11:15] (current) – [Übungen] gg | ||
---|---|---|---|
Line 11: | Line 11: | ||
Funktionen können **iterativ** oder **rekursiv** sein. Rekursionen sind recht elegant, für Anfänger aber oft schwer zu verstehen. Eine rekursive Funktion ruft sich selbst mit veränderten Parametern auf. \\ | Funktionen können **iterativ** oder **rekursiv** sein. Rekursionen sind recht elegant, für Anfänger aber oft schwer zu verstehen. Eine rekursive Funktion ruft sich selbst mit veränderten Parametern auf. \\ | ||
- | In den folgenden Beispielen wird die Fakultät einer Zahl berechen. Einmal iterativ und einmal rekursiv. | + | ===== Beispiele ===== |
- | ===== Bash ===== | + | In den **folgenden Beispielen** wird die **Fakultät** einer Zahl berechnet. Einmal iterativ und einmal rekursiv. Die Fakultät einer Zahl ist äusserst einfach erklärt. Die Fakultät von 1 ist 1, die Fakultät von 2 ist 2*1, die Fakultät von 3 ist 3*2*1 und so weiter. Die Fakultät wird in der Mathematik auch mit einem ! gekennzeichnet. 4! = 4*3*2*1. Einfach, oder? |
+ | ==== Bash ==== | ||
+ | === Code === | ||
<code bash> | <code bash> | ||
#!/bin/bash | #!/bin/bash | ||
Line 20: | Line 22: | ||
# Definieren der iterativen Funktion | # Definieren der iterativen Funktion | ||
function factorial_iterativ { | function factorial_iterativ { | ||
- | # parameter | + | # Parameter |
local n=$1 | local n=$1 | ||
- | # ergebnis variable | + | # Ergebnis Variable |
local result=1 | local result=1 | ||
- | # die iterative | + | # die iterative |
while [ $n -gt 1 ]; do | while [ $n -gt 1 ]; do | ||
result=$(($result * $n)) | result=$(($result * $n)) | ||
Line 31: | Line 33: | ||
done | done | ||
- | # das ergebnis | + | # das Ergebnis |
echo $result | echo $result | ||
} | } | ||
Line 37: | Line 39: | ||
# und das ist die rekursive Variante | # und das ist die rekursive Variante | ||
function factorial_recursive { | function factorial_recursive { | ||
- | # parameter | + | # Parameter |
local n=$1 | local n=$1 | ||
- | # nächsten | + | # nächsten |
local m=$(($n - 1)) | local m=$(($n - 1)) | ||
| | ||
Line 65: | Line 67: | ||
echo "Die Fakultät von $num ist $ret2" | echo "Die Fakultät von $num ist $ret2" | ||
</ | </ | ||
- | ===== C++ ===== | + | |
+ | === Ausführen === | ||
+ | <code bash> | ||
+ | chmod +x factorial.sh # als ausführbar markieren | ||
+ | ./ | ||
+ | </ | ||
+ | |||
+ | ==== C++ ==== | ||
+ | === Code === | ||
<code cpp> | <code cpp> | ||
#include < | #include < | ||
Line 115: | Line 125: | ||
} | } | ||
</ | </ | ||
- | ===== C# ===== | + | |
- | < | + | === Kompilieren und Ausführen === |
+ | Die Datei factorial.cpp mit dem obigen Code erstellen | ||
+ | <code bash> | ||
+ | g++ -Wall -g -std=c++14 factorial.cpp -o factorial # kompilieren | ||
+ | ./ | ||
+ | </ | ||
+ | |||
+ | ==== C# ==== | ||
+ | === Code === | ||
+ | < | ||
using System; | using System; | ||
Line 153: | Line 172: | ||
} | } | ||
</ | </ | ||
- | ===== golang ===== | ||
+ | ==== golang ==== | ||
+ | === Code === | ||
<code go> | <code go> | ||
package main | package main | ||
Line 189: | Line 209: | ||
} | } | ||
</ | </ | ||
- | ===== Java ===== | + | |
+ | === Kompilieren und Ausführen === | ||
+ | Die Datei factorial.go erstellen und so kompilieren und ausführen: | ||
+ | <code bash> | ||
+ | go build factorial.go # kompilieren | ||
+ | ./ | ||
+ | </ | ||
+ | |||
+ | oder den [[https:// | ||
+ | |||
+ | ==== Java ==== | ||
+ | === Code === | ||
<code java> | <code java> | ||
public class Factorial { | public class Factorial { | ||
Line 225: | Line 256: | ||
} | } | ||
</ | </ | ||
- | ===== JavaScript ===== | ||
+ | === Kompilieren und ausführen === | ||
+ | Die Datei Factorial.java mit obigen Inhalt erstellen und so zum Laufen bringen: | ||
+ | <code bash> | ||
+ | javac Factorial.java | ||
+ | java Factorial | ||
+ | </ | ||
+ | |||
+ | ==== JavaScript ==== | ||
+ | === Code === | ||
<code javascript> | <code javascript> | ||
< | < | ||
Line 266: | Line 305: | ||
</ | </ | ||
- | ===== Perl ===== | + | === Ausführen |
+ | Den obigen Code in die Datei factorial.html kopieren und im Browser öffnen | ||
+ | ==== Perl ==== | ||
+ | === Code === | ||
<code perl> | <code perl> | ||
# | # | ||
Line 304: | Line 346: | ||
print "Die Fakultät von $num ist $res2\n"; | print "Die Fakultät von $num ist $res2\n"; | ||
</ | </ | ||
- | ===== PHP ===== | + | |
+ | === Ausführen === | ||
+ | Die Datei factorial.pl mit dem gezeigten Quelltext erstellen und wie folgt ausführen: | ||
+ | <code bash> | ||
+ | perl factorial.pl | ||
+ | </ | ||
+ | |||
+ | ==== PHP ==== | ||
+ | === Code === | ||
<code php> | <code php> | ||
<?php | <?php | ||
- | |||
function factorial_iterative($n) { | function factorial_iterative($n) { | ||
$result = 1; | $result = 1; | ||
Line 336: | Line 385: | ||
echo "Die Fakultät von $num ist $res2\n"; | echo "Die Fakultät von $num ist $res2\n"; | ||
</ | </ | ||
- | ===== Python ===== | ||
+ | === Ausführen === | ||
+ | Die Datei factorial.php mit dem gezeigten Code füllen und auf folgende Weise ausführen | ||
+ | <code bash> | ||
+ | php factorial.php | ||
+ | </ | ||
+ | |||
+ | ==== Python ==== | ||
+ | === Code === | ||
<code python> | <code python> | ||
# | # | ||
Line 366: | Line 422: | ||
print(" | print(" | ||
</ | </ | ||
+ | |||
+ | === Ausführen === | ||
+ | Die Datei factorial.py mit dem gezeigten Inhalt erstellen und wie folgt ausführen: | ||
+ | <code bash> | ||
+ | python3 factorial.py | ||
+ | </ | ||
+ | |||
+ | ===== Übungen ===== | ||
+ | * Schreibe eine Funktion, die zwei Zahlen multipliziert und das Ergebnis zurück gibt | ||
+ | * Schreibe eine Funktion, die prüft, ob eine Zahl gerade oder ungerade ist. Das Ergebnis soll true oder false sein | ||
+ | * Schreibe eine Funktion, die prüft, ob eine Zahl ohne Rest durch drei dividierbar ist | ||
+ | * Schreibe eine Funktion, die prüft, ob ein Datum korrekt ist | ||
+ | * Schreibe eine Funktion, die eine Datei (Parameter ist der Pfad der Datei) ausliest und ausgibt |
functions.1498728443.txt.gz · Last modified: 2017/06/29 11:27 by gg