Advertisement
Guest User

Untitled

a guest
Jun 16th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.11 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4.  
  5. const int k = 10;
  6. const int N = 5;
  7. int sum = 0;
  8.  
  9. int fillArray(int *arr){
  10. for (int i = 0;i<k;i++){
  11. arr[i] = rand()%20;
  12. }
  13. }
  14.  
  15. void printArray(int *arr){
  16. for(int i=0;i<k;i++){
  17. printf("%d ",arr[i]);
  18.  
  19. }
  20. }
  21.  
  22. int findMax(int *arr){
  23. int max=arr[0];
  24. for(int i = 0; i<k;i++){
  25. if(max<arr[i]){
  26. max = arr[i];
  27. }
  28. }
  29. return max;
  30. }
  31. int fillSeriesArray(int *arr, int size){
  32. arr[0] = 1;
  33. arr[1] = -8;
  34. arr[2] = 6;
  35.  
  36. for(int i=3;i<size;i++){
  37. arr[i] = -8 * arr[i-1] - sqrt(2/3 * arr[i-2]) + 13 * arr[i-3];
  38. }
  39.  
  40. }
  41.  
  42.  
  43.  
  44. int main(){
  45.  
  46. srand(time(NULL));
  47. int max;
  48. int *randomNumbers = malloc(sizeof(int)* k);
  49.  
  50.  
  51. fillArray(randomNumbers);
  52. printArray(randomNumbers);
  53.  
  54. max = findMax(randomNumbers);
  55. int *seriesArray = malloc(max * sizeof(int));
  56. fillSeriesArray(seriesArray,max);
  57. printArray(seriesArray);
  58.  
  59. int input[2], output[2];
  60. pipe(input);
  61. pipe(output);
  62. int i = 0;
  63.  
  64.  
  65. // proces nadrzedny dostaje liczbe z tablicy
  66. for(i =0;i< k;i++){
  67. write(input[1],&randomNumbers[i],sizeof(randomNumbers[i]));
  68. }
  69.  
  70. for(i = 0;i<N;i++){
  71. if(fork() == 0){
  72. while(1){
  73. int x = 0;
  74. read(input[0],&x, sizeof(x));
  75. if(x<0)
  76. exit(0);
  77.  
  78. int result = seriesArray[x];
  79. write(output[1],&result,sizeof(result));
  80. }
  81. }
  82. }
  83.  
  84. //
  85. for(i = 0; i<N;i++){
  86. int result = 0;
  87. read(output[0],&result,sizeof(result));
  88. sum+=result;
  89. }
  90.  
  91. for(i = 0; i<N;i++){
  92. int terminate = -1;
  93. write(input[1],&terminate,sizeof(terminate));
  94. }
  95.  
  96. //printf("Suma : %d",sum);
  97. return 0;
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement