Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #define _USE _MATH_DEFINES
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- struct sygnal
- {double amp, fs, ts, *taby, *tabx;
- int fp, lp;
- };
- void wykres(int,double*, double*, char*);
- int main ()
- {struct sygnal s;
- char rs;
- int i,j,k,l,m ;
- s.amp=0;
- s.fp=0;
- s.ts=0;
- s.fs=0;
- j=0;
- k=0;
- l=0;
- printf ("Wpisz a by wybrac sygnal6 i b by wybrac sygnal 11\n");
- scanf (" %s",&rs);
- printf ("Podaj amplitude\n");
- scanf ("%lf", &s.amp);
- printf ("Podaj czestotliwosc probkowania\n");
- scanf ("%d", &s.fp);
- printf ("Podaj czas sygnału\n");
- scanf ("%lf", &s.ts);
- printf ("Podaj czestotliwosc sygnalu\n");
- scanf ("%lf", &s.fs);
- printf ("amp=%lf\n fp=%d\n fs=%lf\n ts=%lf\n",s.amp, s.fp, s.fs, s.ts);
- s.lp=(int)s.ts*s.fp+1;
- s.tabx=(double*)malloc(s.lp*sizeof(double));
- s.taby=(double*)malloc(s.lp*sizeof(double));
- for (i=0; i<s.lp; i++)
- {s.tabx[i]=(double)(i*1.0/(double)s.fp);
- printf ("%lf\n", s.tabx[i]);
- }
- switch(rs)
- {/*case 'a':
- for (m=1; m<(s.ts/(1/s.fs)+1); m++)
- {
- for (i=0; i<s.lp; i++)
- {if (i<s.fs*6*s.fp)
- {
- s.taby[i*m]=s.amp*s.tabx[i]*s.fs*6;
- }
- else if (i>=s.fs*6*s.fp && i<s.fs*12*s.fp)
- {
- s.taby[i*m]=s.amp*s.tabx[i]*s.fs*6-2*s.amp*s.tabx[j]*s.fs*6;
- j++;
- }
- else if (i>=s.fs*12*s.fp && i<s.fs*18*s.fp)
- {
- s.taby[i*m]=0;
- }
- else if (i>=s.fs*18*s.fp && i<s.fs*24*s.fp)
- {
- s.taby[i*m]=-s.amp*s.tabx[k]*s.fs*6;
- k++;
- }
- else if (i>=s.fs*24*s.fp && i<s.fs*30*s.fp)
- {
- s.taby[i*m]=s.amp*s.tabx[l]*s.fs*6-s.amp ;
- l++;
- }
- else
- {
- s.taby[i*m]=0;
- }
- }
- break;
- }*/
- case 'b':
- for (i=0; i<s.lp; i++)
- {s.taby[i]=s.amp*(double)sin(s.tabx[i]*((1/s.fs)/M_PI));
- printf ("%lf\n", s.taby[i]);
- }
- break;
- }
- wykres(s.lp,s.tabx,s.taby,"wykres.html"); //wywolanie f-cji rysujacej wykres
- system("pause");
- return 0;
- }
- //Wywołanie funkcji
- void wykres(int l,double *tabx, double *taby, char nazwa[]){ //funkcja generujaca kod html dla wykresu Google Chart
- FILE *fp;
- int i;
- printf("Rysuj %s\n",nazwa);
- fp = fopen(nazwa,"w");
- fprintf(fp,"<html>\n");
- fprintf(fp,"<head>\n");
- fprintf(fp,"<script type=\"text/javascript\" src=\"https://www.google.com/jsapi\"></script>\n");
- fprintf(fp,"<script type=\"text/javascript\">\n");
- fprintf(fp,"google.load(\"visualization\", \"1\", {packages:[\"corechart\"]});\n");
- fprintf(fp,"google.setOnLoadCallback(drawChart);\n");
- fprintf(fp,"function drawChart() {\n");
- fprintf(fp,"var data = google.visualization.arrayToDataTable([\n");
- fprintf(fp,"['i', 'Wartosc'],\n");
- for(i=0;i<l;i++){
- fprintf(fp,"[%lf, %lf],\n",tabx[i],taby[i]); //przekazanie danych na wykres
- }
- fprintf(fp,"[%lf, %lf]\n",tabx[i-1],taby[i-1]);
- fprintf(fp,"]);\n");
- fprintf(fp,"var options = {\n");
- fprintf(fp,"title: 'Wybrany sygnal'\n");
- fprintf(fp,"};\n");
- fprintf(fp,"var chart = new google.visualization.LineChart(document.getElementById('chart_div'));\n");
- fprintf(fp,"chart.draw(data, options);\n");
- fprintf(fp,"}\n");
- fprintf(fp,"</script>\n");
- fprintf(fp,"</head>\n");
- fprintf(fp,"<body>\n");
- fprintf(fp,"<div id=\"chart_div\" style=\"width: 900px; height: 500px;\"></div>\n");
- fprintf(fp,"</body>\n");
- fprintf(fp,"</html>\n");
- fclose(fp);
- system(nazwa); //uruchomienie pliku html
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement