
экзамен / gayd_dlya_nubov
.pdf
Далее идёт часть с if’ами, где мы находим, к какому промежутку принадлежит x. Также отобразим её кодом:
double vich_d(double x)
{
double temp_d; if (x > 2)
{
//часть 1
}
else
if (x <= 0)
{
//часть 2
}
else
{
//часть 3
}
}
Почему я не сделал проверку условий при 3-ей части?
Если у нас x НЕ строго больше двух, что проверяется функцией if (x > 2), и
НЕ меньше или равно нулю, то x обязательно принадлежит отрезку 0 < x ≤ 2,
что освобождает нас от лишней проверки. Теперь допилим функцию,
добавив эти минимумы и максимумы, а также вывод значения.
double vich_d(double x)
{
double temp_d; if (x > 2)
{
temp_d = std::min(pow(ln(x), 2), std::min(cos(2 * (pow(x, 3))), sin(x)));
}

else
if (x <= 0)
{
temp_d = std::max(std::max(pow(sin(x), 3), sqrt(abs(x))), std::max(tan(x), pow(2.72, (-2*x)));
}
else
{
temp_d = sin(x - 1):
}
return temp_d;
}
Получилась примерно такая ебанина. Боже упаси тут запутаться в скобочках(а это вполне возможно). По сему, рекомендую перед записью ответа 10 раз перепроверить черновик, также стоит составить для себя блок-
схему чисто по этим максимумам/минимумам, ибо в подобных случаях эти ебучие схемы реально полезны.
Ну функция есть, дело за малым, написать мейн с вызовом этой функции, тут объяснять уже вряд ли что то нужно, просто поглядите на код:
int main()
{
setlocale(LC_ALL, "rus"); double x;
std::cout << “введите значение x: ”; std::cin >> x;
std::cout << “значение d = ” << vich_d(x); return 0;
}
Более ничего от нас тут не требуется, и так уже с функцией заеблись, задание выполнено.

Разберём ещё одно подобное задание, оно почти не отличается от предыдущего (ещё бы блять оно отличалось).
Но тут разница в типе возвращаемого значения функции, оно должно быть void. Это слегка лишний гемор, но отличие на практике void от double мы уже разбирали в заданиях выше, приступаем к блок-схеме.
Снова расчехляем прогрессивную 5D визуализацию, и дробим алгоритм на ветви исходя из условий.

Тут блок-схема слегка отличается от предыдущей, т.к. тут нет ретурна, а
временная переменная у нас прописана в выходных параметрах, по этому схема выглядит проще.
Начнём ебаться с кодом функции, сразу распишем деление на ветви с помощью вложенных разветвителей.
void vich_x(double x, double& result)
{
if (x > 5)
{
//ветвь 1
}
else
if (x < 0)
{
//ветвь 2
}
else
{
//ветвь 3
}
}

Напомню, что раз у нас result является выходным параметром, то после объявления его типа необходимо написать пердюльку под символом &.
Осталось лишь прописать каждую ветвь.
void vich_x(double x, double& result)
{
if (x > 5)
{
result = std::min(2*sin(x), pow(cos(x), 3));
}
else
if (x < 0)
{
result = pow(2.72, -3*x) ;
}
else
{
result = std::max(std::max(5 * pow(2.72, x), tg(x)), std::max(pow(x, 3), abs(x)));
}
}
Тут, конечно, пиздец менее глобальный, но всё равно, велик шанс проебаться. Также из рекомендаций могу дать то, что стоит сначала прописывать внешние функции, с соблюдением всех скобок, затем внутрь вписывать внутренние. Но всё равно не забывайте перепроверять всё по 10
раз. Один хуй обидно будет на пересдачу пойти из-за лишней скобочки, не стоит спешить, однокуры без вас всё пиво не выпьют.
Далее дело за малым, без лишних слов прописываем мейн.
int main()
{
setlocale(LC_ALL, "rus"); double x, result_x;
std::cout << “Введите значение x: ”; std::cin >> x;

vich_x(x, result_x);
std::cout << “Значение выражения при введённом x = ” << result_x;
}
По идее всё, если вы выполнили все эти задачи без проёбов (что самое главное), то на пересдачу вас уже не отправят, можно дышать спокойно.
Донаты принимаю через:
https://www.donationalerts.com/r/presfy
На карту сбер: 4276380152017556
На карту тиньк: 5536914053979864
На eth кошелёк: 0x6bd1c95bf741f53844357487802cc61d9e750bce