PDA

View Full Version : Somma iterativa con criterio di arresto naturale in C


progC__
22-09-2005, 11:27
...qualcuno sa spiegarmi come impostare la somma dei primi n numeri naturali con CRITERIO DI ARRESTO NATURALE IN C... :help:

leadergl
22-09-2005, 13:11
che intendi con criterio di arresto naturale?

io non te lo so scrivere in C...ma per sommare i primi N numeri:

Pascal:

function SommaN(N:integer):integer;
var i:integer;
somma:=integer;
begin
i:=0;
while (i<n) do
begin
i:=i+1;
somma:=somma+1;
end;
SommaN:=somma;
end;

quel "somma:integer" puoi anche farlo diventare un longint...

progC__
22-09-2005, 13:16
che intendi con criterio di arresto naturale?

io non te lo so scrivere in C...ma per sommare i primi N numeri:

Pascal:

function SommaN(N:integer):integer;
var i:integer;
somma:=integer;
begin
i:=0;
while (i<n) do
begin
i:=i+1;
somma:=somma+1;
end;
SommaN:=somma;
end;

quel "somma:integer" puoi anche farlo diventare un longint...
...questa è la classica somma... quello che chiedo io è il criterio di arresto naturale per fermare la somma...

leadergl
22-09-2005, 16:07
si ma che significa "Criterio di arresto naturale"??

se ci spieghi questo magari ti aiutiamo...

progC__
22-09-2005, 17:33
si ma che significa "Criterio di arresto naturale"??

se ci spieghi questo magari ti aiutiamo...
...effettivamente non mi sono spiegato bene...allora: devo creare un algoritmo di somma iterativa es. for (k = ...)
{a = ...; somma = somma + a;} usando il critero di arresto naturale, cioè devo evitare somme (inutili) di addendi non significativi rispetto a s... :help:

leadergl
22-09-2005, 20:43
...effettivamente non mi sono spiegato bene...allora: devo creare un algoritmo di somma iterativa es. for (k = ...)
{a = ...; somma = somma + a;} usando il critero di arresto naturale, cioè devo evitare somme (inutili) di addendi non significativi rispetto a s... :help:

scusa...una domanda ma le "somme (inutili)" quali sarebbero?
se devi sommare i primi N numeri l'unico "inutile" che quindi nn influenza la somma è lo 0...

motogpdesmo16
22-09-2005, 20:48
quoto con tutti coloro che mi hanno preceduto.
In effett non è molto chiaro il concetto di "inutilità" riferito ai numeri. Come è stato detto l'unico elemento "inutile" è lo zero.

Gica78R
22-09-2005, 21:07
Forse vuole evitare altre variabili/indici e fare in modo che la somma termini sulla base di qualche altra condizione, magari un test su N? :confused:
Tipo

somma = 0;
while (N)
somma += (--N);


Che bello, sto pian piano imparando a scrivere codice illeggibile :D :D

anx721
22-09-2005, 21:20
Se non vuoi somme inutili:

int somma(int n){
return n * (n + 1) / 2;
}

:sofico:

Gica78R
22-09-2005, 21:23
Se non vuoi somme inutili:

int somma(int n){
return n * (n + 1) / 2;
}

:sofico:
Bella :D ma a occhio e croce non mi sembra tanto iterativa :p

PS: ma i primi N naturali sono [1,N] o [0,N-1]? :confused: Non me lo ricordo :muro:

progC__
22-09-2005, 23:21
CERCHERò DI ESSERE PIù CHIARO: ALLORA FACCIO RIFERIMENTO ALLA SOMMA DI NUMERI DECIMALI...PICCOLISSIMI...CHE ARRIVATI AD UN CERTO PUNTO QUANDO LI VAI A SOMMARE LA SOMMA RIMANE SEMPRE LA STESSA...PARLO DI SOMME TRA NUMERI FLOATING POINT...SCUSATE PER LA CONFUSIONE E PER AVER DETTO LA SOMMA DEI PRIMI N NUMERI NATURALI... :muro: in pratica l'algoritmo dovrebbe seguire questo concetto: somma i numeri decimali fino a quando l'ultimo decimale non dà contributo alla somma...