Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Call to undefined function 'pow' 
:(
    Опции темы
Mastodont
Дата 14.1.2010, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 18.3.2007

Репутация: нет
Всего: 1



Есть код
Код

// Рис. 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. Так я ее подключил. Почему же тогда получаю ошибку?
PM MAIL   Вверх
smoke_man
Дата 14.1.2010, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 447
Регистрация: 25.1.2007
Где: Рязань

Репутация: 9
Всего: 17



Вместо pow попробуй powf.


--------------------
0x2b|~0x2b
PM MAIL ICQ GTalk   Вверх
djamshud
Дата 14.1.2010, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 1
Всего: 39



pow объявлена в math.h


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
Лапоть
Дата 14.1.2010, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 3.4.2009

Репутация: 1
Всего: 2



#include <math.h> - и будет тебе счастье! smile 
PM MAIL   Вверх
baldina
Дата 14.1.2010, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 1
Всего: 101



насоветовали...  smile 

pow() находится в пространстве std, поэтому 
Код

amount = principal * std::pow(1.0 + rate, year);


..............

Цитата

Код

#include<iomanip>
using std::setw;
using std::setiosflags;
using std::setprecision;
#include<cmath>
int main()
....



setw и проч из iomanip ты вносишь в область видимости, то же надо сделать и для функций из cmath

Это сообщение отредактировал(а) baldina - 14.1.2010, 12:06
PM MAIL   Вверх
smoke_man
Дата 14.1.2010, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 447
Регистрация: 25.1.2007
Где: Рязань

Репутация: 9
Всего: 17



Ну почему же сразу насоветовали smile 
Если тс использует Builder, то в нем cmath имеет следующий вид:
Код

/*  cmath.h

    Standard C header file wrapper for math.h
*/

/*
 *      C/C++ Run Time Library - Version 13.0
 *
 *      Copyright (c) 1997, 2007 by CodeGear
 *      All Rights Reserved.
 *
 */

/* $Revision: 20509 $ */

#define  __USING_CNAME__
#include <math.h>
#undef   __USING_CNAME__

#if !defined(_USE_OLD_STL)
#include <yvals.h>
_C_STD_BEGIN
_C_LIB_DECL
float (atan2f)(float, float);
float (cosf)(float);
float (expf)(float);
float (ldexpf)(float, int);
float (logf)(float);
float (powf)(float, float);
float (sinf)(float);
float (sqrtf)(float);
float (tanf)(float);
_END_C_LIB_DECL
_C_STD_END
#endif



--------------------
0x2b|~0x2b
PM MAIL ICQ GTalk   Вверх
Mastodont
Дата 14.1.2010, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 18.3.2007

Репутация: нет
Всего: 1



Спасибо всем, добавил в код
Код

#include<math>

и все скомпилилось.

Этот код я взял у Дейтлов. Значит, он должен в таком же виде и у меня работать? В чем же дело? Различие компиляторов?
PM MAIL   Вверх
Mastodont
Дата 14.1.2010, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 18.3.2007

Репутация: нет
Всего: 1



Еще вопрос: почему когда я убираю из
Код

cout << setiosflags(ios::fixed | ios::showpoint) << setprecision(2);

параметр ios::showpoint, точка из числа все равно не убирается?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.2322 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.