» »

[Naloga][C++] vsota vrste

[Naloga][C++] vsota vrste

Pasha ::

Seos;

zanima me če bi mi lahko kdo razložil rešitev naloge za VSOTO VRSTE v C++??!?!?!

imam nalogo: Izračunajte naslednjo vrsto ...

1 + 1/1! + 1/2! +...+ 1/n! + ...

glede fakultete nimam problema, naredil sem funkcijo ki izracuna fakulteto stevila...

double fak (double n)
{
double fakk=1;
for (int i=1; i< =n ; i++)
fakk *=i;
return fakk;
}

samo nimam pojma kako dalje izracunat to vrsto ?!?!?!?
upam da mi lahko kdo razlozi smisel tega?

hvala vam za v naprej ;
  • spremenilo: CCfly ()

Jean-Paul ::

No, ti v zanki računaš člene vrste (oz. njihove obratne vrednosti), ostane ti le še, da jih sešteješ.

bozjak ::

najlažje narediš vse v eni zanki (for) in na koncu (npr for ciklaš do n-ja) in na koncu le še izpišeš rezultat. Najprej ti napišem par hintov če res ne bo šlo drugače dobiš še kodo...

Funkcijo za fakulteto maš... števc znaš povečvt, torej vse skupaj le še seštevaš (mogoče ti bo v pomoč to, da v ukazu seštevanja lahko uporabljaš oklepaje, kličeš funkcije in računaš z njihovimi returni...

Lp
http://upor.blogec.si
http://bozjak.deviantart.com

PaX_MaN ::

Verjetno maš kak pogoj, kdaj nehat seštevat, ko je člen manjši od nekega epsilona, je tako?

snow ::

Če ne druga imaš omejitev resolucije tipa double, če računaš z njim.
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins

Gundolf ::

Lej, n! = 1 * 2 * ... * n
Ti si to znal napisat v obliki C++ programa.
Zdej čist podobno je s tem: 1 + 1/1! + 1/2! +...+ 1/n!
* zamenjaš s + in faktor s katerim si prej množil (i) zamenjaš z njegovo fakuleto (fak(i)).
Tako dobiš funkcijo, ki ti računa vrsto. Ali imaš morda kakšen manj očiten problem?

matejv ::

ja metoda ne bi bla malo počasna. boljše je, če narediš nekako tako. aja, delaš za faks? ker tako smo meli lani.

1 + 1/1! + 1/2! +...+ 1/n! -> če opaziš se fakultete povečujejo za ena, zato bi bilo brezveze vsakič računati fakulteto na novo. rajši samo zmnožiš z ena več.

for(n=0;n manj x;n++)
vsota+=1/(clen); //prišteješ člen
clen*=n; //zračunaš fakulteto, tako da prejšno fakulteto zmnožiš z n

nekaj takega, ne vem če je ta for stavek pravilen.

upam da ti je jasno.

bozjak ::

Ok sm spisov celoten program (mislim da deluje pravilno a veliko se z njim nisem ukvarjal):

#include <stdio.h>
#include <stdlib.h>

main() {
       float vsota = 1, fakulteta = 1;
       int n, i;
       printf("Vnesi n ");
       scanf("%d", &n);
       for (i = 1; i <= n; i++) {
           fakulteta *= i;
           vsota += 1/fakulteta;
           printf("Delni rezultat: %f fakulteta: %f\n", vsota, fakulteta);
       }
       printf("Vsota je: %f", vsota);
       system("PAUSE");
}


Lp
http://upor.blogec.si
http://bozjak.deviantart.com


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Matlab pomoč

Oddelek: Programiranje
142105 (1409) Jan23
»

Matlab problemi z začetniško domačo nalogo

Oddelek: Programiranje
101995 (1600) Spura
»

Pomoč z C++ nalogo

Oddelek: Programiranje
101417 (1224) denis123
»

Problemi pri C++ programiranju...

Oddelek: Programiranje
363888 (3363) George
»

Izračun fakultete...

Oddelek: Programiranje
134444 (4178) jeti

Več podobnih tem