Testy nie działają.

0

Staram się napisac program, który policzy liczbe e ze wzoru z silniami podanego na tej stronie http://www.math.edu.pl/liczba-e . Ma on liczyć ową liczbe z podaną dokładnością, oraz posiadać testy. Pierwsze moje pytanie czy program działa ok, jak nie to co jest źle? A drugie, dlaczego testy nie działaja i jak je napisać. Bardzo prosze o pewien wzór.

Błagam o wyrozumiałość. Programuję 2 miesiące dopiero :)

Oto mój program:

#include <cassert>
#include <iostream>
#include <limits>
#include <math.h>

using namespace std;

enum Error {
  NO_ERROR,
  WRONG_ARGUMENT
};


double silnia(double x) {

    double silnia=1;
    if (x<1) return 1;
    else if(x==1){ 
         return silnia; }
    else { 
         double k;
         for (k=1;k<x+1;k++){ 
             silnia = silnia *k; 
             }
         }
return silnia;
}
       
double count_e(double acc, Error* err) {
       

       double e=2.7182818;
       double wynik = 1;
       double poprz_wynik;
       long double c = 0;  
        do {
            double x=8;  // Błąd bezwzględny tego przybliżenia nie przekracza liczby 3/n!. 
                         //Na przykład aby obliczyć e z dokładnością do 0,0001 musimy wziąć n = 8 
                         //(jest to najmniejsza liczba naturalna n, dla której 3/n! < 0.0001)
            c =  c + 1.0 / silnia(x);
            wynik= 2 + c;
            poprz_wynik = wynik;
  } while (wynik < e - acc); 
  
  return wynik;
}

int main()
{
       
    double result;
    Error error;
    /*result =  count_e(0.01, &error);
    assert(error == NO_ERROR);
    assert(2.718281 - result) < 0.01);

    result =  count_e(0.001, &error);
    assert(error == NO_ERROR);
    assert(2.7182818 - result) < 0.001);
    
    cout << "OK\n"; */
    
    double z;
    double acc=0.0001;
    z = count_e(acc, &error);
      
    cout<<z;
    
    getchar();
     return 0;
}

I dlaczego przy każdym razie jak otwieram program w devc++ bo z niego korzystam to wyskakuje komunikat "wystąpiły problemy z przesłaniem polecenia do programu"?? ale otwiera się mimo to wszystko.

0
misiek102k napisał(a)

Pierwsze moje pytanie czy program działa ok, jak nie to co jest źle?
To chyba sam powinieneś wiedzieć najlepiej.

misiek102k napisał(a)

Błagam o wyrozumiałość. Programuję 2 miesiące dopiero :)
To dla takich osób jest dział newbe.

misiek102k napisał(a)

I dlaczego przy każdym razie jak otwieram program w devc++ bo z niego korzystam to wyskakuje komunikat "wystąpiły problemy z przesłaniem polecenia do programu"??
właśnie dlatego bo korzystasz z devc++. Wywal to straszne ustrojstwo i zainstaluj sobie jakieś porządniejsze IDE. Chociażby Code::Blocks.

Starałem się być wyrozumiały.

0

Tyle, że nic się nie dowiedziałem.

0
misiek102k napisał(a)

Tyle, że nic się nie dowiedziałem.

No jak?

  1. Sam powinieneś wiedzieć czy działa. Robi to co chcesz żeby robił? To działa.
  2. Dobry dział dla twojego tematu to newbie,
  3. Zmień IDE.

1 użytkowników online, w tym zalogowanych: 0, gości: 1