1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
| /****************************************************
* laba2.c
* 1. Вычислить значения по формулам
* 2. Получить новое число путём перестановки
* в полученном значении 1 и 2 цифры дробной части
****************************************************/
#include <stdio.h>
#include <math.h>
double f_a(double);
double f_w(double, double);
double f_V(double, double, double);
double f_newV(double);
int main()
{
double a, b, p, w, V, newV;
a = b = p = w = V = newV = 0;
printf("--------------start------------------\n\n");
printf("Enter b and p: ");
scanf("%lf %lf", &b, &p);
a = f_a(b);
w = f_w(a, b);
V = f_V(a, p, w);
newV = f_newV(V);
printf( " b = %.0lf\n p = %.0lf\n", b, p);
printf( " a = %.12lf\n w = %.12lf\n", a, w);
printf( " V = %.12lf\nnewV = %.12lf\n", V, newV);
printf("\n--------------finish------------------\n");
return 0;
}
double f_a(double b)
{
return cos(b) + 5.1 * pow(10, -3);
}
double f_w(double a, double b)
{
return (pow(a, 5) + sin(a*b)) / (sqrt(a*b) + tan(b));
}
double f_V(double a, double p, double w)
{
return exp(a*w) + p;
}
double f_newV(double V)
{
// получаем первую и вторую цифры дробной части в виде целого
int tmp = (V - (int)V) * 100;
double n1 = tmp / 10; // первая цифра дробной части
double n2 = tmp % 10; // вторая цифра дробное части
return V - n1/10 - n2/100 + n1/100 + n2/10;
} |