Opdracht school for statement

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jaap V

Jaap V

29/09/2010 18:19:26
Quote Anchor link
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!

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
    <?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>


ik krijg geen resultaten,
wat doe ik fout?

Mvg,
Jan
 
PHP hulp

PHP hulp

28/11/2021 04:31:21
 
Synaps Framework

Synaps Framework

29/09/2010 18:31:29
Quote Anchor link
Krijg ik dan ook je stikker als ik je huiswerk maak?
 
Jaap V

Jaap V

29/09/2010 18:32:29
Quote Anchor link
haha als jij dat wilt dan krijg je dat ;)

maar volgens mij zit ik wel op de goede weg...
maar krijg het niet werkend
 
Noppes Homeland

Noppes Homeland

29/09/2010 18:38:37
Quote Anchor link
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
 
Jaap V

Jaap V

29/09/2010 18:52:14
Quote Anchor link
zo al beter?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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
        {
    ?>


de berekeningen horen toch tussen de () haakjes en niet tussen de {} of zit ik nu fout?

wat voor controle? en validatie?
 
Niels K

Niels K

29/09/2010 18:57:53
Quote Anchor link
Je moet kijken er een request gedaan is. Dus moet je gebruik maken van een if / else structuur

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
    if( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
        // Etc
    }
?>


Misschien is het handig om deze tutorial eens door te nemen?
 
Martijn B

Martijn B

29/09/2010 19:24:43
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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?
}
?>
 

29/09/2010 19:34:20
Quote Anchor link
Volgens mij is een for nog altijd handiger dan eigen gebouwde for met while.
 
Synaps Framework

Synaps Framework

29/09/2010 21:51:58
Quote Anchor link
Waarom je hier een while lus wilt gebruiken is mij nog niet duidelijk. Een for loop is hier gewoon perfect voor.
 
Jaap V

Jaap V

29/09/2010 22:31:30
Quote Anchor link
ik heb dit weer aangepast:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
    if ($_SERVER['REQUEST_METHOD'] == "post")


wat zit er nog meer fout?
 
Th van

Th van

29/09/2010 22:40:36
Quote Anchor link
Wat nog mooier is dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
if(strtoupper($_SERVER['REQUEST_METHOD']) == 'POST')
?>
 

29/09/2010 22:56:48
Quote Anchor link
Theodoor van Donge op 29/09/2010 22:40:36:
Wat nog mooier is dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
if(strtoupper($_SERVER['REQUEST_METHOD']) == 'POST')
?>


Nee, slaat nergens op en is hartstikke onzin.
REQUEST_METHOD'S INHOUD IS ALTIJD IN HOOFDLETTERS, JUIST NOOIT IN KLEINE LETTERS.
 
Th van

Th van

29/09/2010 22:58:47
Quote Anchor link
Oke, dan laat je het gewoon zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
?>


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
 
Niek s

niek s

29/09/2010 23:09:26
Quote Anchor link
Ik vind het vaag dat je in het eerste "gedeelte" van je for een && gebruikt...
 
Chris -

Chris -

30/09/2010 11:08:25
Quote Anchor link
Jaap V op 29/09/2010 18:52:14:
zo al beter?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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
        {
    ?>


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?
 
Pim -

Pim -

30/09/2010 12:07:21
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
for(print('instantiate'.PHP_EOL), $i = 0; print('test, i = '.$i.PHP_EOL) && $i <= 10; $i++, print('increment i to '.$i.PHP_EOL)) { print ('action, i = '.$i.PHP_EOL);}
?>


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 -
 
Jaap V

Jaap V

07/10/2010 13:40:47
Quote Anchor link
ik ben er echt nog altijd niet uit:
heb nu de volgende for loop:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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
        {
        ?>
 

07/10/2010 13:46:57
Quote Anchor link
Misschien moet je eerst eens de wiskunde erachter verzinnen?
Maakt je leven zo ontzettend veel simpeler.
 
- SanThe -

- SanThe -

07/10/2010 13:49:33
Quote Anchor link
Zet dit bovenin je script.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);

// rest
?>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.