Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<cstdlib>
- #include<iomanip>
- #include<cmath>
- #include<conio.h>
- using namespace std;
- void oblicz(void)
- {
- double p;
- double epsilon;
- int ilosc_iteracji;
- char kolejne;
- do
- {
- cout<<"Podaj liczbe nieujemna do wyliczenia pierwiasteka kwadratowego: ";
- cin>>p;
- cout<<"Podaj dokladnosc obliczen(epsilon): ";
- cin>>epsilon;
- cout<<"Podaj maksymalna ilosc teracji: ";
- cin>>ilosc_iteracji;
- double a = p,b;
- int i=0;
- double roznica;
- cout<<"\nna poczatku:\na (pierwszy bok) wynosi: "<<a<<"\nb (drugi bok) wynosi: "<<p/a<<endl<<endl;
- while(abs(a-(p/a))>=epsilon && i<ilosc_iteracji)
- {
- roznica= abs(a-(p/a));
- cout<<"(roznica miedzy bokami wynosi: "<<fixed<<setprecision(6)<<roznica<<" i jest wieksza od epsilona)"<<endl;
- cout<<"KROK "<<i+1<<"\t\n";
- a=(a+(p/a))/2;
- b=p/a;
- cout<<"nowe a wynosi: "<<fixed<<setprecision(4)<<a<<endl;
- cout<<"nowe b wynosi: "<<fixed<<setprecision(4)<<b<<endl;
- cout<<endl;
- i++;
- }
- roznica= abs(a-(p/a));
- cout<<"KROK "<<i+1<<"\n powod przerwania petli: \n";
- if(roznica<epsilon)
- cout<<"-roznica miedzy bokami wynosi "<<fixed<<setprecision(10)<<roznica<<" i jest mniejsza od epsilona"<<endl;
- if (i==ilosc_iteracji)
- cout<<"-przekroczono ilosc iteracji";
- cout<<endl<<endl;
- cout<<"-------------------------------------------------------"<<endl;
- cout<<"Pierwiastek z liczby "<<fixed<<setprecision(2)<<p<<" wynosi ";
- cout<<fixed<<setprecision(4)<<a<<endl;
- cout<<"-------------------------------------------------------"<<endl;
- cout<<endl<<endl;
- cout<<"Czy chcesz jeszcze raz? t/n"<<endl;
- kolejne=getch();
- system("cls");
- }
- while(kolejne=='t');
- cout<<"KONIEC PROGRAMU"<<endl;
- }
- int main()
- {
- cout<<"PROGRAM LICZACY PIERWIASTEK KWADRATOWY Z LICZBY NIEUJEMNEJ \nALGORYTMEM NEWTONA-RAPHSONA (metoda HERONA)\n"<<endl;
- oblicz();
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement