Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Prin53
2 / 2 / 0
Регистрация: 28.02.2012
Сообщений: 117
#1

Перегрузка Log(2) - C++

16.03.2012, 11:25. Просмотров 612. Ответов 8
Метки нет (Все метки)

C++
1
u1 = sin(3.14*2/12)/(log(2));
Пишет, что перегруженная функция. Что сделать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.03.2012, 11:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перегрузка Log(2) (C++):

По заданым значениям х и у найти значение величины log x y (log с основанием х) - C++
Подскажите,где ошибка в if-else.Потому-что,когда вводить вместо х или у 0,почему-то еррор не выдает,а что-то непонятное каждый раз.Спасибо....

по заданым значениям х и у найти значение величины log x y (log с основанием х ) - C++
я в принципе понимаю как написать эту программу,но,хоть убейте,в хелпе visual studio 2008 не могу найти ,как обозначать логарифм.нашла...

Перегрузка в виде метода VS Перегрузка в виде функции друг - C++
Привет! Собственно сабж: В каких случаях используется перегрузка в виде метода, а когда в виде функции друг? Добавлено через 4...

функция log - C++
Ув.Форумчане, помогите мне необходимо написать эту формула в 3 функция получается. 1) стандартная функция ну это понятно log 2) с...

Функция log - C++
Здравствуйте! Такой вопрос. Я использовала функцию log для нахождения логарифма по основанию 2 от целого аргумента. В C++ Билдере это...

Ошибка с Log(10) - C++
Ругается "error C2668: log: неоднозначный вызов перегруженной функции" в этой строчке if ( log(x*x+y*y)/log(10) >Z) {...

8
dimcoder
Полярный
466 / 439 / 68
Регистрация: 11.09.2011
Сообщений: 1,138
16.03.2012, 12:11 #2
Цитата Сообщение от Prin53 Посмотреть сообщение
u1 = sin(3.14*2/12)/(log(2));
Так попробуй:
C++
1
u1 = sin(3.14*2/12)/(log(2.0));
1
Prin53
2 / 2 / 0
Регистрация: 28.02.2012
Сообщений: 117
16.03.2012, 12:25  [ТС] #3
Спасибо, но теперь вообще нет результата.

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
# include <iostream>
# include <math.h>
using namespace std;
 
int main()
{
    setlocale (LC_ALL,"Russian");
    double e = 0.001, u2, u1,s;
    u1 = sin(3.14*2/12)/(log(2.0));
    s=u1;
    for (double n = 3;;n++)
    {
        u2 = sin(3.14*n/12)/(log(n));
        if (abs(u2-u1)<e)
        {
            break;
        }
        u2=u1;
        s=s+u1;
    }
    cout<<"S = "<<s<<"\n";
    system ("pause");
    return 0;
}
0
Hemull
47 / 47 / 1
Регистрация: 12.03.2012
Сообщений: 108
16.03.2012, 12:58 #4
у тебя цикл до брейка не доходит. нужно увеличивать порог
т.к. n возрастает, соответственно модуль разницы растет

Добавлено через 6 минут
а зачем вот это u2=u1;?
1
Prin53
2 / 2 / 0
Регистрация: 28.02.2012
Сообщений: 117
16.03.2012, 13:04  [ТС] #5
Цитата Сообщение от Hemull Посмотреть сообщение
у тебя цикл до брейка не доходит. нужно увеличивать порог
т.к. n возрастает, соответственно модуль разницы растет
По моему доходит, когда без части с log делал все считало. Порог какой увеличить?

Цитата Сообщение от Hemull Посмотреть сообщение
Добавлено через 6 минут
а зачем вот это u2=u1;?
Задача:
Скласти програму для обчислення суми нескінченного ряду з погрішністю, процесс суммирования прерывается, когда |Uk - U(k-1)| <e. Для этого я их и ввел.
0
Hemull
47 / 47 / 1
Регистрация: 12.03.2012
Сообщений: 108
16.03.2012, 13:23 #6
double e = 0.001,
а подлогарифменная n растет в цикле. соответственно и разница abs(u2-u1) тоже растет и не попадает в предел e = 0.001
проверил. при n = 1971 разница становится < eи срабатывает break

Добавлено через 7 минут
u2=u1; имхо это здесь лишнее
а откуда берешь, что e = 0.001?
1
Prin53
2 / 2 / 0
Регистрация: 28.02.2012
Сообщений: 117
16.03.2012, 13:28  [ТС] #7
Цитата Сообщение от Hemull Посмотреть сообщение
double e = 0.001,
а подлогарифменная n растет в цикле. соответственно и разница abs(u2-u1) тоже растет и не попадает в предел e = 0.001
проверил. при n = 1971 разница становится < eи срабатывает break

Добавлено через 7 минут
u2=u1; имхо это здесь лишнее
а откуда берешь, что e = 0.001?
Из условия.
0
Hemull
47 / 47 / 1
Регистрация: 12.03.2012
Сообщений: 108
16.03.2012, 13:43 #8
C++
1
2
u1=u2;
s=s+u2;
вот так попробуй. должно работать
судя по скрину, надо проверять разницу между соседними членами, а ты проверял между первым и каждым следующим и в u2 заносил значение первого. отсюда и зацкливание
1
Prin53
2 / 2 / 0
Регистрация: 28.02.2012
Сообщений: 117
16.03.2012, 14:02  [ТС] #9
Хм, да, точно. Спасибо.
0
16.03.2012, 14:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.03.2012, 14:02
Привет! Вот еще темы с ответами:

Log по основанию 2 - C++
Люди, помогите!!! Нужно написать функцию (Log по основанию 2). Я делал через классы. Так что, все что можно было перегрузить...

Log Domain error - C++
Поясните начинающему программисту эту ошибку??? вот код программы, и почему эта ошибка при отрицательном значении??? ...

Чем отличается ln , lg, и log ? - C++
и как реализуются эти функцию в c++

Создание log файла - C++
Доброго времени суток. Я написал класс, при вызове определённых функций которого, требуется вывести значения его полей в log, для...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.