Листинг
программы на С++ (3)
#include
“stdafx.h”
#include
<math.h>
#include
<iostream>
#include
<conio.h>
using
namespace
std;
double
fU(double
x,
double
y)
{
double
a,
U;
a
= x
- y;
if
(a
<= -1) U
= y
* exp(x);
else
{
if
(a
< 1) U
= log(pow(x,4)
+ 1);
else
U
= pow(x,2)
– y;
}
return
U;
}
void
main()
{
double
x,
xn,
xk,
hx,
y,
yn,
yk,
hy,
a,
U,
mp,
mpx,
mpy;
int
k;
k
= 0;
mp
= pow(10,10);
mpx
= 0;
mpy
= 0;
setlocale(LC_ALL,
“Russian”);
printf("
Введите xn,
xk,
hx:
\n");
cin
>> xn
>> xk
>> hx
;
printf("
Введите yn,
yk,
hy:
\n");
cin
>> yn
>> yk
>> hy
;
printf("\n
Исходные данные: \n
xn
= %5.1f
xk
= %5.1f
hx
= %5.1f
\т", xn,
xk,
hx);
printf("\n
yn
= %5.1f
yk
= %5.1f
hy
= %5.1f
\n",
yn,
yk,
hy);
printf("\n
Таблица результатов: \n
x
y
U
\n");
for (x = xn; x <= xk + hx / 10.0; x = x + hx)
{
for (y
= yn;
y
<= yk
+ hy
/ 10.0; y
= y
+ hy)
{
U = fU(x,y);
printf("\n %8.3f %8.3f %10.5f ", x, y, U);
if (pow((x - 3), 2) + pow(y, 2) <= 9) k = k + 1;
if (U > 0 && U < mp)
{
mp
= U;
mpx
= x;
mpy
= y;
}
}
}
printf("\n \n
Минимальное положительное значение U
= %5.4f \n Координаты, в которых оно
достигается: \n x = %5.3f \n y = %5.3f \n", mp, mpx,
mpy);
printf("\n Количество расчётных
точек, попавших в заданную область: k =
%2i \n", k);
getchar();
}