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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.04.2014, 19:43   #1
Александр112
 
Регистрация: 24.04.2014
Сообщений: 9
По умолчанию error C2668: sqrt: неоднозначный вызов перегруженной функции

Ошибка1error C2668: sqrt: неоднозначный вызов перегруженной функции

Код:
#include<iostream>
#include<cmath>
#include<conio.h>
using namespace std;
int main()
{
    double z1,z2,a;
    cout << "Введіть значення a=";
    cin>>a;
    z1= pow(cos((3/8)*3.14-(a/4)),2)- pow(cos((11/8)*3.14+(a/4)),2);
    z2= ((sqrt(2))/(2))*(sin(a/2));
    cout<<"\n z1 = " << z1;
    cout<<"\n z2 = " << z2;
	getch ();
    return 0;
}

Последний раз редактировалось Stilet; 24.04.2014 в 20:21.
Александр112 вне форума Ответить с цитированием
Старый 24.04.2014, 23:23   #2
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Пиши sqrt(2.0)
Son Of Pain вне форума Ответить с цитированием
Старый 25.04.2014, 08:10   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Пиши sqrt(2.0)
А может лучше тогда уж вычислить на калькуляторе и вставить константу?
Я понимаю что компиль и сам это сделает, но все же...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.04.2014, 08:38   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А может лучше тогда уж вычислить на калькуляторе и вставить константу?
Я понимаю что компиль и сам это сделает, но все же...
я, возможно, ошибусь, ибо не компетентен в C, но я не понял, что криминального в предложении написать параметер функции так, как она того ждёт (вещественное число).
а что Вы можете предложить?
так написать?
Код:
 ... sqrt( (double)2)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.04.2014, 11:18   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Да никакого криминала, я просто предложил заменить его константой 1,414213562373, все равно вычисляться он будет на этапе компиляции.
А там как уже хочется. Я обычно так и делаю, считаю что код меньше захламляется.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.04.2014, 11:26   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Да никакого криминала, я просто предложил заменить его константой 1,414213562373, все равно вычисляться он будет на этапе компиляции.
А там как уже хочется. Я обычно так и делаю, считаю что код меньше захламляется.
А! Вы всерьёз...
А я принял вашу реплику за сарказм!

p.s. я бы лично оставил sqrt(2.0) - просто для наглядности. Тем более, что вычисление не повлияет на производительность!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.04.2014, 12:46   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
просто для наглядности.
Вот как раз от такой "наглядности" я и стараюсь всегда убегать.
Потом когда код читаешь по прошествию какого-то времени сидишь и думашь "А зачем я так делал? Что за необходимость была?" В общем только запутывает.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.04.2014, 13:10   #8
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

ИМХО, sqrt(2.0) есть смысл оставлять, если планируется (пусть теоретически) эту 2 менять. В противном случае лучше заменить на константу. А в данном случае ((sqrt(2))/(2)) явно константа, которую менять не будут.

Кстати, ТС константа пи есть уже в модуле... или у вас как в анекдоте "в военное время значение пи может достигать 3"
p51x вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
error C2668: sqrt:...mv c++2010express notAstudent Помощь студентам 2 31.07.2012 07:28
нет перегруженной функции, принимающей 2 аргументов Ghostik Visual C++ 2 10.04.2012 15:06
error C2668: 'sqrt' : ambiguous call to overloaded function Украина Visual C++ 3 08.01.2012 18:34
тип возвращаемого значения функции sqrt SAMOUCHKA Помощь студентам 2 20.09.2011 19:00
С++sqrt: неоднозначный вызов перегруженной функции Crazy_caramel Помощь студентам 10 13.11.2009 19:13