Iteration - Rekursion


Anfangswert:

Endwert:



<!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