Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2011, 22:25   #1
Jugger
Пользователь
 
Регистрация: 30.01.2008
Сообщений: 99
По умолчанию Что с типами данных при использовании math.h

В этом коде в выделенных строчках имеются ошибки
Подскажите что исправить
Код:
#include <stdafx.h>
using namespace std;
#include <iostream>
#include <iomanip>
#include <conio.h>


#include <stdlib.h>
#include <math.h>
#define q 20

float power(int a,float b)
{
  if (a>0) return exp(b* log(a));
  else return 0;
}

float f(float x)
{
  return 2*2*x-power(2,x);
  }

float f1(float x)
{
  return 2*2-power(2,x)* log(2);
  }

void nuton()
{
  float eps;
  float a1,b1;
  int l=0;

 
  do
  {
  cout<<"100"<<endl;
  cin>>a1;
  cin>>b1;
  }  while (f(a1)*f(b1)>=0);

  do
  {
  cout<<"111"<<endl;
  cin>>eps;
   } while (eps>=0.1);

   float x0=(a1+b1)/2;
   int i=0;
   float x2=x0;
   float x1=x2-f(x2)/f1(x2);

   while (((fabs(x1-x2)>eps)||(fabs(f(x1))>eps))&&(i<q))
    {
     x2=x1;
     x1=x2-f(x2)/f1(x2);
     ++i;
      }

 if ((fabs(x1-x2)<=eps)&&(fabs(f(x1))<=eps)) l=0;
 if (fabs(x1-x2)<=eps) l=1;
 if (i>q) l=2;

 cout<<"1"<<setprecision(6)<<x1<<endl;
 cout<<"2"<<f(x1)<<endl;
 cout<<"3"<<setprecision(6)<<fabs(x1-x2)<<endl;
 cout<<"4"<<i<<endl;
 cout<<"8"<<l<<endl;
     }



int main()
{
	 setlocale(LC_ALL, "russian"); 
  int a,x;

 nuton();
 system ("pause");

}

Код:
1>------ Build started: Project: cmcm, Configuration: Debug Win32 ------
1>  cmcm.cpp
1>cmcm.cpp(14): error C2668: 'log' : ambiguous call to overloaded function
1>          C:\Program Files\Microsoft Visual Studio 10.0\VC\include\math.h(575): could be 'long double log(long double)'
1>          C:\Program Files\Microsoft Visual Studio 10.0\VC\include\math.h(527): or       'float log(float)'
1>          C:\Program Files\Microsoft Visual Studio 10.0\VC\include\math.h(120): or       'double log(double)'
1>          while trying to match the argument list '(int)'
1>cmcm.cpp(25): error C2668: 'log' : ambiguous call to overloaded function
1>          C:\Program Files\Microsoft Visual Studio 10.0\VC\include\math.h(575): could be 'long double log(long double)'
1>          C:\Program Files\Microsoft Visual Studio 10.0\VC\include\math.h(527): or       'float log(float)'
1>          C:\Program Files\Microsoft Visual Studio 10.0\VC\include\math.h(120): or       'double log(double)'
1>          while trying to match the argument list '(int)'
1>cmcm.cpp(68): warning C4566: character represented by universal-character-name '\u008F' cannot be represented in the current code page (1251)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Последний раз редактировалось Jugger; 23.10.2011 в 22:30.
Jugger вне форума Ответить с цитированием
Старый 23.10.2011, 22:29   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

самое простое - тип float замени на double
Rififi вне форума Ответить с цитированием
Старый 23.10.2011, 22:37   #3
Jugger
Пользователь
 
Регистрация: 30.01.2008
Сообщений: 99
По умолчанию

Поменял все float на double
Остались точно те же ошибки
Jugger вне форума Ответить с цитированием
Старый 23.10.2011, 22:44   #4
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Jugger

у тебя в log(2), log(a) - аргумент - целое число. такой функции нет.
надо чтобы было вещественное (float, double, long double)
Rififi вне форума Ответить с цитированием
Старый 23.10.2011, 23:01   #5
Jugger
Пользователь
 
Регистрация: 30.01.2008
Сообщений: 99
По умолчанию

А, понятно
Поставил log((double)a) и заработало

Спасибо
Jugger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C. Что-то с math.h. Не работает pow. CofeIn Помощь студентам 7 18.02.2011 22:55
Проблемко с типами данных Jugger Помощь студентам 1 21.01.2011 10:47
Что за пароль при использовании в Тесте БД Access? kunag Помощь студентам 2 31.05.2010 13:38
трудности с типами данных hasana Паскаль, Turbo Pascal, PascalABC.NET 8 18.05.2010 13:49