User Tools

Site Tools


functions

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
functions [2017/06/29 11:28] – [C#] ggfunctions [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 auslesen+  # Parameter auslesen
   local n=$1   local n=$1
-  # ergebnis variable anlegen+  # Ergebnis Variable anlegen
   local result=1   local result=1
  
-  # die iterative berechnung+  # die iterative Berechnung
   while [ $n -gt 1 ]; do   while [ $n -gt 1 ]; do
     result=$(($result * $n))     result=$(($result * $n))
Line 31: Line 33:
   done   done
  
-  # das ergebnis ausliefern+  # das Ergebnis ausliefern
   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 auslesen+  # Parameter auslesen
   local n=$1   local n=$1
-  # nächsten parameter berechnen+  # nächsten Parameter berechnen
   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"
 </code> </code>
-===== C++ =====+ 
 +=== Ausführen === 
 +<code bash> 
 +chmod +x factorial.sh # als ausführbar markieren 
 +./factorial.sh        # ausführen 
 +</code> 
 + 
 +==== C++ ==== 
 +=== Code ===
 <code cpp> <code cpp>
 #include <iostream> #include <iostream>
Line 115: Line 125:
 } }
 </code> </code>
-===== 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 
 +./factorial                                        # ausführen 
 +</code> 
 + 
 +==== C# ==== 
 +=== Code ===
 <code csharp> <code csharp>
 using System; using System;
Line 153: Line 172:
 } }
 </code> </code>
-===== golang ===== 
  
 +==== golang ====
 +=== Code ===
 <code go> <code go>
 package main package main
Line 189: Line 209:
 } }
 </code> </code>
-===== Java =====+ 
 +=== Kompilieren und Ausführen === 
 +Die Datei factorial.go erstellen und so kompilieren und ausführen: 
 +<code bash> 
 +go build factorial.go # kompilieren 
 +./factorial           # ausführen 
 +</code> 
 + 
 +oder den [[https://tour.golang.org|Online go compiler]] verwenden 
 + 
 +==== Java ==== 
 +=== Code ===
 <code java> <code java>
 public class Factorial { public class Factorial {
Line 225: Line 256:
 } }
 </code> </code>
-===== 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
 +</code>
 +
 +==== JavaScript ====
 +=== Code ===
 <code javascript> <code javascript>
 <!DOCTYPE HTML> <!DOCTYPE HTML>
Line 266: Line 305:
 </code> </code>
  
-===== Perl =====+=== Ausführen === 
 +Den obigen Code in die Datei factorial.html kopieren und im Browser öffnen
  
 +==== Perl ====
 +=== Code ===
 <code perl> <code perl>
 #!/usr/bin/perl #!/usr/bin/perl
Line 304: Line 346:
 print "Die Fakultät von $num ist $res2\n"; print "Die Fakultät von $num ist $res2\n";
 </code> </code>
-===== PHP =====+ 
 +=== Ausführen === 
 +Die Datei factorial.pl mit dem gezeigten Quelltext erstellen und wie folgt ausführen: 
 +<code bash> 
 +perl factorial.pl 
 +</code> 
 + 
 +==== 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";
 </code> </code>
-===== Python ===== 
  
 +=== Ausführen ===
 +Die Datei factorial.php mit dem gezeigten Code füllen und auf folgende Weise ausführen
 +<code bash>
 +php factorial.php
 +</code>
 +
 +==== Python ====
 +=== Code ===
 <code python> <code python>
 #!/usr/bin/python3 #!/usr/bin/python3
Line 366: Line 422:
 print("Die Fakultät von "+str(num)+" ist "+str(res2)) print("Die Fakultät von "+str(num)+" ist "+str(res2))
 </code> </code>
 +
 +=== Ausführen ===
 +Die Datei factorial.py mit dem gezeigten Inhalt erstellen und wie folgt ausführen:
 +<code bash>
 +python3 factorial.py
 +</code>
 +
 +===== Ü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.1498728530.txt.gz · Last modified: 2017/06/29 11:28 by gg