Advertisement
F22

Untitled

F22
Jan 21st, 2014
402
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*Tablicę dynamiczną X[n] wypełnić liczbami losowymi rzeczywistymi z przedziału <X1, X2>,
  2. tablicę Y[m] - liczbami losowymi rzeczywistymi z przedziału <Y1, Y2> (n oraz m należy przedtem wczytać, X1, X2, Y1, Y2 - stałe).
  3. W każdej tablicy wykonać sortowanie dowolną metodą, po czym utworzyć tablicę R (o rozmiarze mniejszej z dwu wartości m, n)
  4. zawierającą odległości punktów (X[i], Y[i]) od środka układu współrzędnych - i ją również posortować.
  5. Wydrukować tablice przed i po sortowaniu.
  6. Napisać i wykorzystać funkcję losującą dane do tablicy, funkcję sortującą dane w tablicy i funkcję drukującą tablicę.*/
  7. #include <ctime>
  8. #include <cstdlib>
  9. #include <iostream>
  10. #include <cmath>
  11. using namespace std;
  12. const int X1=0, X2=10, Y1=-5, Y2=5;
  13. void wymiar(int &roz)
  14. {
  15.     cout<<"Podaj wymiar tablicy: ";
  16.     cin>>roz;
  17. }
  18. void stworzenie(double *&tab, int roz)
  19. {
  20.     tab=new double[roz];
  21. }
  22. void lotto(double *&tab, int p1, int p2, int roz)
  23. {
  24.     for(int i=0; i<roz; i++)
  25.     {
  26.         tab[i]=rand()*(p2-p1)/double(RAND_MAX)+p1;
  27.     }
  28. }
  29. void sort(double *&tab, int roz)
  30. {
  31.     double tmp;
  32.     for(int i=roz-1; i>0;i--)
  33.     {
  34.         for(int j=0; j<i; j++)
  35.             if(tab[j]>tab[j+1])
  36.             {
  37.                 tmp=tab[j];
  38.                 tab[j]=tab[j+1];
  39.                 tab[j+1]=tmp;
  40.             }
  41.     }
  42. }
  43. void drukuj(double *&tab, int roz)
  44. {
  45.     cout<<endl<<"Tablica: "<<endl;
  46.     for(int i=0; i<roz; i++)
  47.     {
  48.         cout<<tab[i]<<"   ";
  49.     }
  50.     cout<<endl;
  51. }
  52. void porownanie(int roz1, int roz2, int &roz3)
  53. {
  54.     if(roz1>roz2)
  55.     {
  56.         roz3=roz2;
  57.     }
  58.     else
  59.     {
  60.         roz3=roz1;
  61.     }
  62. }
  63. void wzor(double *tab1, double *tab2, double *&tabR, int &roz3)
  64. {
  65.     for(int i=0; i<roz3; i++)
  66.     {
  67.         tabR[i]=sqrt(tab1[i]*tab1[i]+tab2[i]*tab2[i]);
  68.     }
  69. }
  70. void usun(double *tab)
  71. {
  72.     delete []tab;
  73. }
  74. int main()
  75. {
  76.     srand(time(0));
  77.     double *tab1, *tab2, *tabR;
  78.     int n, m, o;
  79.     wymiar(n);
  80.     wymiar(m);
  81.     stworzenie(tab1, n);
  82.     stworzenie(tab2, m);
  83.     lotto(tab1, X1, X2, n);
  84.     lotto(tab2, Y1, Y2, m);
  85.     sort(tab1, n);
  86.     sort(tab2, m);
  87.     drukuj(tab1, n);
  88.     drukuj(tab2, m);
  89.     porownanie(n, m, o);
  90.     stworzenie(tabR, o);
  91.     wzor(tab1, tab2, tabR, o);
  92.     drukuj(tabR, o);
  93.     usun(tab1);
  94.     usun(tab2);
  95.     usun(tabR);
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement