ulvis.paste.net

Paste Search Dynamic
Recent pastes
double f
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <malloc.h>
  4. #include<locale.h>
  5. #include<math.h>
  6.  
  7. double f ( double x){
  8.         return (sqrt(4*x+7)- 3*cos(x));
  9. }
  10.  
  11. double Find (double A, double B, double E){
  12.  
  13.  
  14.                 double c=(A+B)/2;
  15.                 if (fabs(f(c))>E) {
  16.                         if ((f(c)*f(A)<0) && (f(B)*f(c)<0)) return (B+1);
  17.  
  18.                         if (f(c)*f(A)<0)
  19.                         Find (A, c, E);
  20.  
  21.  
  22.                         if (f(B)*f(c)<0)
  23.                                 Find (c, B, E);
  24.  
  25.         }
  26.         else {
  27.                 printf("\nКорень в точке %lf, значение %lf", c, f(c));
  28.                 return c;}
  29.  
  30. }
  31.  
  32.  
  33.  
  34.  
  35.  
  36. int main()
  37. {
  38.     setlocale(LC_ALL, "Rus");
  39.     printf ("\n\n Задача алгебраического интерполирования \n Вариант 4 \n\n");
  40.  
  41.     double A, B, E, h;
  42.  
  43.     printf ("Введите  А и В - концы отрезка: ");
  44.     scanf (" %lf %lf", &A, &B);
  45.  
  46.     printf ("\n\nВведите значение E и шага h:");
  47.     scanf ("%lf %lf", &E, &h);
  48.  
  49.  
  50.  
  51.  
  52.     int i=0, r=0;
  53.     double c;
  54.  
  55.  
  56.     c=Find(A, B, E);
  57.  
  58.     if (c==(B+1)) r=1;
  59.  
  60.     while (r==1){
  61.         r=0;
  62.  
  63.         c=Find(A, (A+B)/2, E);
  64.         if (c==(B+1)) r=1;
  65.  
  66.  
  67.  
  68.         c=Find((A+B)/2, B, E);
  69.         if (c==(B+1)) r=2;
  70.  
  71.  
  72.         if (r==1)
  73.                 B=(A+B)/2;
  74.  
  75.         if (r==2){
  76.                 r=1;
  77.                 A=(A+B)/2;
  78.         }
  79.  
  80.     }
  81.  
  82.  
  83.  
  84.  
  85. /*printf ("\n\n Введите 0, если хотите ввести новые значения \n Введите 1, если хотите закрыть программу \n");
  86.  
  87. scanf ("%d", &r);
  88. if (r==0) main();
  89.  
  90. else */
  91.     return 0;
  92. }
  93.  
  94.  
Parsed in 0.012 seconds