/* gcc -lm je slinkovani s math.h */ #include #include #include #include #define MAXZNAK 16 #define MAXPOMBUF 20 int debug = 0; double dekodujcislo( char *jakou); int main (int pocarg, char *argum[] ) { int i,j; unsigned char pombuf[MAXPOMBUF+1]; float deltaT, fsinus,ampli,delka; double fvzork; int pocetvzorku; float aktucas = 0.0; float vzorek; switch (pocarg) { case 1: { printf("Musi nasledovat ctyri cisla float \n"); printf(" vzorkovaci kmitocet Hz\n" ); printf(" kmitocet sinusovky Hz\n" ); printf(" amplituda sinusivky (treba V, ale bleje to jenom cisla, tohle je tedy max.)\n" ); printf(" delka souboru v sec - tedy jak dlouho ma trvat ten signal v sec\n" ); printf("a muze to mit opsnu -d - debug pred cisly\n\n" ); break; } case 6: { strcpy(pombuf,argum[1]); if( (pombuf[0] == '-' ) && ( pombuf[1] == 'd' ) ) { printf("mameopsnu\n"); debug = 1; } else { printf("Problem s opsnou a poctem cisel\n"); break; } } case 5: { strcpy(pombuf," "); strncat(pombuf,argum[1+debug],MAXPOMBUF-4); if(debug) printf("cislo je --%s--\n",pombuf); fvzork = dekodujcislo(pombuf); if(debug) printf("vzorkovaci f %20.10f \n" , fvzork); strcpy(pombuf," "); strncat(pombuf,argum[2+debug],MAXPOMBUF-4); if(debug) printf("cislo je --%s--\n",pombuf); fsinus = dekodujcislo(pombuf); if(debug) printf("kmitocet sinusovky je %20.10f \n" , fsinus); strcpy(pombuf," "); strncat(pombuf,argum[3+debug],MAXPOMBUF-4); if(debug) printf("cislo je --%s--\n",pombuf); ampli = dekodujcislo(pombuf); if(debug) printf("amplituda je %20.10f \n" , ampli); strcpy(pombuf," "); strncat(pombuf,argum[4+debug],MAXPOMBUF-4); if(debug) printf("cislo je --%s--\n",pombuf); delka = dekodujcislo(pombuf); if(debug) printf("delka v sec je %20.10f \n" , delka); break; } default: { printf("Chybne zadano - nespravny pocet parametru \n"); printf("Koncim. Zavolej si to bez param. tam je help\n"); return 0; break; } } deltaT = 1 / fvzork; pocetvzorku = (int) ( delka / deltaT ); if(debug) printf("Pocet vzorku je %d \n",pocetvzorku); aktucas = 0.0; for (i=0;i= '0' && buf[i]<='9') break; buf[i] = ' '; /* znak, ktery neni cislice, prepisu mezerou !!!! ne, tohle je kravina !!! to ale take znamena, ze nezadas zapornou teplotu ! to proste skonci u prvni cislice */ } if(i == MAXPOMBUF ) { printf("V retezci neni zadna cislice ! \n"); return 0; } predt = 1; j=0; for(i=0;i<=MAXPOMBUF;i++) { if(predt) { if(buf[i] == '.' ) { predt = 0; predteckou[i] = 0; continue; } predteckou[i] = buf[i]; } else { if( !buf[i] ) { zateckou[j] = 0; break; } zateckou[j] = buf[i]; j++; } } if(debug) printf("predteckou je --%s--\n",predteckou ); if(debug) printf("zateckou je --%s--\n",zateckou ); if(debug) printf("j je %d \n",j ); mocnina = 1.0; for(i=0;i