Skip to content

Instantly share code, notes, and snippets.

@mephir
Last active October 21, 2018 21:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mephir/644f9361c3ee6ff004d44b07499979e4 to your computer and use it in GitHub Desktop.
Save mephir/644f9361c3ee6ff004d44b07499979e4 to your computer and use it in GitHub Desktop.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
void wczytaj_wspolczynniki(int *tab);
void wczytaj_zakres_dziedziny(int *D1, int *D2);
void wczytaj_liczbe_wynikow(int *N);
void przebieg_funkcji(int *wspolczynniki, int D1, int D2, float *wyniki, int N);
int main () {
int tab[4];
float *wyniki;
wczytaj_wspolczynniki(tab);
int D1, D2;
wczytaj_zakres_dziedziny(&D1, &D2);
int N;
wczytaj_liczbe_wynikow(&N);
wyniki = (float*)calloc(N, sizeof(float));
przebieg_funkcji(tab, D1, D2, wyniki, N);
free(wyniki);
return 0;
}
void przebieg_funkcji(int *wspolczynniki, int D1, int D2, float *wyniki, int N) {
int zakres = D2 - D1;
float dx = (float)zakres/N;
int i;
float x;
for (i = 0; i < N; i++) {
// A*x + B*sin(C*x) + D
x = D1 + (i*dx);
wyniki[i] = (wspolczynniki[0]*x) + (wspolczynniki[1]*sin(wspolczynniki[2]*x)) + wspolczynniki[3];
}
for(i = 0; i < N; i++) {
x = D1 + (i*dx);
printf("Wynik %d dla %.8f: %.8f\n", i+1, x, wyniki[i]);
}
}
void wczytaj_liczbe_wynikow(int *N) {
printf("Podaj liczbe spodziewanych wynikow:");
scanf("%d", N);
}
void wczytaj_wspolczynniki(int *tab) {
int i;
for (i = 0; i < 4; i++) {
printf("Podaj wspolczynnik %d: ", i + 1);
scanf("%d", &tab[i]);
}
}
void wczytaj_zakres_dziedziny(int *D1, int *D2) {
printf("Podaj poczatek dziedziny: ");
scanf("%d", D1);
printf("Podaj koniec dziedziny: ");
scanf("%d", D2);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment