Advertisement
Kostiggig

Untitled

Nov 8th, 2022
966
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.94 KB | None | 0 0
  1. // lab 11
  2.  
  3. #include <stdio.h>
  4. #include <math.h>
  5. #include <stdlib.h>
  6. #include <stdbool.h>
  7. #include <locale.h>
  8.  
  9. void printOnNewLine(char src[]) {
  10.     printf("\n%s", src);
  11. }
  12.  
  13. void task1() {
  14.     int n,x, power = -1;
  15.     int fact = 1;
  16.     double sum = 0;
  17.  
  18.     printOnNewLine("Введите x: ");
  19.     scanf("%d", &x);
  20.     printOnNewLine("Введите n: ");
  21.     scanf("%d", &n);
  22.  
  23.     for (int i=1; i<=n; i++)
  24.     {
  25.         sum += (double) power * x/fact;
  26.         printf("value is %.3lf", (double) power * x/fact);
  27.         power *= -1;
  28.         fact *= i;
  29.     }
  30.  
  31.     printf("sum is %lf", sum);
  32. }
  33.  
  34. int calculatePower(int src, int to) {
  35.     int result = src;
  36.     for(int i = 1; i <= to - 1; i++) {
  37.         result *= result;
  38.     }
  39.  
  40.     return result;
  41. }
  42.  
  43. void task2() {
  44.     double e;
  45.     int i = 1, x;
  46.     int powerX = 1, power = 2;
  47.     int fact = 1;
  48.     double currentValueOfF = 0, sum = 0;
  49.  
  50.     printOnNewLine("Введите e: ");
  51.     scanf("%lf", &e);
  52.     printOnNewLine("Введите x: ");
  53.     scanf("%d", &x);
  54.  
  55.     do
  56.     {
  57.         double divider = (cos(fact)) * i;
  58.         if(divider != 0) {
  59.             currentValueOfF = power / divider;
  60.             sum += currentValueOfF;
  61.         }
  62.  
  63.         fact *= i;
  64.         powerX *= x;
  65.         power = calculatePower(2, powerX);
  66.  
  67.     } while (currentValueOfF > e);
  68.    
  69.  
  70.  
  71.     printf("approximate sum is %lf", sum);
  72. }
  73. int main() {
  74.     int numberOfTask = -1;
  75.     do
  76.     {
  77.         printf("\nВведите номер задачи(1, 2 или 3, 0 - для выхода): ");
  78.         scanf("%d", &numberOfTask);
  79.  
  80.         switch(numberOfTask) {
  81.             case 1: task1(); break;
  82.             case 2: task2(); break;
  83.             default: {
  84.                 if (numberOfTask != 0) {
  85.                     printf("\nNumber of task %d doesn't exist!", numberOfTask);
  86.                 }
  87.             }
  88.         }
  89.     } while (numberOfTask != 0);
  90.    
  91.     return 0;
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement