Hallo, ik ben een beginnende PHP'er. Ik wil een rekenmachine bouwen die faculteiten en combinaties kan uitrekenen, maar ik loop vast.
Dit is de form:

<form method="POST" action="resultaatl3o2.php">
		Faculteit berekenen: <input type="text" name="getal1">
		<input type="submit" value="Reken uit"><br><br>
		Combinaties berekenen: <br><input type="text" name="getal2"><br>
		<p>boven</p>
		<input type="text" name="getal3">
		<input type="submit" value="Reken uit">
	</form>


Ik wil als er bij faculteit iets wordt ingevuld, de combinaties negeren en andersom.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Permutaties en combinaties</title>
</head>
<body>
<?php 
	$getal1 = $_POST ['getal1'];
	$faculteit = 1;
	$getal2 = $_POST ['getal2'];
	$getal3 = $_POST ['getal3'];

	for ($i=1; $i <=$getal1; $i++) { 
		$faculteit = $faculteit*$i;
	}

	function nCr ($getal2, $getal3){
		if ($getal3 > $getal2)
			return NaN;
	}
		if (($getal2-$getal3)<$getal3){
			return nCr($getal2, ($getal2-$getal3));
		}
		$return = 1;
		for ($i = 0; $i < $getal3; $i++){
			$return *= ($getal2 - $i) / ($i + 1);
		}
		return $return;
?>
</body>
</html>


Kan iemand mij hierbij helpen? Alvast bedankt!
Hoi Robert,

- Je kunt met strlen() controleren hoeveel karakters er in een string zitten.
- met trim() kun je eventuele voorloop spaties of spaties aan het einde van de string verwijderen

<?php
$getal1 = trim($_POST['getal1']);

if(strlen($getal1) > 0) {
// bereken faculteit
} else {
// bereken combinaties
}
?>

Verder stel ik voor om jezelf een beetje in te lezen over formulieren
Als bepaalde input steeds dezelfde output geeft en er op de server niets permanent wordt gewijzigd, dan gebruik je method="GET" en $_GET.

Voor een faculteit kun je bijvoorbeeld GMP (GNU Multiple Precision) gmp_fact() gebruiken. Voor een fatsoenlijke rekenmachine zijn de wiskundige extensies van PHP sowieso geen overbodige luxe.

Reageren