Programma per calcolare il numero triangolare

martinuccia98
Ciao, sto studiando per l'esame di informatica e sul libro leggevo un programma in C per calcolare per esempio il quarto numero triangolare.
Il programma è espresso mediante un for del tipo
$ for(n=1; n<=4, n=n+1)

TriangularNumber = TriangularNumber +n;$
Non capisco perché il numero triangolare con il for si trovi con questa scrittura..perché n=n+1?
Grazie

Risposte
apatriarca
Sta semplicemente facendo un ciclo di tutti i numeri interi da 1 a 4 compresi e li sta sommando. n = n + 1 significa che il valore della variabile n deve essere incrementato di uno alla successiva iterazione. Si poteva anche scrivere con le seguenti versioni più sintetiche n++, ++n, n += 1. Discorso simile anche per il numero triangolare. Stai dicendo che ad ogni iterazione il suo valore va incrementato della quantità n. Anche in questo caso era possibile scriverlo in modo più compatto TriangularNumber += n.

martinuccia98
Grazie della risposta ma non penso di aver capito perfettamente..ho capito perché incrementa di 1 ma poi non mi spiego perché scrive che triangularnumber= TriangularNumber+n
C'è qualche esempio pratico per capire?

apatriarca
Un numero triangolare è la somma di tutti i numeri interi da 1 ad un qualche valore fissato. Hai quindi in quel caso particolare, 1+2+3+4. All'inizio del ciclo n vale 1 e TriangularNumber vale 0. Alla prima iterazioni sommi i due valori e hai che TriangularNumber diventa 1. Incrementi quindi n di 1 (diventa 2). A questo punto ripeti il procedimento sommando i due numeri, ottenendo TriangularNumber = 1 + 2 = 3, e incrementando n ottenendo 3. E così via per le ultime due iterazioni.

martinuccia98
Non prendevo in considerazione che all'inizio del ciclo TriangularNumber valesse 0 e non mi tornavano i conti! Adesso è tutto chiaro grazie mille per la disponibilità..alla prossima ahaha e buona serata:)

apatriarca
Bhe.. Non c'è scritto in quel pezzo di codice ma è una condizione necessaria perché il risultato sia quello corretto..

martinuccia98
Si lo terrò a mente, grazie ancora!

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.