Funcions de la pràctica 5.2: diferència entre les revisions

De Wiki personal d'en Guillem Serrat
Cap resum de modificació
Cap resum de modificació
Línia 35: Línia 35:
|20
|20
|}
|}
Per fel el càlcul del preu, la funció rep 2 paràmetres: el preu unitari del producte i la quantitat comprada i retorna:
* Total original (preu_unitari * quantitat)
* Total final (preu_unitari * quantitat - descompte)
* % de descompte aplicat
Primer, divideix de forma entera la quantitat de producte entre 2 amb la funció intdiv i recupera el quocient enter de la divisió (grups de 2). Per cada grup de 2 s’aplica un descompte del 5%<pre>
$blocs = intdiv($quantitat, 2); // Divideix la quantitat de productes entre 2. (2 productes = 1. 6 productes = 3)
</pre>Seguidament, multiplica aquests grups de 2 per 5 per trobar el % fins a 20%. Això ho fa la funció min, la qual retorna el valor més petit. Definim el resultat de la multiplicació i 20. Si el % és menor a 20, s’aplicarà aquell %. Si el % és major a 20, s’aplicarà el 20%.
Exemple: 2 productes = 1 bloc * 5 = 5%
Exemple 2: 4 productes = 2 blocs * 5 = 10%
Exemple 3: min(10 productes = 5 blocs * 5 = 25, '''20'''); (Ja que 20 és més petit que 25, s'agafa el 20)<pre>
$percentatge = min($blocs * 5, 20); // Calcula el %, fins a un màxim de 20 (2 productes = 1 bloc * 5 = 5% )
</pre>Un cop definit el % de descompte, calcularem el preu original (quantitat * preu unitari)<pre>
// Preu sense descompte
$total_original = $preu_unitari * $quantitat; // Calculem el preu original (el preu unitari del producte + quantitat)
</pre>I el preu amb descompte<pre>
// Preu amb descompte
$total_final = $total_original * (1 - $percentatge / 100); // Calculem el preu final aplicant-hi el descompte
</pre>Per finalment, retornar els valors anteriorment calculats<pre>
return [
        'total_original' => $total_original, // Retornem el total original (preu_unitari * quantitat)
        'total_final' => $total_final, // Retornem el preu descomptat  (preu_unitari * quantitat - descompte)
        'descompte_percent' => $percentatge // Retornem el percentatge descomptat
];
</pre>El codi sencer de la funció és el següent:<pre>
<?php
function calcularPreus($preu_unitari, $quantitat) { // Funció per calcular el descompte, li arriba el preu del producte i la quantitat a comprar
    // El descompte consisteix que cada 2 productes es descompte un 5% del total de la suma del mateix producte, fins a un màxim del 20% de descompte sobre el producte
    // Aquesta funció retorna sempre el preu sense descompte i el preu amb descompte
    $blocs = intdiv($quantitat, 2); // Divideix la quantitat de productes entre 2. (2 productes = 1. 6 productes = 3)
    $percentatge = min($blocs * 5, 20); // Calcula el %, fins a un màxim de 20 (2 productes = 1 bloc * 5 = 5% )
    // Preu sense descompte
    $total_original = $preu_unitari * $quantitat; // Calculem el preu original (el preu unitari del producte + quantitat)
    // Preu amb descompte
    $total_final = $total_original * (1 - $percentatge / 100); // Calculem el preu final aplicant-hi el descompte
    return [
        'total_original' => $total_original, // Retornem el total original (preu_unitari * quantitat)
        'total_final' => $total_final, // Retornem el preu descomptat  (preu_unitari * quantitat - descompte)
        'descompte_percent' => $percentatge // Retornem el percentatge descomptat
    ];
}
</pre>

Revisió del 19:51, 30 des 2025

Funció calcularPreus

La funció calcularPreus serveix per calcular el preu final i d'un producte i aplicar un producte si escau.

El descompte consisteix en restar un 5% del total dels productes per cada 2 productes comprats, fins a un màxim d’un 20%. La taula següent pot servir de referència

Nº de productes % de descompte
1 0
2 5
3 5
4 10
5 10
6 15
7 15
8 20
+8 20

Per fel el càlcul del preu, la funció rep 2 paràmetres: el preu unitari del producte i la quantitat comprada i retorna:

  • Total original (preu_unitari * quantitat)
  • Total final (preu_unitari * quantitat - descompte)
  • % de descompte aplicat

Primer, divideix de forma entera la quantitat de producte entre 2 amb la funció intdiv i recupera el quocient enter de la divisió (grups de 2). Per cada grup de 2 s’aplica un descompte del 5%

$blocs = intdiv($quantitat, 2); // Divideix la quantitat de productes entre 2. (2 productes = 1. 6 productes = 3)

Seguidament, multiplica aquests grups de 2 per 5 per trobar el % fins a 20%. Això ho fa la funció min, la qual retorna el valor més petit. Definim el resultat de la multiplicació i 20. Si el % és menor a 20, s’aplicarà aquell %. Si el % és major a 20, s’aplicarà el 20%.

Exemple: 2 productes = 1 bloc * 5 = 5%

Exemple 2: 4 productes = 2 blocs * 5 = 10%

Exemple 3: min(10 productes = 5 blocs * 5 = 25, 20); (Ja que 20 és més petit que 25, s'agafa el 20)

$percentatge = min($blocs * 5, 20); // Calcula el %, fins a un màxim de 20 (2 productes = 1 bloc * 5 = 5% )

Un cop definit el % de descompte, calcularem el preu original (quantitat * preu unitari)

// Preu sense descompte $total_original = $preu_unitari * $quantitat; // Calculem el preu original (el preu unitari del producte + quantitat)

I el preu amb descompte

// Preu amb descompte $total_final = $total_original * (1 - $percentatge / 100); // Calculem el preu final aplicant-hi el descompte

Per finalment, retornar els valors anteriorment calculats

return [

       'total_original' => $total_original, // Retornem el total original (preu_unitari * quantitat)
       'total_final' => $total_final, // Retornem el preu descomptat  (preu_unitari * quantitat - descompte) 
       'descompte_percent' => $percentatge // Retornem el percentatge descomptat

];

El codi sencer de la funció és el següent:

<?php function calcularPreus($preu_unitari, $quantitat) { // Funció per calcular el descompte, li arriba el preu del producte i la quantitat a comprar

   // El descompte consisteix que cada 2 productes es descompte un 5% del total de la suma del mateix producte, fins a un màxim del 20% de descompte sobre el producte
   // Aquesta funció retorna sempre el preu sense descompte i el preu amb descompte
   $blocs = intdiv($quantitat, 2); // Divideix la quantitat de productes entre 2. (2 productes = 1. 6 productes = 3)
   $percentatge = min($blocs * 5, 20); // Calcula el %, fins a un màxim de 20 (2 productes = 1 bloc * 5 = 5% )
   // Preu sense descompte
   $total_original = $preu_unitari * $quantitat; // Calculem el preu original (el preu unitari del producte + quantitat)
   // Preu amb descompte
   $total_final = $total_original * (1 - $percentatge / 100); // Calculem el preu final aplicant-hi el descompte
   return [
       'total_original' => $total_original, // Retornem el total original (preu_unitari * quantitat)
       'total_final' => $total_final, // Retornem el preu descomptat  (preu_unitari * quantitat - descompte) 
       'descompte_percent' => $percentatge // Retornem el percentatge descomptat
   ];

}