rekenen

Status
Niet open voor verdere reacties.

imacbest

Gebruiker
Lid geworden
28 nov 2008
Berichten
227
hallo ik heb een script gemaakt waarmee je algabra tabellen kunt uitrekenen.
met 1 formule doet ie het wel maar nu wil ik nog geavanceerder.
maar nu doetie het niet goed in het tabel zetten. inplaats van getallen doet ie $X0 enzo $A.
dit is het script:
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Tabel maken</title>
</head>

<body bgcolor="#FFFF99">
<h1 align="center">Inplaats een , een . bij een cijfer!</h1>
<form method="post">
Dit is de formule: <?php echo("$soort1"); ?>.
<table width="100%" border="0">
<tr>
<td width="10%">Variable A:</td>
<td><input type="text" name="A" /></td>
</tr>
<tr>
<td>Variable B:</td>
<td><input type="text" name="B" /></td>
</tr>
<tr>
<td>Soort formule:</td>
<td>
Y = <select name="v1">
<option value="$A">A</option>
<option value="$B">B</option>
<option value="$X0">X</option>
</select> <select name="v2">
<option value="+">+</option>
<option value="-">-</option>
<option value="/">/</option>
<option value="*">X (keer)</option>
</select><select name="v3">
<option value="$A">A</option>
<option value="$B">B</option>
<option value="$C">C</option>
</select><select name="v4">
<option value="+">+</option>
<option value="-">-</option>
<option value="/">/</option>
<option value="*">X (keer)</option>
</select><select name="v5">
<option value="$A">A</option>
<option value="$B">B</option>
<option value="$X0">X</option>
</select>
</td>
</tr>
</table>
<input type="submit" value="Rekenen!"/>
</form>
<?php 
$A = $_POST[A];
$B = $_POST[B];
$v1 = $_POST[v1];
$v2 = $_POST[v2];
$v3 = $_POST[v3];
$v4 = $_POST[v4];
$v5 = $_POST[v5];
$som = ("$v1 $v2 $v3 $v4 $v5");
?>
<table width="100%" border="0">
<tr>
<td><?PHP
if(isset($A) && isset($B)){
	$X0 = 0;
	$X1 = 1;
	$X2 = 2;
	$X3 = 3;
	$X4 = 4;
	$X5 = 5;
	//$som0 = $v1 $v2 $v3 $v4 $v5;
	$som1 = ("$v1 $v2 $v3 $v4 $v5");
	$som2 = ("$v1 $v2 $v3 $v4 $v5");
	$som3 = ("$v1 $v2 $v3 $v4 $v5");
	$som4 = ("$v1 $v2 $v3 $v4 $v5");
	$som5 = ("$v1 $v2 $v3 $v4 $v5");
	
	//$som1 = $A * $X1 + $B;
	//$som2 = $A * $X2 + $B;
	//$som3 = $A * $X3 + $B;
	//$som4 = $A * $X4 + $B;
	//$som5 = $A * $X5 + $B;
	//echo("In dit geval is dit de formule: y = $A * X + $B.");
?>
<table width="100%" border="1">
<tr>
<td>X</td>
<td><?php echo("$X0");?></td>
<td><?php echo("$X1");?></td>
<td><?php echo("$X2");?></td>
<td><?php echo("$X3");?></td>
<td><?php echo("$X4");?></td>
<td><?php echo("$X5");?></td>
</tr>
<tr>
<td>Y</td>
<td><?PHP echo($v1 + $v2 + $v3 + $v4 + $v5);?></td>
<td><?PHP echo($som1);?></td>
<td><?PHP echo($som2);?></td>
<td><?PHP echo($som3);?></td>
<td><?PHP echo($som4);?></td>
<td><?PHP echo($som5);?></td>
</tr>
</table>
<?PHP
}
else{
	echo("Niks ingevuld!");
}
?></td>
</tr>
</table>
<!--
<table width="100%" border="2">
<tr>
<td>X</td>
<td><?php echo("$X0");?></td>
<td><?php echo("$X1");?></td>
<td><?php echo("$X2");?></td>
<td><?php echo("$X3");?></td>
<td><?php echo("$X4");?></td>
<td><?php echo("$X5");?></td>
</tr>
<tr>
<td>Y</td>
<td><?PHP echo($som0);?></td>
<td><?PHP echo($som1);?></td>
<td><?PHP echo($som2);?></td>
<td><?PHP echo($som3);?></td>
<td><?PHP echo($som4);?></td>
<td><?PHP echo($som5);?></td>
</tr>
</table>
-->

</body>
</html>
ik hoop dat iemand eruit komt
 
Ik begrijp helemaal niet wat jij wilt bereiken. Leg eens uit wat hij zou moeten doen en wat hij nu doet.
Dus met andere woorden geef ons meer informatie over wat je verwacht dat hij doet, wat je er in stopt en wat je verwacht dat eruit komt

En ren goede tip voor de volgende keer: Zorg dat je code er gestructureerd uit ziet, dat schrikt de mensen niet zo af ;)


groeten vreugde
 
berekenen

met algabra moet je formules berekenen
nu wil ik dat je zelf kunt instellen wat de variablen zijn en waar de plus min deel of keer staat.
vervolgens moet ie dat in een tabel zetten en als er geen gegevens ingevuld zijn moet er geen tabel worden weergeven
 
Oke dan begrijp ongeveer wat je wilt bereiken.


Wat ik zie in jou code is bijvoorbeeld
<option value="$A">A</option>
.
Wil je hiermee de variabele meegeven als value?
Zo ja, moet je hiervoor gebruik maken van echo en moet de variabele bekend zijn.
Bijvoorbeeld:
PHP:
<?php
// Helemaal bovenin alle variabelen declareren en vastleggen zodat deze in de pagina gebruikt kunnen worden
$A = 0
...
<option value="<?php echo $A; ?>">A</option>
...

Dit zou een oplossing kunnen zijn. Je kan ook als value 0 t/m N gebruiken en door een switch-statement bepalen wat de waarde hoorde te zijn. Bijvoorbeeld:
PHP:
<?php 
if (isset($_POST["name_send_button"]) {
   $A = $_POST["A"];
   $B = $_POST["B"];
}
...
switch ($v1) {
   case 1: $v1 = $A; break;
   case 2: $v1 = $B; break;
   case 3: break;
}
...

hoop dat dit je weer opgang helpt


groeten vreugde
 
Oke dan begrijp ongeveer wat je wilt bereiken.


Wat ik zie in jou code is bijvoorbeeld .
Wil je hiermee de variabele meegeven als value?
Zo ja, moet je hiervoor gebruik maken van echo en moet de variabele bekend zijn.
Bijvoorbeeld:
PHP:
<?php
// Helemaal bovenin alle variabelen declareren en vastleggen zodat deze in de pagina gebruikt kunnen worden
$A = 0
...
<option value="<?php echo $A; ?>">A</option>
...

Dit zou een oplossing kunnen zijn. Je kan ook als value 0 t/m N gebruiken en door een switch-statement bepalen wat de waarde hoorde te zijn. Bijvoorbeeld:
PHP:
<?php 
if (isset($_POST["name_send_button"]) {
   $A = $_POST["A"];
   $B = $_POST["B"];
}
...
switch ($v1) {
   case 1: $v1 = $A; break;
   case 2: $v1 = $B; break;
   case 3: break;
}
...

hoop dat dit je weer opgang helpt


groeten vreugde
bedankt!
ik ga er verder mee puzzelen.
ik heb totaal geen verstant van php en dit is voor mij ook maar een proberseltje
 
De probeersels zijn juist het leukste aan scripten. Maar ik zal er ook wel verder naar kijken en mocht je vragen hebben, gooi ze dan hier maar neer


groeten vreugde
 
lukt nog steeds niet echt

Ik kom er nog steeds niet echt uit. dit is wat ik nu heb:
PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>Rekenen</title>
</head>
<body>
<?php
$A = 0;
$B = 0;
$X1 = 1;
$X2 = $X1 + 1;
$plus = + ;
$min = - ;
$keer = * ;
$deel = / ;

if (isset($_GET["send"])){
   $A = $_GET["A"];
   $B = $_GET["B"];
	 $X = $_GET["X"];
	 $plus = $_GET["plus"];
	 $min = $_GET["min"]; 
}


switch ($v1) {
   case 1: $v1 = $A; break;
   case 2: $v1 = $B; break;
   case 3: break;
}
switch ($v2) {
   case 1: $v2 = $plus; break;
   case 2: $v2 = $min; break;
	 case 3: $v2 = $deel; break;
	 case 4: $v2 = $keer; break;
   case 5: break;
}
switch ($v3) {
   case 1: $v3 = $A; break;
   case 2: $v3 = $B; break;
   case 3: break;
}
switch ($v4) {
   case 1: $v4 = $plus; break;
   case 2: $v4 = $min; break;
	 case 3: $v4 = $deel; break;
	 case 4: $v4 = $keer; break;
   case 5: break;
}

$som1 = "$v1 $v2 $X1 $v2 $v1";
$som2 = "$v1 $v2 $X2 $v2 $v1";
$enter = "<br>";
?>
<form method="GET">
<table width="100%" border="0">
<tr>
<td width="10%">Variable A:</td>
<td><input type="text" name="A" /></td>
</tr>
<tr>
<td>Variable B:</td>
<td><input type="text" name="B" /></td>
</tr>
<td>Variable X:</td>
<td><input type="text" name="X" /></td>
</tr>
<tr>
<td>Soort formule:</td>
<td>
Y = <select name="v1">
<option value="<?php echo $A; ?>">A</option>
<option value="<?php echo $B; ?>">B</option>
<option value="<?php echo $X; ?>">X</option>
</select> <select name="v2">
<option value="<?php echo $plus; ?>" name="+">+</option>
<option value="<?php echo $min; ?>" name="-">-</option>
<option value="<?php echo $deel ?>">/</option>
<option value="<?php echo $keer ?>">X (keer)</option>
</select><select name="v3">
<option value="<?php echo $A; ?>">A</option>
<option value="<?php echo $B; ?>">B</option>
<option value="<?php echo $X0; ?>">X</option>
</select><select name="v4">
<option value="<?php echo $plus; ?>" name="+">+</option>
<option value="<?php echo $min; ?>" name="-">-</option>
<option value="<?php echo $deel ?>">/</option>
<option value="<?php echo $keer ?>">X (keer)</option>
</select><select name="v5">
<option value="<?php echo $A; ?>">A</option>
<option value="<?php echo $B; ?>">B</option>
<option value="<?php echo $X0; ?>">X</option>
</select>
</td>
</tr>
</table>
<input type="submit" value="verzende" name="send" />
</form>
<?php
echo $som1;
echo $enter;
echo $som2;
?>

<table width="100%" border="1">
<tr>
<td>X</td>
<td><?php echo("$X0");?></td>
<td><?php echo("$X1");?></td>
<td><?php echo("$X2");?></td>
<td><?php echo("$X3");?></td>
<td><?php echo("$X4");?></td>
<td><?php echo("$X5");?></td>
</tr>
<tr>
<td>Y</td>
<td><?PHP  ?></td>
<td><?PHP echo($som1);?></td>
<td><?PHP echo($som2);?></td>
<td><?PHP echo($som3);?></td>
<td><?PHP echo($som4);?></td>
<td><?PHP echo($som5);?></td>
</tr>
</table>
<?PHP

//else{
	//echo("Niks ingevuld!");
//}
?></td>
</tr>
</table>


</body>
</html>
ik hoop dat jullie de fout(en) kunnen vinden
 
Gedane aanpassingen:

  • $A en $B worden toegewezen als de voorwaarde isset($_GET["send"]) voldaan is, dus hoeven deze niet eerder een waarde te krijgen.
  • $plus, $min, $keer en $deel geven een fout als je ze gewoon +, -, * of / als waarde geeft zonder quotes, dus "+", "-", "*" en "/"
  • In de $plus en $min hebben hun waarde al en moeten deze niet meer krijgen als de voorwaarde isset($_GET["send"]) voldaan is. Ze zullen daar ook geen waarde meer krijgen omdat $_GET["plus"] en $_GET["min"] niet eens bestaan.
  • Alle switches hebben als voorwaarde $v1, $v2, $v3, $v4, of $v5. Geen van deze 5 hebben een waarde, dus klopt geen enkele "case" en zullen er ook geen andere waarden toegewezen worden. In de plaats daarvan moeten de voorwaarden de volgende zijn:
    • switch($_GET["v1"])
    • switch($_GET["v2"])
    • switch($_GET["v3"])
    • switch($_GET["v4"])
    • switch($_GET["v5"])
  • Nog binnen je switch moet je volgens mij geen case ...: break; als laatste zetten.
  • De values van je option moeten allemaal 1 tot 3 zijn voor v1, v3 en v5 en 1 tot 5 voor v2 en v4. Anders is de $_GET["v1"] tot $_GET["v5"] nooit gelijk aan gelijk welke "case" binnen je switches.
  • Options behoeven geen "name" te krijgen omdat de select waarin de option zich bevindt een naam heeft en alleen daar rekening mee gehouden wordt.
  • $X0, $X3, $X4, $X5, $som3, $som4 en $som5 zijn niet toegewezen. Deze zijn in het aangepaste script hieronder ook nog niet toegewezen, met uitzondering van $som3 en $som4.

En dan hieronder het aangepaste script, maar nu moet er nog voor gezorgd worden dat alles wel uitgerekend wordt in plaats van gewoon achter elkaar gezet, en daar ben ik nog niet uit.
Misschien kan iemand anders die meer van php weet hier helpen of ideeën geven, want met eval werkt het niet.
Ik heb mij ook de vrijheid genomen om de breedte van de laatste tabel wat aan te passen om een mooier overzicht te krijgen op mijn scherm.

PHP:
<html>
<head>
<title>Rekenen</title>
</head>
<body>
<?php
$X1 = 1;
$X2 = $X1 + 1;
$plus = "+" ;
$min = "-" ;
$deel = "/" ;
$keer = "*" ;
 
if (isset($_GET["send"])) {
	$A = $_GET["A"];
	$B = $_GET["B"];
	$X = $_GET["X"];
};
 
 
switch ($_GET["v1"]) {
	case 1: $v1 = $A; break;
	case 2: $v1 = $B; break;
	case 3: $v1 = $X; break;
};

switch ($_GET["v2"]) {
	case 1: $v2 = $plus; break;
	case 2: $v2 = $min; break;
	case 3: $v2 = $deel; break;
	case 4: $v2 = $keer; break;
};

switch ($_GET["v3"]) {
	case 1: $v3 = $A; break;
	case 2: $v3 = $B; break;
	case 3: $v3 = $X; break;
};

switch ($_GET["v4"]) {
	case 1: $v4 = $plus; break;
	case 2: $v4 = $min; break;
	case 3: $v4 = $deel; break;
	case 4: $v4 = $keer; break;
};
 
switch ($_GET["v5"]) {
	case 1: $v5 = $A; break;
	case 2: $v5 = $B; break;
	case 3: $v5 = $X; break;
};

$som1 = "$v1 $v2 $X1 $v2 $v1";
$som2 = "$v1 $v2 $X2 $v2 $v1";
$som3 = "$v1 $v2 $v3 $v4 $v5";
$som4 = $v1 . $v2 . $v3 . $v4 . $v5;
$enter = "<br>";
?>
<form method="GET">
	<table width="100%" border="0">
		<tr>
			<td width="10%">Variable A:</td>
			<td><input type="text" name="A" /></td>
		</tr>
		<tr>
			<td>Variable B:</td>
			<td><input type="text" name="B" /></td>
		</tr>
		<td>Variable X:</td>
			<td><input type="text" name="X" /></td>
		</tr>
		<tr>
			<td>Soort formule:</td>
			<td> Y =
				<select name="v1">
					<option value="1">A</option>
					<option value="2">B</option>
					<option value="3">X</option>
				</select>
				<select name="v2">
					<option value="1">+</option>
					<option value="2">-</option>
					<option value="3">/</option>
					<option value="4">X (keer)</option>
				</select>
				<select name="v3">
					<option value="1">A</option>
					<option value="2">B</option>
					<option value="3">X</option>
				</select>
				<select name="v4">
					<option value="1">+</option>
					<option value="2">-</option>
					<option value="3">/</option>
					<option value="4">X (keer)</option>
				</select>
				<select name="v5">
					<option value="1">A</option>
					<option value="2">B</option>
					<option value="3">X</option>
				</select></td>
		</tr>
	</table>
	<input type="submit" value="verzenden" name="send" />
</form>
<?php
echo $som1;
echo $enter;
echo $som2;
?>
<table border="1">
	<tr>
		<td width="100">X</td>
		<td width="100"><?php echo("$X0");?></td>
		<td width="100"><?php echo("$X1");?></td>
		<td width="100"><?php echo("$X2");?></td>
		<td width="100"><?php echo("$X3");?></td>
		<td width="100"><?php echo("$X4");?></td>
		<td width="100"><?php echo("$X5");?></td>
	</tr>
	<tr>
		<td>Y</td>
		<td><?PHP  ?></td>
		<td><?PHP echo($som1);?></td>
		<td><?PHP echo($som2);?></td>
		<td><?PHP echo($som3);?></td>
		<td><?PHP echo($som4);?></td>
		<td><?PHP echo($som5);?></td>
	</tr>
</table>
<?PHP
 
//else{
    //echo("Niks ingevuld!");
//}
?>
</td>
</tr>
</table>
</body>
</html>
 
Laatst bewerkt:
dit is wat ik nu heb

ik heb het script nog een beetje aangepast en dit is wat ik nu heb.
hij rekent aleen niet hij laat allen zien wat je hebt ingevoert.
mischien weet iemand die meer verstand heeft van php de oplossing
PHP:
<html>
<head>
<title>Rekenen</title>
</head>
<body>
<?php
$X1 = $_GET["X"];
$X2 = $X1 + 1;
$X3 = $X2 + 1;
$X4 = $X3 + 1;
$X5 = $X4 + 1;
$plus = "+" ;
$min = "-" ;
$deel = "/" ;
$keer = "*" ;
 
if (isset($_GET["send"])) {
    $A = $_GET["A"];
    $B = $_GET["B"];
    $X = $_GET["X"];
};
 
switch ($_GET["v1"]) {
    case 1: $v1 = $A; break;
    case 2: $v1 = $B; break;
    case 3: $v1 = $X; break;
};
 
switch ($_GET["v2"]) {
    case 1: $v2 = $plus; break;
    case 2: $v2 = $min; break;
    case 3: $v2 = $deel; break;
    case 4: $v2 = $keer; break;
};
 
switch ($_GET["v3"]) {
    case 1: $v3 = $A; break;
    case 2: $v3 = $B; break;
    case 3: $v3 = $X; break;
};
 
switch ($_GET["v4"]) {
    case 1: $v4 = $plus; break;
    case 2: $v4 = $min; break;
    case 3: $v4 = $deel; break;
    case 4: $v4 = $keer; break;
};
 
switch ($_GET["v5"]) {
    case 1: $v5 = $A; break;
    case 2: $v5 = $B; break;
    case 3: $v5 = $X; break;
};
 
$som1 = "$v1 $v2 $v3 $v4 $v5";
$som2 = "$v1 $v2 $v3 $v4 $v5";
$som3 = "$v1 $v2 $v3 $v4 $v5";
$som4 = $v1 . $v2 . $v3 . $v4 . $v5;
$enter = "<br>";
?>
<form method="GET">
    <table width="100%" border="0">
        <tr>
            <td width="10%">Variable A:</td>
            <td><input type="text" name="A" /></td>
        </tr>
        <tr>
            <td>Variable B:</td>
            <td><input type="text" name="B" /></td>
        </tr>
        <td>Variable X:</td>
            <td><input type="text" name="X" /></td>
        </tr>
        <tr>
            <td>Soort formule:</td>
            <td> Y =
                <select name="v1">
                    <option value="1">A</option>
                    <option value="2">B</option>
                    <option value="3">X</option>
                </select>
                <select name="v2">
                    <option value="1">+</option>
                    <option value="2">-</option>
                    <option value="3">/</option>
                    <option value="4">X (keer)</option>
                </select>
                <select name="v3">
                    <option value="1">A</option>
                    <option value="2">B</option>
                    <option value="3">X</option>
                </select>
                <select name="v4">
                    <option value="1">+</option>
                    <option value="2">-</option>
                    <option value="3">/</option>
                    <option value="4">X (keer)</option>
                </select>
                <select name="v5">
                    <option value="1">A</option>
                    <option value="2">B</option>
                    <option value="3">X</option>
                </select></td>
        </tr>
    </table>
    <input type="submit" value="verzenden" name="send" />
</form>
<?php
echo $som1;
echo $enter;
echo $som2;
?>
<?php 
if (isset($A) && isset($B)){
?>
<table border="1">
    <tr>
        <td width="100">X</td>
        <td width="100"><?php echo("$X0");?></td>
        <td width="100"><?php echo("$X1");?></td>
        <td width="100"><?php echo("$X2");?></td>
        <td width="100"><?php echo("$X3");?></td>
        <td width="100"><?php echo("$X4");?></td>
        <td width="100"><?php echo("$X5");?></td>
    </tr>
    <tr>
        <td>Y</td>
        <td><?PHP  ?></td>
        <td><?PHP echo($som1);?></td>
        <td><?PHP echo($som2);?></td>
        <td><?PHP echo($som3);?></td>
        <td><?PHP echo($som4);?></td>
        <td><?PHP echo($som5);?></td>
    </tr>
</table>
<?PHP
 }
else{
  echo("Niks ingevuld!");
}
?>
</td>
</tr>
</table>
</body>
</html>
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan