Waarden optellen en vermenigvuldigen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marel Vissers

Marel Vissers

08/04/2020 09:46:22
Quote Anchor link
hallo allemaal.
Ik ben een beginnende ICT student en we hebben als één van de vakken Programmeren.
We zijn nu begonnen met PHP en ik had een vraagje.
We hebben namelijk als opdracht optellen, delen en vermenigvuldigen.
ik loop nu best vast met het combineren van deze 3, we moeten namelijk een getal optellen en die vermenigvuldigen bij een getal.
is er iemand die snapt hoe je dit samen kunt combineren?
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
      <?php
        function optellen ($getal1, $getal2)
    {

            
        $som = $getal1 + $getal2;
        echo $getal1. ' + '.$getal2.' = '.$som;
        echo '<br>';

        }

        
        optellen(22,8);


        function
vermeningvuldigen ($getal3,$getal5)
                
        {

            
            $som = $getal3 * $getal5;
            echo $getal3. ' * '. $getal5. ' = '. $som;
            echo '<br>';

        }

        
        vermeningvuldigen (3,2);
        

         function
delen ($getal8,$getal9)
                
         {

                
         $som = $getal8 / $getal9;
         echo $getal8. ' / '. $getal9. ' = '. $som;
         echo '<br>';
        
         }

        
         delen (33,11);
        
         function
optellen and vermenigvuldigen ($getal10,$getal11,$getal12)
        
         {

        $som = $getal10 + $getal11 * $getal12
        echo $getal10. ' + '.$getal11 *getal12.' = '.$som;
        echo '<br>';
  
        optellen(12,7) vermeningvuldigen(2)
            
         }

?>


Edit:
Ik heb code-tags geplaatst. Gelieve dit voortaan zelf te doen.
Zie ook de forumopmaakcodes in de Veelgestelde Vragen.
Gewijzigd op 08/04/2020 13:39:11 door - Ariën -
 
PHP hulp

PHP hulp

26/05/2020 12:19:56
 
- Ariën -
Beheerder

- Ariën -

08/04/2020 09:59:01
Quote Anchor link
Kan je jouw code even tussen de code-tags zetten? Zie ook de opmaakcodes in de Veelgestelde Vragen.
 
Thomas van den Heuvel

Thomas van den Heuvel

08/04/2020 10:05:26
Quote Anchor link
En wat is het probleem precies?

Een functienaam kan in ieder geval geen spaties bevatten.

De echo voor de laatste functie klopt waarschijnlijk niet, omdat je probeert te vermenigvuldigen in een string, waarschijnlijk ontbreken daar nog een aantal quotes.

Mogelijk krijg je hier foutmeldingen over / waarschuwing van vanuit PHP zelf, misschien ook niet. Wellicht loont het de moeite om het melden + weergeven van foutmeldingen aan te zetten en te leren de foutmeldingen te interpreteren. Waarschijnlijk is dat (leren debuggen) de beste manier om te leren programmeren.
 
Marel Vissers

Marel Vissers

08/04/2020 11:46:09
Quote Anchor link
Heel erg bedankt beide!
Ik heb het probleem gevonden.
 
Ivo P

Ivo P

08/04/2020 11:54:07
Quote Anchor link
even los van het issue dat 5 + 4 * 3 = 60
maar (5 + 4) * 3 = 27.

Dus de vraag is even of je 60 of 27 wilde zien....

---
je maakt nu een paar functies voor een heel simpel probleem. Begrijp ik, want dit is een leertraject. Maar laten we eens aannemen dat die functie "optellen" iets veel moeilijkers doet: Hij doet 5 query's in verschillende databases; haalt de actuele zonnestand op in Sidney en de watertemperatuur bij Aruba.

Wil je dan bij de bewerking "optellen en vermenigvuldigen" wederom die hele actie opnieuw beschrijven? En wat als het straks om de temperatuur bij Bonaire gaat ipv Aruba? Dan moet je dat op meer plekken aanpassen.

Dus
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
function optellen_en_vermenigvuldigen($a, $b, $c)
{

    $som = optellen($a, $b);
    $product = vermenigvuldigen($som, $c);

    return $product;
}

?>


en nu zie je direct waarom je functie niet 2 dingen moet doen: niet rekenen EN naar het scherm echo-en.
Je wilt pas achteraf beslissen wat er met de uitkomst gedaan moet worden:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo optellen_en_vermenigvuldigen(4, 5, 3); ?>


Doe je dat niet, dan is je functie ook inderdaad maar voor 1 doel geschikt: op dat moment een berekening op het scherm zetten.
Gewijzigd op 08/04/2020 11:55:52 door Ivo P
 
Thomas van den Heuvel

Thomas van den Heuvel

08/04/2020 12:18:26
Quote Anchor link
@Ivo, maar wat jij daar voorstelt met de functie optellen_en_vermenigvuldigen() is toch niet conform de standaard operator precedence?

Je neemt $a en $b samen, terwijl $b en $c vermenigvuldigd zouden moeten worden?

Niet in PHP, en ook niet volgens de standaard wiskunderegels?

Zelfs als je geen haken gebruikt om expliciet aan te geven wat je bedoelt, is het $a + ($b * $c), en niet, wat in de functie gebeurt, ($a + $b) * $c?

EDIT: de rest van de opmerkingen over het gebruik en de werking van functies in het algemeen ben ik het wel mee eens. Op het moment dat een functie een waarde retourneert kun je altijd nog besluiten om deze op het scherm weer te geven met constructies als echo.
Gewijzigd op 08/04/2020 12:28:29 door Thomas van den Heuvel
 
Ivo P

Ivo P

08/04/2020 12:55:49
Quote Anchor link
ik ging uit van de zinsnede "we moeten namelijk een getal optellen en die vermenigvuldigen "

Dat lees ik als "eerst optellen en dan pas vermenigmuldigen"
 
Thomas van den Heuvel

Thomas van den Heuvel

08/04/2020 13:29:43
Quote Anchor link
Ah okay.

Maar waarom zou je daar een aparte functie voor maken? De bouwstenen heb je.

Wat is er mis met:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$resultaat
= vermenigvuldigen(optellen($a, $b), $c);
?>

En hiermee neem je ook direct het "probleem" met operator-voorrang weg.

Als je $a + $b * $c bedoelt (oftewel $a + ($b * $c)), doe je simpelweg:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$resultaat
= vermenigvuldigen($a, optellen($b, $c));
?>
Gewijzigd op 08/04/2020 13:30:24 door Thomas van den Heuvel
 
Marel Vissers

Marel Vissers

08/04/2020 13:32:03
Quote Anchor link
@ivo
dankjewel voor je goede uitleg!
vraagje: hoe je doe het als je het andersom doet?
als je eerst vermenigvuldigd doet en daarna plus?
is dat heel anders of totaal niet??
 
- Ariën -
Beheerder

- Ariën -

08/04/2020 13:39:58
Quote Anchor link
Ik heb het bericht even wat beter leesbaarder gemaakt. Zie ook de het bericht eronder.
 



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.