Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<cstdlib>
- #include <time.h>
- #include <windows.h>
- #include <iomanip>
- #include <cmath>
- using namespace std;
- long double horner(double wsp[],int st, int x)
- {
- if(st==0)
- return wsp[0];
- return x * horner(wsp,st-1,x)+wsp[st];
- }
- long double naPiechote(double wsp[],int st, int x)
- {
- long double wynik = wsp[0];
- for(int i = 1; i <=st; i++)
- {
- wynik=wynik*x+wsp[i];
- }
- return wynik;
- }
- int main()
- {
- srand(time(NULL));
- double *wspolczynniki;
- int stopien, argument,l=0;
- double czasWykonania;
- double czasWykonaniaa;
- clock_t startCzas, stopCzas, startCzas2, stopCzas2;
- cout<<"Program oblicza wartosc wielomianu dla losowych wspolczynnikow z zakresu 0-1\n";
- do
- {
- cout<<"Podaj stopien wielomianu --> ";
- cin>>stopien;
- wspolczynniki = new double [stopien+1];
- cout<<"\n( Wylosowane wspolczyniki: ";
- for(int i=0;i<=stopien;i++)
- {
- wspolczynniki[i] = ((double) rand() / (double)RAND_MAX);
- cout<<setprecision(3)<<wspolczynniki[i]<<" ";
- }
- cout<<")"<<endl;
- cout<<"\nPodaj argument dla ktorego chcesz obliczyc wielomian --> ";
- cin>>argument;
- cout<<"\nObliczone za pomoca schematu Hornera: "<<endl;
- startCzas = clock();
- cout<<"W( "<<argument<<" ) = "<<horner(wspolczynniki,stopien,argument)<<endl;
- stopCzas = clock();
- czasWykonania = double(stopCzas - startCzas)/CLOCKS_PER_SEC;
- cout<<"Czas wykonania: "<<setprecision(30)<<czasWykonania<<endl;
- cout<<"\nObliczone metoda na piechote: "<<endl;
- startCzas2 = clock();
- cout<<"W( "<<argument<<" ) ="<<naPiechote(wspolczynniki,stopien,argument)<<endl;
- stopCzas2 = clock();
- czasWykonaniaa = double(stopCzas2 - startCzas)/CLOCKS_PER_SEC;
- cout<<"Czas wykonania: "<<setprecision(30)<<czasWykonaniaa<<endl<<endl;
- l++;
- }
- while(l!=10);
- delete [] wspolczynniki;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement