МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное образовательное учреждение высшего образования
"КРЫМСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ им. В. И. ВЕРНАДСКОГО"
ФИЗИКО-ТЕХНИЧЕСКИЙ ИНСТИТУТ
Кафедра компьютерной инженерии и моделирования
Cтудента 1 курса группы ПИ-б-о-192(1)
Гусько Елизавета Викторовна
направления подготовки 09.03.04 "Программная инженерия"
| Научный руководитель старший преподаватель кафедры компьютерной инженерии и моделирования |
(оценка) | Чабанов В.В. |
Симферополь, 2019
- Овладеть практическими навыками разработки и программирования вычислительного процесса циклической структуры;
- Сформировать навыков программирования алгоритмов разветвляющейся структуры;
- Изучить операторы ветвления. Особенности использования полной и сокращенной формы оператора if и тернарного оператора.
Напишите на языке С++ программу которая для функции f(x) на интервале x ∈ [Xнач; Xкон]:
- Выводит в консоль значения функции f(x) с шагом dx;
- Определяет максимальное и минимальное значение функции.
Значения параметров a, b, начала и конца интервала Xнач, Xкон и шага dx вводятся пользователем.
Для соответствующей функции выполните следующие действия:
- Протабулируйте функцию и запишите получившиеся реультаты в отчёт в виде таблицы. При этом a = 0.7, b = 1.2, начала и конца интервала Xнач = 0.5, Xкон = 1.5 и шага dx = 0.05;
- Определите минимальное и максимальное значение функции на указанном интервале.
- постройте график функции;
- добавьте на график точки, которые у вас получились в процессе табуляции;
- добавьте на график точки минимума и максимума с метками значений;
Дана функция
При ручном вводе данных код данной функции будет выглядеть так:
#include <iostream>
#include <math.h>
#include <stdio.h>
using namespace std;
int main() {
double x1, x2, dx, a, b, z;
cout << "enter the data: xmin = ";
cin >> x1;
cout << "\nxmax = ";
cin >> x2;
cout << "\ndx = ";
cin >> dx;
cout << "\na = ";
cin >> a;
cout << "\nb = ";
cin >> b;
for (double x1 = x1; x1 <= x2; x1+=dx){
if (x1 < a && abs(x1-a) < 1e-9) { z = exp(x1) / (3 + sin(x1)); }
else if (a < x1 && x1 < b) { z = log(x1) + pow(x1, 2); }
else if (x1 >= b) { z = 1 + sin(-x1); }
cout << "\nx = " << x1;
cout << "\nz = " << z; } }
Так как нам задали параметры в тз наш код будет иметь два вида:
#include <iostream>
#include <math.h>
#include <stdio.h>
using namespace std;
int main()
{
double x, a, b, z;
a = 0.7;
b = 1.2;
for (double x = 0.5; x <= 1.5; x+=0.05)
{
x = round(x * 100) / 100;
if (x <= a )
{
z = exp(x) / (3 + sin(x));
}
else if (x > a && x < b)
{
z = log(x) + pow(x, 2);
}
else if (x >= b)
{
z = 1 + sin(-x);
}
cout << "\nx = " << x;
cout << "\nz = " << z;
}
}
int main()
{
double x, a, b, z;
a = 0.7;
b = 1.2;
double eps = 1e-9;
for (double x = 0.5; x <= 1.5 + eps; x+=0.05)
{
if (x <= a || abs(a-x) < eps)
{
z = exp(x) / (3 + sin(x));
}
else if (x > a && x < b)
{
z = log(x) + pow(x, 2);
}
else if (x >= b)
{
z = 1 + sin(-x);
}
cout << "\nx = " << x;
cout << "\nz = " << z;
}
}| x | 0.5 | 0.55 | 0.6 | 0.65 | 0.7 | 0.75 | 0.8 | 0.85 | 0.9 | 0.95 | 1 | 1.05 | 1.1 | 1.15 | 1.2 | 1.25 | 1.3 | 1.35 | 1.4 | 1.45 | 1.5 | ||||||||||||||||||||||
| z | 0,473849 | 0,492026 | 0,511165 | 0,531329 | 0,552588 | 0,274818 | 0,416856 | 0,559981 | 0,704639 | 0,851207 | 1 | 1,15129 | 1,30531 | 1,46226 | 0,0679609 | 0,0510154 | 0,0364418 | 0,0242766 | 0,0145503 | 0,00728701 | 0,00250501 |
График к данному коду выглядит примерным образом: