#include #include #include #include int main(int par,char *pole[]){ int i; double delka,kmitocet,deltaT,t,vysvyp,U,fvz,Usum,sum,vyssum; if(par!=6){ //kontrola poctu parametru printf("byl zadan spatny pocet parametru\n"); return 1; } U=atof(pole[2]); kmitocet=atof(pole[3]); delka=atof(pole[4]); fvz=atof(pole[1]); Usum=atof(pole[5]); //printf("fzv: %lf\n",fvz); //printf("U: %lf\n",U); //printf("f: %lf\n",kmitocet); //printf("T: %lf\n",delka); //printf("Usum: %lf\n",Usum); if( kmitocet<=0 || delka<=0 || fvz<=0 ){ //kontroluju aby cas a kmitocet nebyly 0 a zaporne printf("byl zadan kmitocet nebo cas roven nebo mensi nez 0\n"); return 1; } if( U==0 && Usum==0 ){ //kontroluju aby amplituda nebyla nula printf("byly zadany nulove amplitudy\n"); return 1; } //printf("%d ; %lf ; %lf\n",U,kmitocet,delka); delka=(delka/1000); //z ms na s //printf("%lf\n",delka); deltaT = 1/fvz; //vzorkovaci perioda srandom(time(NULL)); for(t=0;t<=delka;t=t+deltaT){ vysvyp=U*sin(2*M_PI*kmitocet*t); //pocitam normalne pres sinus sum=random(); //rnd interval nula az (2^31)-1 //printf("sum rnd: %lf\n",sum); sum=sum/2147483647; //vydelim (2^31)-1 takze dostanu interval 0 az 1 //printf("sum01: %lf\n",sum); sum=(sum*2)-1; //udelam interval -1 az 1 //printf("sum-11: %lf\n",sum); sum=Usum*sum; //printf("sum*Usum: %lf\n",sum); vyssum=vysvyp+sum; printf("%5.9lf\n",vyssum); } }