miejsce zerowe
Ostatnio zmodyfikowano 2016-05-17 10:59
| 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;
 }
 | 
|  | 
| carlosmay | » 2016-05-17 10:43:50 Odkomentuj  system( "pause" ); . | 
|  | 
| wiewior23 Temat założony przez niniejszego użytkownika | » 2016-05-17 10:59:24 dziękuję pomogło, zamykam temat | 
|  | 
| « 1 » |