There is no such thing as a stupid question, until you ask it
Здравствуйте! Начинаю осваивать С++, поэтому извините, если вопрос покажется крайне дилетантским.
Компилятор: C++ 2008, ОС - семерка
Подсчитываю значение заданной функции f(x), которая включает в себя синус, косинус, степень, модуль и прочие вкусные вещи. читать дальше

@темы: C++

Комментарии
12.02.2014 в 18:58

Тут: http://www.cplusplus.com/reference/cmath/abs/ говорится о том, что есть fabs.
12.02.2014 в 19:10

There is no such thing as a stupid question, until you ask it
Юрий Рэйн, то есть, для float'а он пишется несколько по-другому? О, спасибо (гугл выдавал результаты и на absf).
Однако для перемененных та же песня, я проверяла.
12.02.2014 в 19:36

GippoRex, Программу лучше оформлять тегом CODE (рядом с MORE) Попробуйте использовать функции abs и pow (они перегружены (имеют определение) под float в том числе). И в Fun.cpp, float y можно (и лучше) определять в функции Fun.
Остальное на первый взгляд должно быть верно. (Кроме того, что в С++ используется для ввода и вывода std::cin и std::cout)


12.02.2014 в 20:06

There is no such thing as a stupid question, until you ask it
оформлять тегом CODE
простите, как-то не подумала сразу ._.

float y можно (и лучше) определять в функции Fun
Вот так?


С++ используется для ввода и вывода std::cin и std::cout
У меня в учебнике про это ни слова :crznope: Устарели материалы?


И да, оно все равно не компилируется.
12.02.2014 в 20:13

простите, как-то не подумала сразу ._.
Дело в том, что в таком случае больше вероятность, что кто-нибудь соберёт у себя и укажет на решение проблемы. По крайней мере визуально её найти сложно.

Но игрек и так там объявляется, нет?
Да.

У меня в учебнике про это ни слова :crznope: Устарели материалы?
Возможно. Учебник точно по С++, а не Си? (В Си такой подход норма, а вот для плюсов...)
12.02.2014 в 20:17

There is no such thing as a stupid question, until you ask it
Юрий Рэйн, Учебник точно по С++, а не Си?
Оооооо
Кстати, да. Это у меня такой монстр Франкенштейна, сделанный намеренно.
Но энивей, другая программа, в которой я использовала такие же операторы вывода в том же самом компиляторе, работает прекрасно. Дело, увы, не в этом.
12.02.2014 в 20:29

GippoRex, Исправленный Fun.cpp.
Проблемы первоначального:
- отсутствие определения math.h, хотя с его функциями происходит работа
- Компилятор не знал, какую из перегруженных функций pow выбрать.
- При сложении или умножении float c константой, лучше записывать её как десятичную дробь, или ставить точку (краткая запись). Иначе есть вероятность получить результатом действия int (компилятор приведёт самостоятельно).

12.02.2014 в 23:32

There is no such thing as a stupid question, until you ask it
Спасибо вам огромное! Особенно про точку: тонкий такой момент.

- отсутствие определения math.h, хотя с его функциями происходит работа
Странно, но когда пыталась я указать библиотеку и в теле функции, то компилятор все равно плевался.
Компилятор не знал, какую из перегруженных функций pow выбрать.
Ам, можно поподробнее? Я не вижу различий относительно pow между исходным и вашим вариантом.
13.02.2014 в 00:47

Странно, но когда пыталась я указать библиотеку и в теле функции, то компилятор все равно плевался.
Подключение библиотек (речь о #include) всегда идёт в начале файла до объявления функций. Причём в некоторых случаях важен порядок подключения (что в первой, что во второй строке подключается), как ни странно это может показаться на первый взгляд.

Ам, можно поподробнее? Я не вижу различий относительно pow между исходным и вашим вариантом.
Было y = pow(y, 0.5); Стало для однозначности y = powf(y, 0.5);

Ещё тонкий момент на будущее про недопустимость прямого сравнения (оператор ==) float и double:
http://www.codeproject.com/Articles/29637/Five-Tips-for-Floating-Point-Programming