Лаба 1 / Лаба 1
.docxЗадание: для функции составить программу построения таблицы значений функции при изменении аргумента от A = −5 до B = 5 с шагом H = 0,1. Значения A, B и H объявить, как константы в директивах #define. В каждой строке выводить значение аргумента и соответствующее ему значение функции в форматированном виде с 4 знаками после запятой. Кроме того, в конце таблицы нужно напечатать отдельной строкой значение, которое требуется вычислить в соответствии с индивидуальным вариантом.
Ход работы
Вариант №8
Листинг программы ур-е «А». Количество всех неотрицательных значений функции:
#include <iomanip>
#include <iostream>
#include <math.h>
#define A -5.0
#define B 5.0
#define H 0.1
using namespace std;
/* функция F() вычисляет значение функции y = sin(x)+x2 в точке x */
double F(double x)
{
return x * exp(x) + 2 * sin(x) - sqrt(abs(pow(x, 3) - pow(x, 2)));
//exp - e, sqrt - корень, abs - модуль, pow – степень }
int main()
{
setlocale(LC_ALL, "Russian");
double x, y, sum;
int count;
sum = count = 0;
for (x = A; x <= B; x += H)
{
y = F(x);
cout << fixed << setprecision(4) << x << "\t " << fixed << setprecision(4) << y << endl; //выводит в два столбца
// setprecision (int count) - Задаёт количество знаков после запятой, где count — количество знаков после десятичной точки
//Задание A8. Количество всех неотрицательных значений функции
if (x> 0, y>0)
{count++;}
}
cout << endl;
cout <<"Количество всех неотрицательных значений функции: " << count<<endl;
return 0;
}
Листинг программы ур-е «В». Сумма таких значений функции, которые имеют целую часть, кратную Z.
#include <iomanip>
#include <iostream>
#include <math.h>
#define A -5.0
#define B 5.0
#define H 0.1
using namespace std;
/* функция F() вычисляет значение функции y = sin(x)+x2 в точке x */
double F(double x)
{
return x * exp(x) + 2 * sin(x) - sqrt(abs(pow(x, 3) - pow(x, 2)));
//exp - e, sqrt - корень, abs - модуль, pow - степень
}
int main()
{
setlocale(LC_ALL, "Russian");
double x, y, sum;
double avg = 0;
int z;
unsigned countValueEven = 0; // счетчик значений функции с четной целой частью
unsigned count; // счетчик цикла
cout << "ввод числа Z: ";
cin >> z;
sum = count = 0;
for (x = A; x <= B; x += H)
{
y = F(x);
cout << fixed << setprecision(4) << x << "\t " << fixed << setprecision(4) << y << endl; //выводит в два столбца
// setprecision (int count) - Задаёт количество знаков после запятой, где count — количество знаков после десятичной точки
//Задание A8. Количество всех неотрицательных значений функции
if (x> 0, y>0)
{
count++;
}
if (!((int)y % z)) //Задание B2. Сумма таких значений функции, которые имеют целую часть, кратную z.
{ // если целая часть значения функции четная
avg += y; // добавляем его в сумму значений с четной целой частью
++countValueEven; // увеличиваем счетчик значений функции с четной целой частью
}
}
cout << endl;
cout <<"Количество всех неотрицательных значений функции: " << count<<endl;
if (countValueEven)
{ // если количество значений функции с четной целой частью больше нуля
avg /= countValueEven; // завершаем вычисление среднего арифметического
// выводим результаты
cout <<"Среднее арифметическое таких значений функций, которые имеют четную целую часть равно: " << fixed << setprecision(6) << avg<<endl;
cout << "Количество таких значений функции равно: " << countValueEven << endl;
}
else { // а если все же количество таких значений функции равно 0, то сообщаем об этом
puts("Среднее арифметическое таких значений функций, которые имеют четную целую часть равно 0");
puts("Так как количество таких значений функции равно 0");
}
return 0;
}
Вывод: в ходе лабораторной работы составили программу построения таблицы значений функции при изменении аргумента.
Гордиенко
Л.В.