Iteration - Rekursion
<!DOCTYPE html>
<html>
<head>
<title>Iteration-Rekursion</title>
</head>
<body>
<h1>Iteration - Rekursion </h1>
<hr>
<form action="Iteration-Rekursion.php" method="get">
<p>Anfangswert: <input type="number" name="anfang" value=1 /></p>
<p>Endwert: <input type="number" name="ende" value=5 /></p>
<p><input type="submit" name="senden" value="Berechne!" /></p>
</form>
<hr />
<?php
//******************************************
//************** Iteration *****************
//******************************************
if(isset($_GET["senden"])){
if($_GET["anfang"]>$_GET["ende"]){
$hilfe=$_GET["anfang"];
$_GET["anfang"]=$_GET["ende"];
$_GET["ende"]=$hilfe;
}
$anfang = $_GET["anfang"];
$ende = $_GET["ende"];
$summe = 0;
echo "<h2>Iterative Berechnung</h2>";
echo "<h3>Summe aller Zahlen von $anfang bis $ende</h3>";
for($i = $anfang; $i <= $ende; $i++){
if($summe == 0){
echo "$i";
}else
echo "+$i";
$summe += $i;
}
echo "=$summe";
?>
<hr>
<?php
//******************************************
//************** Rekursion *****************
//******************************************
echo "<h2>Rekursive Berechnung</h2>";
echo "<h3>Summe aller Zahlen von $anfang bis $ende</h3>";
?>
<p>Die Funktion summe nimmt drei Parameter entgegen:<br> <code>$anfang, $ende und $summe</code>. <code>$anfang</code> und <code>$ende </code> sind die Anfangs- und Endwerte der Schleife, während <code>$summe</code> den aktuellen Wert der Summe speichert. Die Funktion gibt den Wert von <code>$summe</code> zurück, wenn <code>$anfang</code> größer als <code>$ende</code> ist. Andernfalls wird <code>$anfang</code> zur Summe hinzugefügt, und die Funktion ruft sich selbst mit <code>$anfang + 1</code> als erstem Argument auf.</p>
<?php
function summe($a, $e, $s) {
if ($a > $e) {
return "=$s";
} else {
if ($s == 0) {
echo $a;
} else {
echo "+$a";
}
$s += $a;
return summe($a + 1, $e, $s);
}
}
echo summe($anfang, $ende, $summe=0);
}
//******************************************
//********** Quelltext-Ausgabe *************
//******************************************
echo "<hr>";
echo highlight_file("Iteration-Rekursion.php");
?>
</body>
</html>
1