Opdracht school for statement
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?
maar volgens mij zit ik wel op de goede weg...
maar krijg het niet werkend
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
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?
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.
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.
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?
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 -
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
{
?>
Maakt je leven zo ontzettend veel simpeler.
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
?>