rootuss

Newton- Raphson ver3

Feb 11th, 2017
137
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include<iostream>
  2. #include<cstdlib>
  3. #include<iomanip>
  4. #include<cmath>
  5. #include<conio.h>
  6.  
  7. using namespace std;
  8.  
  9. void oblicz(void)
  10. {
  11.     double p;
  12.     double epsilon;
  13.     int ilosc_iteracji;
  14.  
  15.     char kolejne;
  16.  
  17.     do
  18.     {
  19.     cout<<"Podaj liczbe nieujemna do wyliczenia pierwiasteka kwadratowego: ";
  20.     cin>>p;
  21.  
  22.     cout<<"Podaj dokladnosc obliczen(epsilon): ";
  23.     cin>>epsilon;
  24.  
  25.     cout<<"Podaj maksymalna ilosc teracji: ";
  26.     cin>>ilosc_iteracji;
  27.  
  28.     double a = p,b;
  29.     int i=0;
  30.     double roznica;
  31.  
  32.     cout<<"\nna poczatku:\na (pierwszy bok) wynosi: "<<a<<"\nb (drugi bok) wynosi: "<<p/a<<endl<<endl;
  33.  
  34.     while(abs(a-(p/a))>=epsilon && i<ilosc_iteracji)
  35.        {
  36.             roznica= abs(a-(p/a));
  37.             cout<<"(roznica miedzy bokami wynosi: "<<fixed<<setprecision(6)<<roznica<<" i jest wieksza od epsilona)"<<endl;
  38.             cout<<"KROK "<<i+1<<"\t\n";
  39.  
  40.             a=(a+(p/a))/2;
  41.             b=p/a;
  42.  
  43.             cout<<"nowe a wynosi: "<<fixed<<setprecision(4)<<a<<endl;
  44.             cout<<"nowe b wynosi: "<<fixed<<setprecision(4)<<b<<endl;
  45.             cout<<endl;
  46.  
  47.             i++;
  48.        }
  49.  
  50.         roznica= abs(a-(p/a));
  51.         cout<<"KROK "<<i+1<<"\n powod przerwania petli: \n";
  52.  
  53.         if(roznica<epsilon)
  54.             cout<<"-roznica miedzy bokami wynosi "<<fixed<<setprecision(10)<<roznica<<" i jest mniejsza od epsilona"<<endl;
  55.         if (i==ilosc_iteracji)
  56.             cout<<"-przekroczono ilosc iteracji";
  57.  
  58.         cout<<endl<<endl;
  59.         cout<<"-------------------------------------------------------"<<endl;
  60.         cout<<"Pierwiastek z liczby "<<fixed<<setprecision(2)<<p<<" wynosi ";
  61.         cout<<fixed<<setprecision(4)<<a<<endl;
  62.         cout<<"-------------------------------------------------------"<<endl;
  63.         cout<<endl<<endl;
  64.  
  65.         cout<<"Czy chcesz jeszcze raz? t/n"<<endl;
  66.         kolejne=getch();
  67.         system("cls");
  68.     }
  69.     while(kolejne=='t');
  70.     cout<<"KONIEC PROGRAMU"<<endl;
  71. }
  72.  
  73. int main()
  74. {
  75.     cout<<"PROGRAM LICZACY PIERWIASTEK KWADRATOWY Z LICZBY NIEUJEMNEJ \nALGORYTMEM NEWTONA-RAPHSONA (metoda HERONA)\n"<<endl;
  76.  
  77.     oblicz();
  78.  
  79.     system("pause");
  80.     return 0;
  81. }
RAW Paste Data