Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

miejsce zerowe

Ostatnio zmodyfikowano 2016-05-17 10:59
Autor Wiadomość
wiewior23
Temat założony przez niniejszego użytkownika
miejsce zerowe
» 2016-05-17 10:36:05
witam mam taki problem, gdy otwieram program i podaje przedział a= -1 i b = 0 to program podaje wynik lecz się wyłącza nie dając przeczytać wyniku co muszę poprawić aby program nie wyłączał się po wyskoczeniu wyniku?


//Program wyznacza miejsce zerowe funkcji fun(x) metodą połowienia"
//Założenia: Funkcja musi być ciągła, określona w przedziale <a,b>, oraz musi przyjmować wartości różnych znaków na końcach przedziału tzn
//jeżeli fun(a)<0 to fun(b)>0 albo jeżeli fun(a)>0  to  fun(b)<0.

#include <iostream>
#include <iomanip>
#include <cmath>


using namespace std;

     double fun(double x)
     {
      return sqrt(x)-sin(x)-1;     // Tu należy podać funkcję, której miejsca zerowego szukamy
     }                    


int main()
{

  double a,b,x0,fa,fb,f0,dok;
  dok = 0.0000000000001; // Dokładność z jaką ma być wyznaczone miejsce zerowe


  cout << "Podaj przedzial poszukiwania miejsca zerowego:\n";
  cout << "a = ";
  cin >> a;
  cout << "b = ";
  cin >> b;

  fa=fun(a);
  fb=fun(b);
 
       if(fa*fb==0)    
        {
            if(fa==0)
    cout << "Miejsce zerowe: \n" << "x0 = " << setprecision(15) << a << endl;
    else
    cout << "Miejsce zerowe: \n" << "x0 = " << setprecision(15) << a << endl;
            return 0;
        }

       if(fa*fb>0)    
       cout << "Funkcja nie spelnia zalozen \n";       
       else                                       // Metoda połowienia
         {
           while(abs(a-b)>=dok)
           {
             x0=(a+b)/2;
         f0=fun(x0);
             if(abs(f0)==0)
         break;
             if(fa*f0<0)
         b=x0;
             else
             {
              a=x0;
      fa=f0;
             }
           }
       cout << "Miejsce zerowe: \n" << "x0 = " << setprecision(15) << a << endl;  // Precyzja z jaką ma być wyświetlone na ekranie miejsce zerowe

         }
//  system("pause");
  return 0;
}
P-148324
carlosmay
» 2016-05-17 10:43:50
Odkomentuj
system( "pause" );
.
P-148325
wiewior23
Temat założony przez niniejszego użytkownika
» 2016-05-17 10:59:24
dziękuję pomogło, zamykam temat
P-148326
« 1 »
  Strona 1 z 1