1

Тема: Підкреслює котангенс і експоненту

#include "pch.h"
#include <cmath>
#include <iostream>

int main()
{
    const double PI = 3.14159265;
    float x, y;
    printf("Vvedit x =");
    scanf_s("%f", &x);
    if (x > 1 && x <= exp)
        y = pow(exp, -PI) + pow(x, -exp);
    else if (exp < x && x < pow(10, 3))
        y = pow(log(x - exp), 2);
    else if (0 <= x && x <= 1)
        y = x * x / 2;
    else if (x < 0)
        y = pow(2, x)*pow(Cotan(x*x), 3);
    else if (pow(10, 3) <= x)
        y = 0;
    printf("x=%5.2f y=%5.2f\n", x, y);
    return 0;
}

Що робити?

2

Re: Підкреслює котангенс і експоненту

Підкресліть ще щось, щоб вийшло обличчя. Чи котик.

Подякували: Arete, Eff1c, Chemist-i3

3

Re: Підкреслює котангенс і експоненту

koala написав:

Підкресліть ще щось, щоб вийшло обличчя. Чи котик.

?

4

Re: Підкреслює котангенс і експоненту

koala написав:

Підкресліть ще щось, щоб вийшло обличчя. Чи котик.

Можете сказати в чому проблема?

5

Re: Підкреслює котангенс і експоненту

grinyuk309 написав:
koala написав:

Підкресліть ще щось, щоб вийшло обличчя. Чи котик.

Можете сказати в чому проблема?

У тому, як ви питаєте.
Я припускаю, що вам дали якесь завдання, ви намагалися його виконати, написали такий код, але він вас чимось не влаштовує. Але замість того, щоб написати, яке саме завдання і чим не влаштовує вас код, ви пишете лише "підкреслює" і питаєте, що вам робити. Робити можна багато чого - піти погуляти, наприклад. Чи кинути програмування. Це філософське питання. Я взяв на себе сміливість припустити, що вам щось треба робити із підкресленнями - і погодьтеся, мій варіант не гірший за інші можливі. Вас же все в коді влаштовує, окрім того, що там щось підкреслюється, правда? Код компілюється, виконується і відповідає вашому завданню, вас лише підкреслення хвилюють і що робити із ними? Бо інакше, мабуть, ви б про це написали.

А якщо у вас щось не виходить із кодом, то пишіть:
1. Завдання, бо як ми знатимемо, що ваш код відповідає вашому завданню? Ми можемо допомогти виправити код, але вам це ніяк не допоможе, якщо він робить не те, що треба.
2. Код (його ви виклали, і навіть вирівняли та поклали в тег code, тут поки що все чудово).
3. Опис проблеми, причому бажано якомога повніший. Те, що аналізатор коду в IDE працює не зовсім правильно - то дрібниці, він узагалі глючний і на роботу особливо не впливає, хоч іноді може допомогти. Проблема, зазвичай, це коли код не компілюється чи робить не те, що вам треба. Тоді треба повністю писати повідомлення компілятора чи що ви очікуєте, а що отримуєте.
4. Не обов'язково, але можна ще додати опис того, як ви намагалися виправити проблему, і роздуми про те, як що ще можна зробити. Це допоможе нам краще зрозуміти, як ви припустилися такої помилки і дати пораду, як її уникнути в майбутньому.

І уникайте загальних фраз і питань на кшталт "що робити" та "не працює". Не працює - значить, треба увімкнути комп'ютер, а що робити - піти з дівчиною в кіно.

Подякували: Eff1c, ostap34PHP, leofun01, LoganRoss4

6

Re: Підкреслює котангенс і експоненту

#include <iostream>
#include <cstdio>
#include <string>
#include <algorithm>
#include <cmath>
using namespace std;
 
#include <cmath>
#include <iostream>

const double PI = 3.14159265;


float ctg (float x) { return 1 / tan(x);}

int main()
{


    float x, y;
    printf("Vvedit x =");
    scanf("%f", &x);
    if (x > 1 && x <= exp(1))
        y = pow(exp(1), -PI) + pow(x, -exp(1));
    else if (exp(1) < x && x < pow(10, 3))
        y = pow(log(x - exp(1)), 2);
    else if (0 <= x && x <= 1)
        y = x * x / 2;
    else if (x < 0)
        y = pow(2, x)*pow(ctg(x*x), 3);
    else if (pow(10, 3) <= x)
        y = 0;
    printf("x=%5.2f y=%5.2f\n", x, y);
    return 0;
}
Подякували: grinyuk3091

7

Re: Підкреслює котангенс і експоненту

koala написав:
grinyuk309 написав:
koala написав:

Підкресліть ще щось, щоб вийшло обличчя. Чи котик.

Можете сказати в чому проблема?

У тому, як ви питаєте.
Я припускаю, що вам дали якесь завдання, ви намагалися його виконати, написали такий код, але він вас чимось не влаштовує. Але замість того, щоб написати, яке саме завдання і чим не влаштовує вас код, ви пишете лише "підкреслює" і питаєте, що вам робити. Робити можна багато чого - піти погуляти, наприклад. Чи кинути програмування. Це філософське питання. Я взяв на себе сміливість припустити, що вам щось треба робити із підкресленнями - і погодьтеся, мій варіант не гірший за інші можливі. Вас же все в коді влаштовує, окрім того, що там щось підкреслюється, правда? Код компілюється, виконується і відповідає вашому завданню, вас лише підкреслення хвилюють і що робити із ними? Бо інакше, мабуть, ви б про це написали.

А якщо у вас щось не виходить із кодом, то пишіть:
1. Завдання, бо як ми знатимемо, що ваш код відповідає вашому завданню? Ми можемо допомогти виправити код, але вам це ніяк не допоможе, якщо він робить не те, що треба.
2. Код (його ви виклали, і навіть вирівняли та поклали в тег code, тут поки що все чудово).
3. Опис проблеми, причому бажано якомога повніший. Те, що аналізатор коду в IDE працює не зовсім правильно - то дрібниці, він узагалі глючний і на роботу особливо не впливає, хоч іноді може допомогти. Проблема, зазвичай, це коли код не компілюється чи робить не те, що вам треба. Тоді треба повністю писати повідомлення компілятора чи що ви очікуєте, а що отримуєте.
4. Не обов'язково, але можна ще додати опис того, як ви намагалися виправити проблему, і роздуми про те, як що ще можна зробити. Це допоможе нам краще зрозуміти, як ви припустилися такої помилки і дати пораду, як її уникнути в майбутньому.

І уникайте загальних фраз і питань на кшталт "що робити" та "не працює". Не працює - значить, треба увімкнути комп'ютер, а що робити - піти з дівчиною в кіно.

Вибачте, писав пізно посеред ночі і голова зовсім  не варила.Код мене влаштовує і з котаегенсом я сам розібрався, а от при компіляції вилазить помилка, підкреслює ехр, і в списку помилок пише про необхідність дужки, я не дома, тому не можу точно пригадати в якому саме рядку проблема.

8

Re: Підкреслює котангенс і експоненту

ur_naz написав:
#include <iostream> //нащо?
#include <cstdio>
#include <string> //нащо?
#include <algorithm> //нащо?
#include <cmath>
using namespace std;
 
#include <cmath> //вже було
#include <iostream> //нащо?

const double PI = 3.14159265; //у VS є в <cmath>, якщо визначити _USE_MATH_DEFINES

float ctg (float x) { return 1 / tan(x);} //бажано 1./tan(x), але і так норм

int main()
{


    float x, y;
    printf("Vvedit x =");
    scanf("%f", &x); 
    if (x > 1 && x <= exp(1)) //exp(1) обчислюється кожного разу, а можна один. А ще краще - взяти M_E з <cmath>
        y = pow(exp(1), -PI) + pow(x, -exp(1));
    else if (exp(1) < x && x < pow(10, 3)) //щось забагато умов. Їх можна розставити за порядком і перевіряти по одному разу
        y = pow(log(x - exp(1)), 2);
    else if (0 <= x && x <= 1)
        y = x * x / 2;//знову ж таки краще ділити на 2f
    else if (x < 0)
        y = pow(2, x)*pow(ctg(x*x), 3); //можна було просто замінити на tan у від'ємному степені
    else if (pow(10, 3) <= x) //а нащо 1000 обчислювати? Якщо вже так хочеться, можна експоненційну форму використати 1e3
        y = 0;
    printf("x=%5.2f y=%5.2f\n", x, y);
    return 0;
}

9

Re: Підкреслює котангенс і експоненту

моторолєр не мій, я лише розмістив об'яву

10

Re: Підкреслює котангенс і експоненту

koala написав:
ur_naz написав:
#include <iostream> //нащо?
#include <cstdio>
#include <string> //нащо?
#include <algorithm> //нащо?
#include <cmath>
using namespace std;
 
#include <cmath> //вже було
#include <iostream> //нащо?

const double PI = 3.14159265; //у VS є в <cmath>, якщо визначити _USE_MATH_DEFINES

float ctg (float x) { return 1 / tan(x);} //бажано 1./tan(x), але і так норм

int main()
{


    float x, y;
    printf("Vvedit x =");
    scanf("%f", &x); 
    if (x > 1 && x <= exp(1)) //exp(1) обчислюється кожного разу, а можна один. А ще краще - взяти M_E з <cmath>
        y = pow(exp(1), -PI) + pow(x, -exp(1));
    else if (exp(1) < x && x < pow(10, 3)) //щось забагато умов. Їх можна розставити за порядком і перевіряти по одному разу
        y = pow(log(x - exp(1)), 2);
    else if (0 <= x && x <= 1)
        y = x * x / 2;//знову ж таки краще ділити на 2f
    else if (x < 0)
        y = pow(2, x)*pow(ctg(x*x), 3); //можна було просто замінити на tan у від'ємному степені
    else if (pow(10, 3) <= x) //а нащо 1000 обчислювати? Якщо вже так хочеться, можна експоненційну форму використати 1e3
        y = 0;
    printf("x=%5.2f y=%5.2f\n", x, y);
    return 0;
}
#include "pch.h"
#include <iostream>
#include <cmath>
#define M_PI 3.14159265

int main()
{
    float x, y;
    printf("Vvedit x =");
    scanf_s("%f", &x);
    if (x > 1 && x <= M_E(1))
        y = pow(M_E(1), -M_PI) + pow(x, -M_E(1));
    else if (M_E(1) < x && x < pow(10, 3))
        y = pow(log(x - M_E(1)), 2);
    else if (0 <= x && x <= 1)
        y = x * x / 2;
    else if (x < 0)
        y = pow(2, x)*pow(1/tan(x*x), 3);
    else if (pow(10, 3) <= x)
        y = 0;
    printf("x=%5.2f y=%5.2f\n", x, y);
    return 0;
}

Ошибка    C3861    M_E: идентификатор не найден       
Чому воно не бере M_E з <cmath>??Я підключав макрос #define _USE_MATH_DEFINES, але це не допомогло.

11

Re: Підкреслює котангенс і експоненту

grinyuk309 написав:

Чому воно не бере M_E з <cmath>?

Бо ви не підключили _USE_MATH_DEFINES. І ви все ще використовуєте власний M_PI.

grinyuk309 написав:

Я підключав макрос #define _USE_MATH_DEFINES, але це не допомогло.

У коді ви його не підключали. Його ж треба підключати правильно - наприклад, якщо написати на папірці і причепити папірець до монітору, він не спрацює.
І так, ви все ще не виклали завдання.

12 Востаннє редагувалося P.Y. (17.11.2019 02:26:48)

Re: Підкреслює котангенс і експоненту

koala написав:

А якщо у вас щось не виходить із кодом, то пишіть:
1. Завдання, бо як ми знатимемо, що ваш код відповідає вашому завданню? Ми можемо допомогти виправити код, але вам це ніяк не допоможе, якщо він робить не те, що треба.

Хм. А чим поможе текст завдання, якщо йдеться виключно про причину помилки, що виникає або при компіляції (що більш імовірно), або при виконанні — в обох випадках, її наявність відображається в IDE в вигляді підкресленого чогось-там, а не в хибних результатах роботи. Коли б студент запитав «чого моя програма робить не те, що я хочу», мало б сенс вибити з нього завдання й зробити все за нього. Оскільки завдання він приховує, припустімо, що там міститься надсекретна інформація, після ознайомлення з якою йому доведеться нас всіх убити. А от повідомлення помилок компілятора стандартні й надсекретної інформації, як правило, не містять, тому їх було б непогано додати до питання.

Без ознайомлення з завданням, текстом помилки, та ледве пам'ятаючи cmath, вже бачу, що exp тут використовується як змінна чи константа, хоча, ймовірно, має викликатися як функція (константи, за конвенцією, набираються капсом, змінні та функції — малими буквами, але змінна в цій ролі не має сенсу). Cotan оформлено не як змінну чи функцію, не як константу, а як клас у джаві (у C++ написання з великої букви взагалі хоч десь використовується?) — якщо це не малась на увазі якась саморобна функція з сусіднього модуля, то функції з такою назвою (де перша буква велика, решта малі) в стандартній бібліотеці бути не може. Інше питання, чи існує в ній функція cotan — якщо і в такому вигляді підкреслює, то, ймовірно, треба або виразити котангенс через тангенс і працювати з ним (якщо функції cotan не існує), або перевірити, чи правильно підключено модулі/прописано інклуди (якщо функція cotan точно є).

13

Re: Підкреслює котангенс і експоненту

Якщо в завданні надсекретна інформація, то навіть про помилки не варто писати на відкритих форумах. Припустимо, я шпигун і вирахував, що користувач grinyuk309 займається таємною розробкою, але навіть не знаю, про що саме ця розробка. А тут я бачу, що неправильно обчислюється змінна distance_to_target. Чи number_of_infected. Чи просто впізнаю формулу реактивного руху. І — гоп — я вже маю загальне уявлення про мету розробки.

І найголовніше - ви на цьому форумі, щоб отримувати оцінки за правильні питання, чи щоб допомагати людям? У другому випадку формальна відповідь на питання часто не допоможе.

14

Re: Підкреслює котангенс і експоненту

https://replace.org.ua/uploads/images/9488/2bb373b8649ebe33af3d5f707e5496bb.png
Ось секретна умова, не показуйте її Пентагону

koala написав:

Якщо в завданні надсекретна інформація, то навіть про помилки не варто писати на відкритих форумах. Припустимо, я шпигун і вирахував, що користувач grinyuk309 займається таємною розробкою, але навіть не знаю, про що саме ця розробка. А тут я бачу, що неправильно обчислюється змінна distance_to_target. Чи number_of_infected. Чи просто впізнаю формулу реактивного руху. І — гоп — я вже маю загальне уявлення про мету розробки.

І найголовніше - ви на цьому форумі, щоб отримувати оцінки за правильні питання, чи щоб допомагати людям? У другому випадку формальна відповідь на питання часто не допоможе.