Advertisement
Guest User

Untitled

a guest
Nov 19th, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.77 KB | None | 0 0
  1. #include<iostream>
  2. #include<cstdlib>
  3. #include <time.h>
  4. #include <windows.h>
  5. #include <iomanip>
  6. #include <cmath>
  7.  
  8. using namespace std;
  9.  
  10. long double horner(double wsp[],int st, int x)
  11. {
  12. if(st==0)
  13. return wsp[0];
  14. return x * horner(wsp,st-1,x)+wsp[st];
  15. }
  16.  
  17. long double naPiechote(double wsp[],int st, int x)
  18. {
  19. long double wynik = wsp[0];
  20. for(int i = 1; i <=st; i++)
  21. {
  22. wynik=wynik*x+wsp[i];
  23. }
  24. return wynik;
  25. }
  26.  
  27.  
  28. int main()
  29. {
  30. srand(time(NULL));
  31. double *wspolczynniki;
  32. int stopien, argument,l=0;
  33. double czasWykonania;
  34. double czasWykonaniaa;
  35. clock_t startCzas, stopCzas, startCzas2, stopCzas2;
  36.  
  37. cout<<"Program oblicza wartosc wielomianu dla losowych wspolczynnikow z zakresu 0-1\n";
  38. do
  39. {
  40. cout<<"Podaj stopien wielomianu --> ";
  41. cin>>stopien;
  42. wspolczynniki = new double [stopien+1];
  43. cout<<"\n( Wylosowane wspolczyniki: ";
  44. for(int i=0;i<=stopien;i++)
  45. {
  46. wspolczynniki[i] = ((double) rand() / (double)RAND_MAX);
  47.  
  48. cout<<setprecision(3)<<wspolczynniki[i]<<" ";
  49. }
  50. cout<<")"<<endl;
  51. cout<<"\nPodaj argument dla ktorego chcesz obliczyc wielomian --> ";
  52. cin>>argument;
  53.  
  54. cout<<"\nObliczone za pomoca schematu Hornera: "<<endl;
  55. startCzas = clock();
  56. cout<<"W( "<<argument<<" ) = "<<horner(wspolczynniki,stopien,argument)<<endl;
  57. stopCzas = clock();
  58. czasWykonania = double(stopCzas - startCzas)/CLOCKS_PER_SEC;
  59. cout<<"Czas wykonania: "<<setprecision(30)<<czasWykonania<<endl;
  60.  
  61. cout<<"\nObliczone metoda na piechote: "<<endl;
  62. startCzas2 = clock();
  63. cout<<"W( "<<argument<<" ) ="<<naPiechote(wspolczynniki,stopien,argument)<<endl;
  64. stopCzas2 = clock();
  65. czasWykonaniaa = double(stopCzas2 - startCzas)/CLOCKS_PER_SEC;
  66. cout<<"Czas wykonania: "<<setprecision(30)<<czasWykonaniaa<<endl<<endl;
  67. l++;
  68. }
  69. while(l!=10);
  70. delete [] wspolczynniki;
  71. return 0;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement