Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.94
fs444
6 / 10 / 0
Регистрация: 18.08.2009
Сообщений: 480
#1

Call to undefined function 'pow' - C++

14.01.2010, 11:32. Просмотров 2022. Ответов 4
Метки нет (Все метки)

Есть код

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// Рис. 2.21: fig02_21.cpp
// Вычисление сложного процесса
 
#include<iostream>
 
using std::cout;
using std::endl;
using std::ios;
 
#include<windows>
 
int rustext(char str[])
{
 char buffer[1024];
 CharToOem(str,buffer);
 cout << buffer;
}
 
#include<iomanip>
 
using std::setw;
using std::setiosflags;
using std::setprecision;
 
#include<cmath>
 
int main()
{
 double amount, // Сумма депозита
        principal = 1000.0, // инициализация principal
        rate = 0.05; // инициализация rate
 
 rustext("Год ");
 cout << setw(21);
 rustext("Сумма депозита");
 cout << endl;
 
 // установка формата числа с плавающей точкой
 cout << setiosflags(ios::fixed | ios::showpoint) << setprecision(2);
 
 for (int year = 1; year <= 10; year++)
  {
   amount = principal * pow(1.0 + rate, year);
   cout << setw(4) << year << setw(21) << amount << endl;
  }
 
 system("pause");
 return 0;
}

При компиляции получаю сообщения
[C++ Warning] fig02_21_vichislenie_slozhnogo_procenta.cpp(17): W8070 Function should return a value
[C++ Error] fig02_21_vichislenie_slozhnogo_procenta.cpp(43): E2268 Call to undefined function 'pow'
[C++ Warning] fig02_21_vichislenie_slozhnogo_procenta.cpp(49): W8004 'rate' is assigned a value that is never used
[C++ Warning] fig02_21_vichislenie_slozhnogo_procenta.cpp(49): W8004 'principal' is assigned a value that is never used
Я так понимаю, функция pow не определена. Насколько я знаю, для ее работы нужна директива cmath. Так я ее подключил. Почему же тогда получаю ошибку?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2010, 11:32     Call to undefined function 'pow'
Посмотрите здесь:

[C++ Error] Sqrt x.cpp(16): E2268 Call to undefined function 'sqrt'. Что это за ошибка??? C++
C++ Call to undefined function 'strcpy_s'
Call to undefined function 'trunc' C++
C++ при вызове функции pow() выдаёт ошибку: test.cpp:(.text+0x59b): undefined reference to `pow'
Хочу написать функцию pow(), ошибка: (5,27):Too few parameters in call to 'step(float,int)' C++
C++ Ошибка: [C++ Error] mk.cpp(20): E2268 Call to undefined function 'rand'
exceptions (no matching function for call to .) C++
C++ [C++ Error] Unit1.cpp(22): E2268 Call to undefined function 'While'
C++ Call to undefined function
Call of nonfunction in function main() C++
E2268 Call to undefined function 'scanf_s' C++
No matching function to call to C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Day
 Аватар для Day
1152 / 957 / 57
Регистрация: 29.10.2009
Сообщений: 1,384
14.01.2010, 12:06     Call to undefined function 'pow' #2
Надо в начале программы вставить директиву
#include <math.h>
Тогда математическая функция pow станет известна транслятору
Директива cmath только подключает мат.библиотеку на этапе линковки
А во время трансляции кода про нее ничего неизвестно
zim22
depict1
 Аватар для zim22
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
14.01.2010, 12:14     Call to undefined function 'pow' #3
Цитата Сообщение от Day Посмотреть сообщение
Директива cmath только подключает мат.библиотеку на этапе линковки
А во время трансляции кода про нее ничего неизвестно
где ты это вычитал? у Подбельского?

единственное отличие между хедерами math.h и cmath в том, что в cmath все функции находятся внутри пространства имён std
Day
 Аватар для Day
1152 / 957 / 57
Регистрация: 29.10.2009
Сообщений: 1,384
14.01.2010, 12:44     Call to undefined function 'pow' #4
Приношу извинения
В лабиринтах C++ я пока пловец неважный
fs444
6 / 10 / 0
Регистрация: 18.08.2009
Сообщений: 480
14.01.2010, 13:36  [ТС]     Call to undefined function 'pow' #5
Да, добавил #include<math>, и все скомпилилось.

Этот код я взял у Дейтлов. Значит, он должен в таком же виде и у меня работать? В чем же дело? Различие компиляторов?

Добавлено через 14 минут
Еще вопрос: почему когда я убираю из
C++
1
cout << setiosflags(ios::fixed | ios::showpoint) << setprecision(2);
параметр ios::showpoint, точка из числа все равно не убирается?
Yandex
Объявления
14.01.2010, 13:36     Call to undefined function 'pow'
Ответ Создать тему
Опции темы

Текущее время: 11:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru