Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.25 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <math.h>
  4. #include <locale.h>
  5. #include <time.h>
  6.  
  7. #define N 4
  8. #define M 2
  9. #define L 122
  10. #define _CRT_SECURE_NO_WARNINGS
  11.  
  12. void opis_programu();
  13. void wpis_wsp(int *);
  14. void wpis_dziedzina(int *);
  15. void przebieg(int, int ,int, int, int, int, int *, float *, float *);
  16. void szum(float *, float *);
  17. void zapis(int *, float *, float *, float *);
  18.  
  19. int main()
  20. {
  21. int wsp[N];
  22. int dziedzina[M];
  23. int nr_operacji[L];
  24. float argument[L];
  25. float wynik[L];
  26. float wynik_szum[L];
  27. srand(time(NULL));
  28. setlocale(LC_ALL, "polish_poland");
  29.  
  30. opis_programu();
  31. wpis_wsp(wsp);
  32. wpis_dziedzina(dziedzina);
  33. przebieg(wsp[0],wsp[1],wsp[2],wsp[3],dziedzina[0],dziedzina[1], nr_operacji, argument, wynik);
  34. szum(wynik, wynik_szum);
  35. zapis(nr_operacji,argument,wynik,wynik_szum);
  36.  
  37. system("PAUSE");
  38. return 0;
  39. }
  40. void opis_programu()
  41. {
  42. printf("Program zajmuje sie funkcja:\n\n f(x)=A|cos(Bx+C)|+D \n \n");
  43. printf("Wpisz kolejno wspolczynniki:\n\n A: amplituda( jej polowa) |cos()| \n");
  44. printf(" B: czestosc cosinusa \n C: przesuniecie fazowe \n D: przesuniecie updown\n");
  45. }
  46. void wpis_wsp(int *ptr)
  47. {
  48. int A,B,C,D;
  49. scanf("%d %d %d %d", &A, &B, &C, &D);
  50. *ptr=A;
  51. *(ptr+1)=B;
  52. *(ptr+2)=C;
  53. *(ptr+3)=D;
  54. }
  55. void wpis_dziedzina(int *ptr)
  56. {
  57. int poczatek, koniec;
  58. printf("\n Wpisz dziedzine: 'od', potem 'do'\n");
  59. scanf("%d %d", &poczatek, &koniec);
  60. *ptr=poczatek;
  61. *(ptr+1)=koniec;
  62. }
  63. void przebieg(int A, int B, int C, int D, int xp, int xk, int *ptr_nr_operacji, float *ptr_argument, float *ptr_wynik)
  64. {
  65. float i;
  66. int j;
  67. for(i=xp,j=0; i<xk && j<L; i=xp+j*((fabs((xk-xp)))/L), j++)
  68. {
  69. *(ptr_nr_operacji+j)=j+1;
  70. *(ptr_argument+j)=i;
  71. *(ptr_wynik+j)=A*fabs(cos((B*i)+C))+D;
  72. }
  73. }
  74. void szum( float *tab, float *tab_szum)
  75. {
  76. int ile;
  77. int i;
  78. ile=(rand()%(L/2))+3;
  79. for(i=0;i<L;i++)
  80. {
  81. *(tab_szum+i)=tab[i];
  82. }
  83. for(i=0;i<ile;i++)
  84. {
  85. *(tab_szum+rand()%L)=rand()%101;
  86. }
  87. }
  88.  
  89. void zapis(int *ptr_nr_operacji, float *ptr_argument, float *ptr_wynik, float *ptr_wynik_szum)
  90. {
  91. int i;
  92. FILE *plik;
  93. plik=fopen("wynik.csv", "w");
  94. for(i=0;i<L;i++)
  95. {
  96. fprintf(plik, "%d; %f; %f; %f; \n", ptr_nr_operacji[i], ptr_argument[i], ptr_wynik[i], ptr_wynik_szum[i]);
  97. }
  98. fclose(plik);
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement