Скачиваний:
3
Добавлен:
17.11.2024
Размер:
1.32 Mб
Скачать

x = xn; do

{

y = yn; do

{

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;

}

cout << setw(12) << x << setw(12) << y << setw(12) << U << endl; y = y + hy;

}

while (y <= yk + hy/10.0); x = x + hx;

}

while (x <= xk + hx/10.0); getchar();

}

24. Результаты программы на С++ (2 do while)

25. Программа в Excel (2)

0, 0

26. Постановка задачи (3)

а) Вычислить и распечатать таблицу всех значений функции U(x,y) с координатами расчётных точек.

б) Найти минимум среди всех положительных значений функции U и координаты точек в которой он достигается.

в) Найти количество расчётных точек, попадающих в область:

( − 3)2 + 2 ≤ 9

Для вывода таблицы в С++ использовать функцию printf().

 

 

если

− ≤ −1

 

= {ln( 4 + 1)

если − 1 < − < 1

2

если

− ≥ 1

-1 ≤ x ≤ 1 с шагом hx = 0.6

и

-1 ≤ y ≤ 1 с шагом hy = 0.5

27.Блок-схема (3)

1)Вспомогательная блок-схема для пользовательской функции fU(x,y) для вычисления

U(x,y):

Вход в fU(x,y)

Описание переменных a, U

a = x - y

a ≤ -1

=

a ≤ -1

= ln( 4 + 1)

= 2

Return U

2) Основная блок-схема:

Начало

Описание переменных

x, xn, xk, hx, y, yn, yk, hy, a, U, mp, mpx, mpy, k

k = 0 mp = 1010 mpx = 0 mpy = 0

«Введите xn, xk, hx, yn, yk, hy :»

Ввод xn, xk, hx, yn, yk, hy

«Исходные данные:»

xn = xk = hx =

yn = yk = hy =

«Таблица результатов:

x y

x = xn

x ≤ xk

y = yn

 

y ≤ yk

 

U = fU(x,y)

x

y

U

( − 3)2 + 2 ≤ 9

k = k + 1

> 0

и <

mp = U

mpx = x

mpy = y

y = y + hy

x = x + hx

«МПЗ и его координаты: »

mp, mpx, mpy

«Кол-во точек, попавших в область: »

 

k

 

Конец

28. Листинг программы на С++ (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();

}

29. Результаты программы на С++ (3)

30. Программа в Mathcad (3)

31. Программа в Excel (3)

Соседние файлы в папке 3 ЛР