Advertisement
Guest User

Untitled

a guest
Jan 17th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.24 KB | None | 0 0
  1. #include <iostream>
  2. #include <conio.h>
  3. #include <omp.h>
  4. #include <time.h>
  5. #include <thread>
  6. #include <random>
  7. #include <string>
  8.  
  9. using namespace std;
  10.  
  11. void opoznienieMs(int timeMs)
  12. {
  13. time_t timeObject;
  14. timeObject = timeMs + clock();
  15. while (timeObject >= clock()) {};
  16. }
  17.  
  18. void sortowanieBabelkowe(int tablica[], int rozmiar, int opoznienie = 1)
  19. {
  20. for (int i = 0; i < rozmiar - 1; i++)
  21. {
  22. for (int j = 0; j < rozmiar - i - 1; j++)
  23. {
  24. if (tablica[j] > tablica[j + 1])
  25. {
  26. int temp = tablica[j];
  27. tablica[j] = tablica[j + 1];
  28. tablica[j + 1] = temp;
  29. }
  30. opoznienieMs(opoznienie);
  31. }
  32. }
  33. }
  34.  
  35. void drukujTablice(int tablica[], int rozmiar)
  36. {
  37. #pragma omp critical
  38. {
  39. printf("Tablica %d elementowa:\n[", rozmiar);
  40. for (int i = 0; i < rozmiar; i++)
  41. {
  42. printf("%d ", tablica[i]);
  43. }
  44. printf("]\n");
  45. }
  46. }
  47.  
  48. int* generujTabliceInt(int rozmiar)
  49. {
  50. int* tablica = new int[rozmiar];
  51. srand(time(NULL));
  52. for (int i = 0; i < rozmiar; i++)
  53. {
  54. tablica[i] = rand() % 200 - 99;
  55. opoznienieMs(1);
  56. }
  57. return tablica;
  58. }
  59.  
  60. int main(int argc, char** argv)
  61. {
  62. time_t czasWykonania = clock();
  63.  
  64. const int rozmiarTablic = 100;
  65.  
  66. int *arr1 = generujTabliceInt(rozmiarTablic),
  67. *arr2 = generujTabliceInt(rozmiarTablic),
  68. *arr3 = generujTabliceInt(rozmiarTablic),
  69. *arr4 = generujTabliceInt(rozmiarTablic);
  70.  
  71. #pragma omp parallel sections
  72. {
  73. #pragma omp section
  74. {
  75. drukujTablice(arr1, rozmiarTablic);
  76. sortowanieBabelkowe(arr1, rozmiarTablic);
  77. drukujTablice(arr1, rozmiarTablic);
  78. }
  79. #pragma omp section
  80. {
  81. drukujTablice(arr2, rozmiarTablic);
  82. sortowanieBabelkowe(arr2, rozmiarTablic);
  83. drukujTablice(arr2, rozmiarTablic);
  84. }
  85. #pragma omp section
  86. {
  87. drukujTablice(arr3, rozmiarTablic);
  88. sortowanieBabelkowe(arr3, rozmiarTablic);
  89. drukujTablice(arr3, rozmiarTablic);
  90. }
  91. #pragma omp section
  92. {
  93. drukujTablice(arr4, rozmiarTablic);
  94. sortowanieBabelkowe(arr4, rozmiarTablic);
  95. drukujTablice(arr4, rozmiarTablic);
  96. }
  97. }
  98.  
  99. czasWykonania = clock() - czasWykonania;
  100. cout << "Czas wykonania programu: " << czasWykonania << " ms" << endl;
  101.  
  102. delete[] arr1, arr2, arr3, arr4;
  103.  
  104. cout << "Koniec... wcisnij dowolny klawisz." << endl;
  105.  
  106. _getch();
  107. return 0;
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement