Opdracht school for statement
Hallo hier,
ik heb een opdracht voor school gekregen om een script te maken die het volgende kan:
Schrijf een programma dat als invoer kent een geleend bedrag, een rentepercentage en een looptijd. Het geleende bedrag wordt in het gelijke termijnen van de looptijd afgelost. Als afdrukt verschijnt op het scherm de jaarlijkse rentebetaling en de restschuld.
dit heb ik nu:
maar het werkt niet naar behoren!
ik krijg geen resultaten,
wat doe ik fout?
Mvg,
Jan
ik heb een opdracht voor school gekregen om een script te maken die het volgende kan:
Schrijf een programma dat als invoer kent een geleend bedrag, een rentepercentage en een looptijd. Het geleende bedrag wordt in het gelijke termijnen van de looptijd afgelost. Als afdrukt verschijnt op het scherm de jaarlijkse rentebetaling en de restschuld.
dit heb ik nu:
maar het werkt niet naar behoren!
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
if (!empty($_POST["submit"]))
{
$leen = $_POST["leen"];
$rent = $_POST["rent"];
$loop = $_POST["loop"];
$leent= 0;
$rente = ($leen / 100) * $rent;
for ($teller = 1 && $leent = $leen ; $teller < $loop or $leent < 0 ; $teller++ && $leent - $rente )
{
echo " na $teller jaren is het bedrag nog $leent , de jaarlijkse kosten zijn $rente" . "<br/>";
}
echo "<a href=\"leen.php\">nog een berekening</a>";
}
else
{
?>
<html>
<head>
<title>Lenen</title>
</head>
<body>
<form name="form1" method="post" action="leen.php">
<table>
<tr><td>Het bedrag dat u wilt lenen:</td><td><input name="leen" ></td></tr>
<tr><td>Rentepercentage:</td><td><input name="rent" ></td></tr>
<tr><td>Looptijd in jaren:</td><td><input name="loop" ></td></tr>
<tr><td></td><td><input type="submit" name="submit" value="verzenden">
<input type="reset" name="reset" value="reset"></td></tr>
</form>
<?php
}
?>
</body>
</html>
if (!empty($_POST["submit"]))
{
$leen = $_POST["leen"];
$rent = $_POST["rent"];
$loop = $_POST["loop"];
$leent= 0;
$rente = ($leen / 100) * $rent;
for ($teller = 1 && $leent = $leen ; $teller < $loop or $leent < 0 ; $teller++ && $leent - $rente )
{
echo " na $teller jaren is het bedrag nog $leent , de jaarlijkse kosten zijn $rente" . "<br/>";
}
echo "<a href=\"leen.php\">nog een berekening</a>";
}
else
{
?>
<html>
<head>
<title>Lenen</title>
</head>
<body>
<form name="form1" method="post" action="leen.php">
<table>
<tr><td>Het bedrag dat u wilt lenen:</td><td><input name="leen" ></td></tr>
<tr><td>Rentepercentage:</td><td><input name="rent" ></td></tr>
<tr><td>Looptijd in jaren:</td><td><input name="loop" ></td></tr>
<tr><td></td><td><input type="submit" name="submit" value="verzenden">
<input type="reset" name="reset" value="reset"></td></tr>
</form>
<?php
}
?>
</body>
</html>
ik krijg geen resultaten,
wat doe ik fout?
Mvg,
Jan
Krijg ik dan ook je stikker als ik je huiswerk maak?
haha als jij dat wilt dan krijg je dat ;)
maar volgens mij zit ik wel op de goede weg...
maar krijg het niet werkend
maar volgens mij zit ik wel op de goede weg...
maar krijg het niet werkend
Jaap, huiswerk maken doen je in feite zelf, maar vooruit:
dit:
if (!empty($_POST["submit"]))
is een foutieve controle
je dient gebruik te maken van de $_SERVER['REQUEST_METHOD']
en heir
$leen = $_POST["leen"];
$rent = $_POST["rent"];
$loop = $_POST["loop"];
vergeet je controle en validatie en maak je overbodige variabelen aan
probeer het een en ander eens met een simpele for loop en de berekening binnen de forloop te doen
dit:
if (!empty($_POST["submit"]))
is een foutieve controle
je dient gebruik te maken van de $_SERVER['REQUEST_METHOD']
en heir
$leen = $_POST["leen"];
$rent = $_POST["rent"];
$loop = $_POST["loop"];
vergeet je controle en validatie en maak je overbodige variabelen aan
probeer het een en ander eens met een simpele for loop en de berekening binnen de forloop te doen
zo al beter?
de berekeningen horen toch tussen de () haakjes en niet tussen de {} of zit ik nu fout?
wat voor controle? en validatie?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$_SERVER['REQUEST_METHOD']
{
$leen = $_POST["leen"];
$rent = $_POST["rent"];
$loop = $_POST["loop"];
$rente = ($leen / 100) * $rent;
for ($teller = 1 && $leent = $leen ; $teller < $loop or $leent < 0 ; $teller++ && $leent - $rente )
{
echo " na $teller jaren is het bedrag nog $leent , de jaarlijkse kosten zijn $rente" . "<br/>";
}
echo "<a href=\"leen.php\">nog een berekening</a>";
}
else
{
?>
$_SERVER['REQUEST_METHOD']
{
$leen = $_POST["leen"];
$rent = $_POST["rent"];
$loop = $_POST["loop"];
$rente = ($leen / 100) * $rent;
for ($teller = 1 && $leent = $leen ; $teller < $loop or $leent < 0 ; $teller++ && $leent - $rente )
{
echo " na $teller jaren is het bedrag nog $leent , de jaarlijkse kosten zijn $rente" . "<br/>";
}
echo "<a href=\"leen.php\">nog een berekening</a>";
}
else
{
?>
de berekeningen horen toch tussen de () haakjes en niet tussen de {} of zit ik nu fout?
wat voor controle? en validatie?
Je moet kijken er een request gedaan is. Dus moet je gebruik maken van een if / else structuur
Misschien is het handig om deze tutorial eens door te nemen?
Misschien is het handig om deze tutorial eens door te nemen?
Misschien is het in dit geval overzichtelijker om een while lust te gebruiken.
Want je for lus is aardig ingewikkeld.
En ik neem aan dat je met && een , bedoelt?
Dus:
Want je for lus is aardig ingewikkeld.
En ik neem aan dat je met && een , bedoelt?
Dus:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
$teller = 1;
$leent = $leen;
while( $teller < $loop
|| $leent < 0 )
{
...
$teller++;
$leent - $rente; // Hier gebeurd niks waar komt het resultaat in?
}
?>
$teller = 1;
$leent = $leen;
while( $teller < $loop
|| $leent < 0 )
{
...
$teller++;
$leent - $rente; // Hier gebeurd niks waar komt het resultaat in?
}
?>
Volgens mij is een for nog altijd handiger dan eigen gebouwde for met while.
Waarom je hier een while lus wilt gebruiken is mij nog niet duidelijk. Een for loop is hier gewoon perfect voor.
ik heb dit weer aangepast:
wat zit er nog meer fout?
wat zit er nog meer fout?
Wat nog mooier is dit:
Theodoor van Donge op 29/09/2010 22:40:36:
Wat nog mooier is dit:
Nee, slaat nergens op en is hartstikke onzin.
REQUEST_METHOD'S INHOUD IS ALTIJD IN HOOFDLETTERS, JUIST NOOIT IN KLEINE LETTERS.
Oke, dan laat je het gewoon zo:
Ik dacht dat, dat beter was. Maar als de pro's zeggen van niet, dan kun je daar beter naar luisteren.
Ik dacht dat, dat beter was. Maar als de pro's zeggen van niet, dan kun je daar beter naar luisteren.
Gewijzigd op 29/09/2010 22:59:09 door Th van
Ik vind het vaag dat je in het eerste "gedeelte" van je for een && gebruikt...
Jaap V op 29/09/2010 18:52:14:
zo al beter?
de berekeningen horen toch tussen de () haakjes en niet tussen de {} of zit ik nu fout?
wat voor controle? en validatie?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$_SERVER['REQUEST_METHOD']
{
$leen = $_POST["leen"];
$rent = $_POST["rent"];
$loop = $_POST["loop"];
$rente = ($leen / 100) * $rent;
for ($teller = 1 && $leent = $leen ; $teller < $loop or $leent < 0 ; $teller++ && $leent - $rente )
{
echo " na $teller jaren is het bedrag nog $leent , de jaarlijkse kosten zijn $rente" . "<br/>";
}
echo "<a href=\"leen.php\">nog een berekening</a>";
}
else
{
?>
$_SERVER['REQUEST_METHOD']
{
$leen = $_POST["leen"];
$rent = $_POST["rent"];
$loop = $_POST["loop"];
$rente = ($leen / 100) * $rent;
for ($teller = 1 && $leent = $leen ; $teller < $loop or $leent < 0 ; $teller++ && $leent - $rente )
{
echo " na $teller jaren is het bedrag nog $leent , de jaarlijkse kosten zijn $rente" . "<br/>";
}
echo "<a href=\"leen.php\">nog een berekening</a>";
}
else
{
?>
de berekeningen horen toch tussen de () haakjes en niet tussen de {} of zit ik nu fout?
wat voor controle? en validatie?
Waar haal je eigenlijk $leent vandaan?
Goed dat eindelijk iemand eens intelligent gebruik maakt van for, je doet het allen net fout.
for( setup1, setup2, setupN; $conditie; ophoging1, ophoging2, ophogingN )
Jouw for wordt dan:
for ($teller = 1, $leent = $leen ; $teller < $loop or $leent < 0 ; $teller++, $leent - $rente)
Het resultaat is hetzelfde, net is het niet.
Let verder goed op de volgorde
Testscript:
Geeft (als het goed is)
instantiate
test, i = 0
Action, i = 0
increment i to 1
test, i = 1
action i = 1
increment i to 2
etc
for( setup1, setup2, setupN; $conditie; ophoging1, ophoging2, ophogingN )
Jouw for wordt dan:
for ($teller = 1, $leent = $leen ; $teller < $loop or $leent < 0 ; $teller++, $leent - $rente)
Het resultaat is hetzelfde, net is het niet.
Let verder goed op de volgorde
Testscript:
Code (php)
Geeft (als het goed is)
instantiate
test, i = 0
Action, i = 0
increment i to 1
test, i = 1
action i = 1
increment i to 2
etc
Gewijzigd op 30/09/2010 13:32:28 door Pim -
ik ben er echt nog altijd niet uit:
heb nu de volgende for loop:
heb nu de volgende for loop:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
if (!empty($_POST["submit"]))
{
$leen = $_POST["leen"];
$rent = $_POST["rent"];
$loop = $_POST["loop"];
$rente = ($leen / 100) * $rent;
$schuld = $leen / $loop ;
for ($teller=1 ; $teller <= $loop; $teller++)
{
$geleend = ($leen + $rente) - $schuld ;
echo $geleend . "<br/>";
}
echo "<a href=\"leen.php\">nog een berekening</a>";
}
else
{
?>
if (!empty($_POST["submit"]))
{
$leen = $_POST["leen"];
$rent = $_POST["rent"];
$loop = $_POST["loop"];
$rente = ($leen / 100) * $rent;
$schuld = $leen / $loop ;
for ($teller=1 ; $teller <= $loop; $teller++)
{
$geleend = ($leen + $rente) - $schuld ;
echo $geleend . "<br/>";
}
echo "<a href=\"leen.php\">nog een berekening</a>";
}
else
{
?>
Misschien moet je eerst eens de wiskunde erachter verzinnen?
Maakt je leven zo ontzettend veel simpeler.
Maakt je leven zo ontzettend veel simpeler.
Zet dit bovenin je script.
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
// rest
?>
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
// rest
?>




