Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <stdio.h>
- #include <math.h>
- #include <locale.h>
- #include <time.h>
- #define N 4
- #define M 2
- #define L 122
- #define _CRT_SECURE_NO_WARNINGS
- void opis_programu();
- void wpis_wsp(int *);
- void wpis_dziedzina(int *);
- void przebieg(int, int ,int, int, int, int, int *, float *, float *);
- void szum(float *, float *);
- void zapis(int *, float *, float *, float *);
- int main()
- {
- int wsp[N];
- int dziedzina[M];
- int nr_operacji[L];
- float argument[L];
- float wynik[L];
- float wynik_szum[L];
- srand(time(NULL));
- setlocale(LC_ALL, "polish_poland");
- opis_programu();
- wpis_wsp(wsp);
- wpis_dziedzina(dziedzina);
- przebieg(wsp[0],wsp[1],wsp[2],wsp[3],dziedzina[0],dziedzina[1], nr_operacji, argument, wynik);
- szum(wynik, wynik_szum);
- zapis(nr_operacji,argument,wynik,wynik_szum);
- system("PAUSE");
- return 0;
- }
- void opis_programu()
- {
- printf("Program zajmuje sie funkcja:\n\n f(x)=A|cos(Bx+C)|+D \n \n");
- printf("Wpisz kolejno wspolczynniki:\n\n A: amplituda( jej polowa) |cos()| \n");
- printf(" B: czestosc cosinusa \n C: przesuniecie fazowe \n D: przesuniecie updown\n");
- }
- void wpis_wsp(int *ptr)
- {
- int A,B,C,D;
- scanf("%d %d %d %d", &A, &B, &C, &D);
- *ptr=A;
- *(ptr+1)=B;
- *(ptr+2)=C;
- *(ptr+3)=D;
- }
- void wpis_dziedzina(int *ptr)
- {
- int poczatek, koniec;
- printf("\n Wpisz dziedzine: 'od', potem 'do'\n");
- scanf("%d %d", &poczatek, &koniec);
- *ptr=poczatek;
- *(ptr+1)=koniec;
- }
- void przebieg(int A, int B, int C, int D, int xp, int xk, int *ptr_nr_operacji, float *ptr_argument, float *ptr_wynik)
- {
- float i;
- int j;
- for(i=xp,j=0; i<xk && j<L; i=xp+j*((fabs((xk-xp)))/L), j++)
- {
- *(ptr_nr_operacji+j)=j+1;
- *(ptr_argument+j)=i;
- *(ptr_wynik+j)=A*fabs(cos((B*i)+C))+D;
- }
- }
- void szum( float *tab, float *tab_szum)
- {
- int ile;
- int i;
- ile=(rand()%(L/2))+3;
- for(i=0;i<L;i++)
- {
- *(tab_szum+i)=tab[i];
- }
- for(i=0;i<ile;i++)
- {
- *(tab_szum+rand()%L)=rand()%101;
- }
- }
- void zapis(int *ptr_nr_operacji, float *ptr_argument, float *ptr_wynik, float *ptr_wynik_szum)
- {
- int i;
- FILE *plik;
- plik=fopen("wynik.csv", "w");
- for(i=0;i<L;i++)
- {
- fprintf(plik, "%d; %f; %f; %f; \n", ptr_nr_operacji[i], ptr_argument[i], ptr_wynik[i], ptr_wynik_szum[i]);
- }
- fclose(plik);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement