Passa al tema normale
Discussioni su argomenti di Informatica

Regole del forum

Consulta il nostro regolamento e la guida per scrivere le formule
Rispondi al messaggio

Re: [C++] programma sommatoria con ciclio

17/10/2019, 23:15

Ok capito grazie ;) in questo modo il primo punto dell'esercizio viene.
Il secondo punto invece chiede:
2. Sviluppare una seconda versione che prenda un double, ε, e calcoli un approssimazione di π di “grado
n” tale che |πi−πi−1|<ε

Il codice che ho scritto io è :

Codice:
#include <iostream>
#include <cmath>

using namespace std;

int main ()

{
double pi, e;
int n,j;

cout << "Scrivere il valore di epsilon:\n";
cin >> e;

for ( j=0; j > ((4/e)-(1/2)); j++ )
pi=pi+((pow(-1,j))*4/(2*j+1));

cout << pi;

  return 0;   
}


ma quando lo eseguo mi restituisce sempre lo stesso numero, come mai?

Grazie

Re: [C++] programma sommatoria con ciclio

18/10/2019, 09:50

La variable pi non è inizializzata. Quindi teoricamente assume valori casuali all'inizio.

Inoltre, la condizione j > ((4 / e) - (1 / 2)) è falsa per j = 0, quindi non entra nel ciclo. Nota inoltre che è meglio usare una variabile e cambiargli il segno invece di usare pow. Inoltre, non usi la variabile n, e puoi definire j direttamente nel for.

Re: [C++] programma sommatoria con ciclio

18/10/2019, 10:11

Io comunque avrei seguito un diverso approccio per le condizioni e il ciclo:
Codice:
    double pi = 0.; // initial value
    double delta = 1.;
    double sign = 1.;
    for (double delta = 1.; e * delta < 1.; delta += 2., sign *= -1.)
    {
        pi += sign / delta;
    }
    pi *= 4;
Rispondi al messaggio