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 22:03] – [Funktionen] 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 berechnet. 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 === | ||
| <code csharp> | <code csharp> | ||
| 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.1498766630.txt.gz · Last modified: 2017/06/29 22:03 by gg
