Лаба 2 / Лаба 2
.docxЗадание: Для функции из лабораторной работы № 1 составить программу построения таблицы значений функции, состоящую из n строк при изменении аргумента от A до B.
В каждой строке таблицы выводить значение аргумента x и соответствующее ему значение функции y в форматированном виде с 4 знаками после запятой. В конце таблицы вывести отдельной строкой среднее арифметическое всех значений функции.
Кроме того, программа должна определить, сколько точек с координатами (x, y) из полученной таблицы попадает внутрь области, ограниченной фигурой, соответствующей индивидуальному заданию.
Ход работы
Вариант № 8
Код А
#include <iomanip>
#include <iostream>
#include <math.h>
#define A -3.0
#define B 3.0
using namespace std;
double F(double x)
{
return x * exp(x) + 2 * sin(x) - sqrt(abs(pow(x, 3) - pow(x, 2)));
}
int main()
{
double x, y, h;
int count, n;
count = 0;
cout << "n = "; /* количество строк в таблице */
cin >> n;
h = (B - A) / (n - 1);
for (x = A; x <= B; x += h)
{
y = F(x);
cout << fixed << setprecision(4) << x << "\t " << fixed << setprecision(4) << y << endl;
if (x >= -9 && x <= 5 && y >= -10 && y <= 10) //A8. (-9, -10), (-9, 3), (5, 3), (5, -10)
count++;
}
cout << "count = " << count;
return 0;
}
Код B
#include <iomanip>
#include <iostream>
#include <math.h>
#define A -3.0
#define B 3.0
using namespace std;
double F(double x)
{
return x * exp(x) + 2 * sin(x) - sqrt(abs(pow(x, 3) - pow(x, 2)));
}
int main()
{
double x, y, h;
int count, n;
count = 0;
cout << "n = "; /* количество строк в таблице */
cin >> n;
h = (B - A) / (n - 1);
for (x = A; x <= B; x += h)
{
y = F(x);
cout << fixed << setprecision(4) << x << "\t " << fixed << setprecision(4) << y << endl;
if ((x >= 0 && x <= 1 && y >= 0 && y <= 1) && (x >= 0 && x <= 1 && y >= -1 && y <= -0.6)) //В8. (1,0), (1,1), (0,1), (0,0) & (0, -1), (0.5, -0.87), (0.8, -0.6)
count++;
}
cout << "count = " << count;
return 0;
}
Код C
#include <iomanip>
#include <iostream>
#include <math.h>
#define A -3.0
#define B 3.0
using namespace std;
double F(double x)
{
return x * exp(x) + 2 * sin(x) - sqrt(abs(pow(x, 3) - pow(x, 2)));
}
int main()
{
double x, y, h;
int count, n;
count = 0;
cout << "n = "; /* количество строк в таблице */
cin >> n;
h = (B - A) / (n - 1);
for (x = A; x <= B; x += h)
{
y = F(x);
cout << fixed << setprecision(4) << x << "\t " << fixed << setprecision(4) << y << endl;
if ((x >= 0 && x <= 1 && y >= 0 && y <= 1) && (x >= 0 && x <= 1 && y >= -1 && y <= -0.6)) //A8. (-9, -10), (-9, 3), (5, 3), (5, -10).
count++;
}
cout << "count = " << count;
return 0;
}
/*x1 = rand() % 10; // I - четверть
y1 = rand() % 10;
x2 = rand() % 10; //II - четверть
y2 = rand() % 10 * -1;
x3 = rand() % 10 * -1; //III - четверть
y3 = rand() % 10 * -1;
x4 = rand() % 10 * -1; //IV - четверть
y4 = rand() % 10;*/
Вывод: в ходе лабораторной работы составили программу построения таблицы значений функции, состоящую из n строк при изменении аргумента от A до B.