Advertisement
Guest User

Untitled

a guest
Oct 25th, 2014
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.47 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #define _USE _MATH_DEFINES
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <math.h>
  6.  
  7. struct sygnal
  8. {double amp, fs, ts, *taby, *tabx;
  9. int fp, lp;
  10. };
  11.  
  12. void wykres(int,double*, double*, char*);
  13.  
  14.  
  15. int main ()
  16. {struct sygnal s;
  17. char rs;
  18. int i,j,k,l,m ;
  19.  
  20. s.amp=0;
  21. s.fp=0;
  22. s.ts=0;
  23. s.fs=0;
  24. j=0;
  25. k=0;
  26. l=0;
  27. printf ("Wpisz a by wybrac sygnal6 i b by wybrac sygnal 11\n");
  28. scanf (" %s",&rs);
  29.  
  30. printf ("Podaj amplitude\n");
  31. scanf ("%lf", &s.amp);
  32. printf ("Podaj czestotliwosc probkowania\n");
  33. scanf ("%d", &s.fp);
  34. printf ("Podaj czas sygnału\n");
  35. scanf ("%lf", &s.ts);
  36. printf ("Podaj czestotliwosc sygnalu\n");
  37. scanf ("%lf", &s.fs);
  38.  
  39. printf ("amp=%lf\n fp=%d\n fs=%lf\n ts=%lf\n",s.amp, s.fp, s.fs, s.ts);
  40. s.lp=(int)s.ts*s.fp+1;
  41.  
  42. s.tabx=(double*)malloc(s.lp*sizeof(double));
  43. s.taby=(double*)malloc(s.lp*sizeof(double));
  44. for (i=0; i<s.lp; i++)
  45. {s.tabx[i]=(double)(i*1.0/(double)s.fp);
  46. printf ("%lf\n", s.tabx[i]);
  47. }
  48. switch(rs)
  49. {/*case 'a':
  50. for (m=1; m<(s.ts/(1/s.fs)+1); m++)
  51. {
  52. for (i=0; i<s.lp; i++)
  53. {if (i<s.fs*6*s.fp)
  54. {
  55. s.taby[i*m]=s.amp*s.tabx[i]*s.fs*6;
  56. }
  57. else if (i>=s.fs*6*s.fp && i<s.fs*12*s.fp)
  58. {
  59. s.taby[i*m]=s.amp*s.tabx[i]*s.fs*6-2*s.amp*s.tabx[j]*s.fs*6;
  60. j++;
  61. }
  62. else if (i>=s.fs*12*s.fp && i<s.fs*18*s.fp)
  63. {
  64. s.taby[i*m]=0;
  65. }
  66. else if (i>=s.fs*18*s.fp && i<s.fs*24*s.fp)
  67. {
  68. s.taby[i*m]=-s.amp*s.tabx[k]*s.fs*6;
  69. k++;
  70. }
  71. else if (i>=s.fs*24*s.fp && i<s.fs*30*s.fp)
  72. {
  73. s.taby[i*m]=s.amp*s.tabx[l]*s.fs*6-s.amp ;
  74. l++;
  75. }
  76. else
  77. {
  78. s.taby[i*m]=0;
  79. }
  80. }
  81. break;
  82. }*/
  83.  
  84.  
  85. case 'b':
  86. for (i=0; i<s.lp; i++)
  87. {s.taby[i]=s.amp*(double)sin(s.tabx[i]*((1/s.fs)/M_PI));
  88. printf ("%lf\n", s.taby[i]);
  89. }
  90. break;
  91.  
  92. }
  93.  
  94. wykres(s.lp,s.tabx,s.taby,"wykres.html"); //wywolanie f-cji rysujacej wykres
  95.  
  96. system("pause");
  97. return 0;
  98. }
  99.  
  100.  
  101. //Wywołanie funkcji
  102.  
  103.  
  104. void wykres(int l,double *tabx, double *taby, char nazwa[]){ //funkcja generujaca kod html dla wykresu Google Chart
  105. FILE *fp;
  106. int i;
  107.  
  108. printf("Rysuj %s\n",nazwa);
  109. fp = fopen(nazwa,"w");
  110.  
  111. fprintf(fp,"<html>\n");
  112. fprintf(fp,"<head>\n");
  113. fprintf(fp,"<script type=\"text/javascript\" src=\"https://www.google.com/jsapi\"></script>\n");
  114. fprintf(fp,"<script type=\"text/javascript\">\n");
  115. fprintf(fp,"google.load(\"visualization\", \"1\", {packages:[\"corechart\"]});\n");
  116. fprintf(fp,"google.setOnLoadCallback(drawChart);\n");
  117. fprintf(fp,"function drawChart() {\n");
  118. fprintf(fp,"var data = google.visualization.arrayToDataTable([\n");
  119.  
  120. fprintf(fp,"['i', 'Wartosc'],\n");
  121. for(i=0;i<l;i++){
  122. fprintf(fp,"[%lf, %lf],\n",tabx[i],taby[i]); //przekazanie danych na wykres
  123. }
  124. fprintf(fp,"[%lf, %lf]\n",tabx[i-1],taby[i-1]);
  125. fprintf(fp,"]);\n");
  126.  
  127. fprintf(fp,"var options = {\n");
  128. fprintf(fp,"title: 'Wybrany sygnal'\n");
  129. fprintf(fp,"};\n");
  130.  
  131. fprintf(fp,"var chart = new google.visualization.LineChart(document.getElementById('chart_div'));\n");
  132. fprintf(fp,"chart.draw(data, options);\n");
  133. fprintf(fp,"}\n");
  134. fprintf(fp,"</script>\n");
  135. fprintf(fp,"</head>\n");
  136. fprintf(fp,"<body>\n");
  137. fprintf(fp,"<div id=\"chart_div\" style=\"width: 900px; height: 500px;\"></div>\n");
  138. fprintf(fp,"</body>\n");
  139. fprintf(fp,"</html>\n");
  140.  
  141. fclose(fp);
  142.  
  143. system(nazwa); //uruchomienie pliku html
  144. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement