Advertisement
SonicDesu

Zadanie 4b(a) - Przed Punktowanymi

Mar 28th, 2018
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.18 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3. #include <math.h>
  4. #include <stdlib.h>
  5.  
  6. /*A. Zdefiniuj funkcję f(x) = e sin(x) + ln(x). Dziedzina funkcji: x > 0
  7. Dla sprawdzenia: f(1) == 2.3198, f(2) == 3.1757, f(3) == 2.2502, f(4) == 1.8555
  8. Prototyp funkcji: double f(double x, int * kod); Za pomocą parametru
  9. int * kod funkcja ma informować, czy obliczona wartość funkcji
  10. była większa od 3.1 (*kod == 1), mniejsza lub równa 3.1 (*kod == -1), x nie
  11. należał do dziedziny (*kod == 0).
  12. Napisz program wielokrotnie wczytujący wartość rzeczywistą x, wyznaczający f(x)
  13. i prezentujący wyniki obliczeń (x = ..., f(x) = ...), aż do momentu gdy
  14. obliczona wartość funkcji przekroczy 3.1, lub gdy podany argument nie należy do
  15. dziedziny funkcji.
  16. */
  17.  
  18. double f(double x, int *kod);
  19. void main() {
  20.     int ask;
  21.     double x;
  22.     do {
  23.         printf("Prosze podac wartosc x: ");
  24.         scanf("%lf", &x);
  25.         f(x, &ask);
  26.         if (ask == -1) break;
  27.         printf("Wartosc funkcji to: %lf\n\n", f(x, &ask));
  28.     } while (1);
  29. }
  30.  
  31. double f(double x, int *kod) {
  32.     double wynik;
  33.     if (x <= 0) *kod = -1;
  34.     else if (x > 0) {
  35.         wynik = exp(sin(x)) + log(x);
  36.         if (wynik > 3.1) *kod = -1;
  37.         return wynik;
  38.     }
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement