Advertisement
Underhing

Untitled

Dec 25th, 2018
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.52 KB | None | 0 0
  1. /*
  2. Программа для решения
  3. задания № 15 ЛАБА 7
  4. */
  5.  
  6. #include <math.h> //для pow и cos
  7. #include <stdio.h> // для printf
  8.  
  9.  
  10.  
  11.  
  12. float summ(float x, int n)
  13. {
  14. float S=0.0;
  15. int i;
  16. for (i=1; i<=n; i++)
  17. {
  18.  
  19. S=S+((x+cos(i*x))/(float)pow(2,i));
  20.  
  21. }
  22. return S;
  23. }
  24.  
  25. double func_table(double a, double b, double c, double dx, double x_n, double x_k)
  26. {
  27. double f;
  28. double x;
  29. if ((x_n<0) && (b!=0))
  30. {
  31.  
  32. printf("(1) ТАБЛИЦА ЗНАЧЕНИЙ ДЛЯ ФУНКЦИИ f= -a*x*x*x-b\n");
  33. for (double x = x_n; x <= x_k; x += dx)
  34. {
  35. f= -a*x*x*x - b;
  36. printf("F(%f)= %f\n",x,f);
  37. }
  38.  
  39. } else
  40.  
  41. {
  42. if ((x_n>0) && (b==0))
  43. {
  44.  
  45.  
  46. printf("(2) ТАБЛИЦА ЗНАЧЕНИЙ ДЛЯ ФУНКЦИИ f= ((x-a)/(x-c))\n");
  47. for (double x = x_n; x <= x_k; x += dx)
  48. {
  49. if ((x-c)==0)
  50. {
  51. continue;
  52. }
  53. f= ((x-a)/(x-c));
  54. printf("F(%f)= %f\n",x,f);
  55. }
  56.  
  57. }
  58.  
  59. else
  60. {
  61.  
  62. if ((c==0) || (x=0))
  63. {
  64. printf("\033[1;31m[Ошибка]\033[0m Знаменатель равен 0\n");
  65. }
  66. else
  67. {
  68.  
  69. printf("(3) ТАБЛИЦА ЗНАЧЕНИЙ ДЛЯ ФУНКЦИИ f= f= ((x/c) + (c/x))\n");
  70. for (double x = x_n; x <= x_k; x += dx)
  71. {
  72.  
  73. if ((c==0) || (x==0))
  74. {
  75. continue;
  76. }
  77. f= ((x/c) + (c/x));
  78. printf("F(%f)= %f\n",x,f);
  79. }
  80. }
  81. }
  82. }
  83.  
  84.  
  85.  
  86. }
  87.  
  88. int main()
  89. {
  90.  
  91. int w;
  92. float x;
  93. int n;
  94. double a, b, c, x_n, x_k, dx;
  95.  
  96. printf("~~~~[Программа для вычислений]~~~~\n");
  97. do
  98. {
  99. printf("\n\033[1;33mЧто Вы хотите сделать?\033[0m [(1) таблица функции/(2) сумма ряда] >");
  100. scanf("%d",&w);
  101. if((w!=1)&&(w!=2))
  102. {
  103. printf("\n\033[1;31m[Ошибка]\033[0m Такого номера нет. \033[1;31mВведите 1 либо 2\033[0m\n");
  104. }
  105.  
  106. } while((w!=1)&&(w!=2));
  107.  
  108.  
  109.  
  110. if (w == 2)
  111. {
  112.  
  113. printf("~~~~[#1 Программа для вычисления суммы ряда]~~~~\n\n");
  114.  
  115. do
  116. {
  117. printf("Введите число членов последовательности (N): ");
  118. scanf("%d",&n);
  119. if (n<=0)
  120. {
  121. printf("\033[1;31m[Ошибка]\033[0m Введите число N большее нуля->\n");
  122. }
  123. } while (n<=0);
  124.  
  125. printf("Введите число (X): ");
  126. scanf("%f",&x);
  127. printf("\n\033[1;33m[Ответ]\033[0m Сумма ряда равна = %f\n", summ(x,n));
  128. }
  129. else if(w == 1)
  130.  
  131. {
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138. printf("~~~~[#2 Программа для вычисления и вывода таблицы функции]~~~~\n\n");
  139.  
  140. printf("Пожалуйста, введите значение числа A: ");
  141. scanf("%lf",&a);
  142. printf("Пожалуйста, введите значение числа B: ");
  143. scanf("%lf",&b);
  144. printf("Пожалуйста, введите значение числа C: ");
  145. scanf("%lf",&c);
  146.  
  147. do{
  148. printf("Пожалуйста, введите значение Xнач: ");
  149. scanf("%lf",&x_n);
  150. printf("Пожалуйста, введите значение Xкон: ");
  151. scanf("%lf",&x_k);
  152. if(x_n >= x_k){
  153.  
  154. printf("\033[1;31m[Ошибка]\033[0m Введите Xнач меньше Xкон ->\n");
  155.  
  156. }
  157. } while(x_n >= x_k);
  158.  
  159.  
  160.  
  161. do{
  162. printf("Введите шаг dX: ");
  163. scanf("%lf",&dx);
  164.  
  165. if(dx == 0){
  166.  
  167. printf("\033[1;31m[Ошибка]\033[0m Введите шаг dX больше нуля ->\n");
  168.  
  169. } else if(dx>(x_k - x_n)){
  170.  
  171. printf("\033[1;31m[Ошибка]\033[0m Введите шаг dX не превышающий размер интервала Xнач...Xкон ->\n");
  172. }
  173.  
  174. } while((x_n >= x_k)||(dx>(x_k - x_n)));
  175.  
  176. func_table(a,b,c,dx,x_n,x_k);
  177.  
  178. }
  179. return 0;
  180. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement