Advertisement
Guest User

Untitled

a guest
Dec 16th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.48 KB | None | 0 0
  1. Лабораторная работа №3: Циклические конструкции
  2. Вариант 9: y = ln(x) - x + 1.8, диапазон [a, b];
  3.  
  4. Задание 1:
  5.  
  6. Условие:
  7.     Написать программу табулирования функции y = f(x), вычисляющие значение y при a <= x <= b, шаг h;
  8.     Используется цикл for;
  9.     a = 2; b = 3; h = 0.05;
  10.    
  11. Код:
  12. #include <stdio.h>
  13. #include <math.h>
  14.  
  15. double fun(double x)    // Функция поиска y = f(x)
  16. {                      
  17.     double result = log(x) - x + 1.8;
  18.     return result;
  19. }
  20.  
  21. int main()
  22. {
  23.     double a = 2;                           // Левая граница
  24.     double b = 3;                           // Правая граница
  25.     double h = 0.05;                        // Шаг табулирования
  26.    
  27.     printf("      X      |      Y      \n"
  28.            "-------------+-------------\n");
  29.     for (double i = a; i <= b; i += h)
  30.     {
  31.         double res = fun(i);                // Вызов функции для вычисления y = f(x)
  32.         printf("%12f | %12f\n", i, res);    // Вывод в табулированном виде
  33.     }
  34.     return 0;
  35. }
  36.  
  37. Задание 2:
  38.  
  39. Написать программу табулирования функции y = f(x), вычисляющие значение y при a <= x <= b, шаг табулирования h;
  40. Цикл с предусловием -> while()
  41. a, b, h вводятся с клавиатуры
  42.  
  43. Код:
  44. #include <stdio.h>
  45. #include <math.h>
  46.  
  47. double fun(double x)        // Функция поиска y = f(x)
  48. {                      
  49.     double result = log(x) - x + 1.8;
  50.     return result;
  51. }
  52.  
  53. int main()
  54. {
  55.     double a, b, h;
  56.     printf("Введите с клавиатуры значения:\na = ");
  57.     scanf("%lf", &a);               // ввод левой границы
  58.     printf("b = ");
  59.     scanf("%lf", &b);               // ввод левой границы
  60.     printf("h = ");
  61.     scanf("%lf", &h);               // ввод шага табулирования
  62.    
  63.     printf("      X      |      Y      \n"
  64.            "-------------+-------------\n");
  65.     while (a <= b)
  66.     {
  67.         double res = fun(a);                // Вызов функции для вычисления y = f(x)
  68.         printf("%12f | %12f\n", a, res);    // Вывод в табулированном виде
  69.         a += h;
  70.     }
  71.     return 0;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement