#include #include #include #define KONECPOLE 100 int main (int neco, char *para[]) { //-----promenne a alokace------------------------------------------------------------------------------------------------------------------------------ double *sum,*Galgo,k,fvz,fhledana,c,Df,Nvz,*yN,*yN1,P[KONECPOLE],*mp1,*mp2, prumer; int n=0, h=0, j=0; mp1 = malloc(sizeof(float)*1000000); mp2 = malloc(sizeof(float)*1000000); sum = mp1+2; Galgo = mp2; *(sum-1) = 0; *(sum-2) = 0; //tohle zajistuje ze prvni dve zpozdeny hodnoty nebudou nahodny //-------ERROR MESSAGES--------------------------------------------------------------------------------------------------------------------------------- if (para[1]==NULL || para[2]==NULL || para[3]==NULL) { printf("zadej vsechny parametry (3 - Vzorkovaci frekvence (doporucena 8000Hz) | Pocet vzorku | Hledana frekvence (Hz)\n"); return 0; } fvz = atof(para[1]); if (fvz<0) { printf ("zaporna vzorkovaci frekvence? nepripada ti to divny\n"); return 0; } Nvz = atof(para[2]); if (Nvz<0) { printf ("zaporny pocet vzorku? to mi nejak nesedi, znova a lepe\n"); return 0; } fhledana = atof(para[3]); if (fhledana<0) { printf ("zaporna frekvence nejde ty noumo\n"); return 0; } //------------pocitani------------------------------------------------------------------------------------------------------------------------------ Df = fvz/Nvz; k = round(fhledana/Df); c = cos(2 * M_PI * (k/Nvz)); //--------------cteni------------------------------------------------------------------------------------------------------------------------------ scanf("%f",sum); while(*sum!=0) { sum++; scanf("%f",sum); } //----------nachazeni sinusovky------------------------------------------------------------------------------------------------------------------- while(*sum!=0){ *Galgo = *sum + (2 * *(sum-1) * c) - *(sum-2); Galgo++; n++; if (h==5){ prumer = ( P[0] + P[1] + P[2] + P[3] + P[4] ) / 5; h++; } if (h==6) j++; else if(n==32) { yN = Galgo-2; yN1 = Galgo-3; P[h] = (*yN * *yN) + (*yN1 * *yN1) - (2 * c * *yN * *yN1); h++; n=0; } if (j==32) { P[5] = (*yN * *yN) + (*yN1 * *yN1) - (2 * c * *yN * *yN1); if (P[5]>prumer) printf("+"); else printf("-"); j=0; } } //-----------------ENDE--------------------------------------------------------------------------------------------------------------------------- free(mp1); free(mp2); printf ("\n\n"); return 0; }