Guest User

Untitled

a guest
Jan 23rd, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.03 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <locale.h>
  3. #include <math.h>
  4. #include <stdlib.h>
  5. #include<conio.h>
  6. #include <time.h>
  7. #define LICZBA_PROBEK 100
  8.  
  9. void dziedzina(double *dmin, double *dmax);
  10. void parametry(double wsp[]);
  11. void generuj(double wsp[], double dmin, double dmax, double wyniki[], int wielkosc);
  12. void zapisz(double wyniki[], int wymiar, double dmin, double dmax);
  13. void szum(double suma[], double wyniki[], int rozmiar);
  14.  
  15. void szum(double suma[], double wyniki[], int rozmiar)
  16. {
  17. srand((unsigned int) time(NULL));
  18. // double l;
  19. int i;
  20. double amplituda;
  21. double szum[100];
  22. printf("\npodaj amplitude: ");
  23. scanf("%lf", &amplituda);
  24. for (i=0; i<rozmiar; i++)
  25. {
  26.  
  27. szum[i]=(((double)rand()/RAND_MAX)*amplituda - (amplituda/2));
  28. printf("\n szum =%lf \n", szum);
  29. suma[i]=wyniki[i]+szum[i];
  30. printf("\n suma sygnalow= %lf \n", suma[i]);
  31. }
  32. }
  33.  
  34.  
  35. void dziedzina(double *dmin, double *dmax)
  36. {
  37. printf("podaj parametry określające dziedzinę: \n");
  38. scanf("%lf %lf", dmin, dmax);
  39. while (*dmin>*dmax)
  40. {
  41. printf("\npoczątek musi być mniejszy niż koniec! podaj parametry: ");
  42. scanf("%lf %lf", dmin, dmax);
  43. }
  44. printf("\nzakres Twojej dziedziny jest od %lf do %lf \n", *dmin, *dmax);
  45. }
  46.  
  47. void parametry(double wsp[])
  48. {
  49. printf("podaj współczynniki wielomianu: ");
  50. scanf("%lf %lf %lf", &wsp[0], &wsp[1], &wsp[2]);
  51. printf("\nTwoje współczynniki to a=%lf, b=%lf, c=%lf \n", wsp[0], wsp[1], wsp[2]);
  52. }
  53.  
  54. void generuj(double wsp[], double dmin, double dmax, double wyniki[], int wielkosc)
  55. {
  56. double x, delta; // delta oznacza wartość bezwzględną różnicy między dmin a dmax
  57. int i = 0;
  58. // printf("podaj ilość próbek: ");
  59. // scanf_s("%d", wielkosc);
  60. // printf("Twoja liczba próbek wynosi: %d\n", *wielkosc);
  61. // wyniki = (double *) malloc((int)*wielkosc * sizeof (double));
  62.  
  63.  
  64. delta = (dmax - dmin)/(wielkosc);
  65. printf("delta = %lf\n", delta);
  66.  
  67. x = dmin;
  68.  
  69. for(i=0; i<wielkosc; i++)
  70. {
  71. wyniki[i]=(wsp[0]*(x*x))+(wsp[1]*x)+wsp[2];
  72. printf("dla wartosci x = %1.2lf wartosc wielomianu wynosi: %1.2lf\n", x, wyniki[i]);
  73. x = x + delta;
  74. }
  75.  
  76. }
  77.  
  78. //fgets
  79. //"%lf\n"
  80.  
  81. void zapisz(double wyniki[], int wymiar, double dmin, double dmax)
  82. {
  83. int i;
  84. FILE *f;
  85. //f=fopen("wielomian.csv", "w")
  86. if ((f=fopen("wielomian.csv", "w"))!=NULL)
  87. {
  88. fprintf(f, "wyniki");
  89. for(i=0; i<wymiar; i++)
  90. {
  91. fprintf(f, "\n%f;", wyniki[i]);
  92. }
  93. printf("\nzapis poprawny\n");
  94. }
  95. else printf("błąd przy zapisie");
  96. fclose(f);
  97.  
  98. }
  99.  
  100.  
  101. int main(void)
  102. {
  103. double Dmin, Dmax;
  104. double tab[4];
  105. int rozmiar=5;
  106. double wynikowa[LICZBA_PROBEK];
  107. //double l;
  108. //double szumik[100];
  109. double suma[LICZBA_PROBEK];
  110.  
  111. setlocale(LC_ALL, "polish");
  112. dziedzina(&Dmin, &Dmax);
  113. parametry(tab);
  114. generuj(tab, Dmin, Dmax, wynikowa, rozmiar);
  115. zapisz(wynikowa, rozmiar, Dmin, Dmax);
  116.  
  117. szum(suma, wynikowa, rozmiar);
  118.  
  119. // l=(double)rand()/RAND_MAX;
  120. //printf("\n%lf \n", l);
  121. getch();
  122. return 0;
  123. }
Add Comment
Please, Sign In to add comment