Semplice ciclo for per trovare il quadrato di n - funziona ma non capisco

Ciao

sto cercando di capire bene come funziona un ciclo for. Nonostante abbia compreso gran parte del funzionamento mi rimane un dubbio che finché non riesco a togliermelo dalla testa mi creerà confusione.

Dato questo esercizio:

<?php
                 $n=5;
                 $num=1;
                 $somma=0;
                 for($i=1; $i<=$n; $i++) {
                   $somma=$somma+$num;
                   $num=$num+2;
                 }
                 echo $somma;
            ?>

e dato che il quadrato di n è la somma dei primi n numeri dispari, come fa ad essere esatto se num non viene addizionato in stato 1? O meglio, non capisco bene che giro fa il ciclo per riuscire a sommare anche 1. Il quadrato di 5 è dato dalla somma di 1, 3, 5, 7 e 9, ma quando viene sommato 1? Al momento ragiono in questo modo: num è 1 e al primo ciclo diventa 3, quindi non viene mai sommato, come diamine è che invece viene sommato?

Inoltre mi chiedo: ma la variabile somma è per forza necessaria? Non ne vedo l'utilità visto che non fa altro che sommare num a 0  ???

Grazie

inviato 5 anni fa
gabar-el
X 0 X

Ti riporto il codice che hai postato in cui ho aggiunto un po' di echo per far visualizzare come cambiano i valori ad ogni iterazione del ciclo.

<?php
$n=5;
$num=1;
$somma=0;
for($i=1; $i<=$n; $i++) {

   echo '--- Ciclo numero ' . $i . ' ----<br>';
   echo ' $somma da ' . $somma;

   $somma = $somma+$num;

   echo ' diventa ' . $somma . '<br>';
   echo ' $num da ' . $num;

   $num = $num+2;

   echo ' diventa ' . $num . '<br><br>';
}

echo 'valore finale di $somma = ' . $somma;

Se lo lanci avrai questo risultato:

--- Ciclo numero 1 ----

$somma da 0 diventa 1

$num da 1 diventa 3

--- Ciclo numero 2 ----

$somma da 1 diventa 4

$num da 3 diventa 5

--- Ciclo numero 3 ----

$somma da 4 diventa 9

$num da 5 diventa 7

--- Ciclo numero 4 ----

$somma da 9 diventa 16

$num da 7 diventa 9

--- Ciclo numero 5 ----

$somma da 16 diventa 25

$num da 9 diventa 11

valore finale di $somma = 25

risposto 5 anni fa
Gianni Tomasicchio
X 0 X

Grazie Gianni,

ora è tutto chiaro :)

risposto 5 anni fa
gabar-el
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda