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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 236, средняя оценка - 4.82
cibertronic
256 / 143 / 13
Регистрация: 27.12.2009
Сообщений: 893
#1

натуральный логарифм - C++

29.01.2010, 15:14. Просмотров 32540. Ответов 11
Метки нет (Все метки)

по каким причинам натуральный логарифм может выдавать неточное число, а точнее неправильное число. например
C++
1
z=log(4*x);
при х равном одному или что эквивалентно log(4),результат которого должен быть 1.386, выводит чило -774932052 ??? как это исправить ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2010, 15:14     натуральный логарифм
Посмотрите здесь:

Натуральный логарифм в asm - C++
Доброе время суток! Вижу, натуральный логарифм реализуется на Паскале, вот в этой теме...

Натуральный логарифм N слагаемых - C++
Помогите написать код на формулу: S=√x/ln⁡x +√(x^2 )/ln⁡〖2*x〗 +√(x^3 )/ln⁡〖3*x〗 +⋯ для N слагаемых

Как в С++ реализовать(записать) LN (натуральный логарифм по основанию е)? - C++
Как в С++ реализовать(записать) LN (натуральный логарифм по основанию е)?

Вывести на экран с точностью два знака число "е" (натуральный логарифм) - C++
Всем привет! Нужно написать программку на вывод на экран с точностью два знака число "е" (натуральный логарифм), но не знаю с чего начать и...

Натуральный ряд - C++
Еще вопрос:"Сколько чисел натурального ряда необходимо перемножить, чтобы их произведение превысило заданное натуральное число." ...

Найти наименьший натуральный делитель числа - C++
Дано целое число, не меньшее 2. Выведите его наименьший натуральный делитель, отличный от 1. Формат входных данных Вводится целое...

Построить односвязный список из входных последовательностей натуральный чисел - C++
Построить односвязный список из входных послед-ей натуральный чисел удалить из списка узлы содержащие простые числа, есть у кого какие...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Зоти Сергей
228 / 226 / 13
Регистрация: 18.12.2009
Сообщений: 316
29.01.2010, 15:19     натуральный логарифм #2
Может Вы выводите данные не в том формате?
C
1
2
double n=log(4);
printf("%d\n",n);
выведет
мусор
а
C
1
2
double n=log(4);
printf("%f\n",n);
Выведет
1.386
Day
1154 / 959 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
29.01.2010, 15:29     натуральный логарифм #3
Непременно надо, чтоб в начале исходника стояло
#include <math.h>

Ежели этого нет, транслятор интерпретирует возвращенное log значение как целое
и получается абракадабрия
cibertronic
256 / 143 / 13
Регистрация: 27.12.2009
Сообщений: 893
29.01.2010, 15:50  [ТС]     натуральный логарифм #4
интересно, а для экспоненты подобные условия имеются?

Добавлено через 43 секунды
на счет вложенного файла конечно спасибо, но я в курсе
M128K145
Эксперт С++
8284 / 3503 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
29.01.2010, 15:53     натуральный логарифм #5
Цитата Сообщение от Day Посмотреть сообщение
Непременно надо, чтоб в начале исходника стояло
#include <math.h>
Ежели этого нет, транслятор интерпретирует возвращенное log значение как целое
и получается абракадабрия
Ежели этого нет, то вообще не известно, что такое log и ни о каком типе возвращаемого значения речи быть не может
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
29.01.2010, 17:28     натуральный логарифм #6
как это исправить ?
Чтобы бы исправлять нужно выложить готовую программу, а не одну строку кода.
Day
1154 / 959 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
29.01.2010, 21:10     натуральный логарифм #7
M128K145,
Ежели этого нет, то вообще не известно, что такое log и ни о каком типе возвращаемого значения речи быть не может
При трансляции файла с расширением .C неопознанные (необъявленные) функции трактуются
как возвращающие int. Ну, может warring выдать (если вы его об этом попросите)
С расширнием .CPP все значительно строже, будет ошибка трансляции.
Вр всяком случае это так у трансляторов серии Борланд
Nick Alte
Эксперт С++
1608 / 1000 / 118
Регистрация: 27.09.2009
Сообщений: 1,931
Завершенные тесты: 1
30.01.2010, 13:37     натуральный логарифм #8
Day, не надо нести чушь. Вызов необъявленных функций запрещён - просто потому, что неизвестно, что вызывать. Даже Борланд не знает, как вызывать неизвестные функции. Функция трактуется, как возвращающая тип int, если при её объявлении не указан тип возвращаемого значения (что вызывает предупреждения, но не ошибку).
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
31.01.2010, 10:37     натуральный логарифм #9
Вызов необъявленных функций запрещён - просто потому, что неизвестно, что вызывать.
В языке C можно вызвать.
Что значит неизвестно ?
Имя функции есть, код функции есть в библиотеке. Все вызовется.
Другое дело, что по умолчанию считается int func(), а там реально может быть double func().
Вот тебе код:
C
1
2
3
4
5
6
int main( void ) {
 
sqrt( 10.0 );
return 0;
 
}
Добавлено через 2 минуты
Даже Борланд не знает, как вызывать неизвестные функции.
Вот кто-кто, а Borland так вообще не эталон.

Функция трактуется, как возвращающая тип int, если при её объявлении не указан тип возвращаемого значения (что вызывает предупреждения, но не ошибку).
А также если вообще отсутствует объявление, то функция считается как возвращающая int.
Вот код:
C
1
2
3
4
5
6
7
8
9
10
11
12
int main( void ) {
 
my_func( 10.0 );
return 0;
 
}
 
double my_func( double x ) {
 
return 5.0;
 
}
Компиляция:
Код
1.c: In function 'main':
1.c:4: warning: implicit declaration of function 'my_func'
1.c: At top level:
1.c:9: error: conflicting types for 'my_func'
1.c:4: note: previous implicit declaration of 'my_func' was here
Добавлено через 1 минуту
Но там не компилируется, потому что вызывает ошибку.
А вот ниже код, который скопилируется - без объявления my_func().
C
1
2
3
4
5
6
7
8
9
10
11
12
int main( void ) {
 
my_func( 10.0 );
return 0;
 
}
 
int my_func( double x ) {
 
return 5;
 
}
Компиляция:
Код
1.c: In function 'main':
1.c:4: warning: implicit declaration of function 'my_func'
Nick Alte
Эксперт С++
1608 / 1000 / 118
Регистрация: 27.09.2009
Сообщений: 1,931
Завершенные тесты: 1
31.01.2010, 17:12     натуральный логарифм #10
холи макарони... Н-да, век живи - век учись. Такое ощущение, что Керниган и Ритчи в Челябинске этот Си изобретали...
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
31.01.2010, 19:47     натуральный логарифм #11
Язык Си - это низкоуровневый ассемблер.
От ассемблера собственно отличается:
1) переносимость на разные платформы
2) писать код проще, быстрее, надежнее

Если взять стандарт C99 - то это уже совершенно не тот C, который K&R
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.02.2010, 16:14     натуральный логарифм
Еще ссылки по теме:

Логарифм - C++
#include &lt;iostream&gt; using namespace std; #include &lt;math.h&gt; #include &lt;conio.h&gt; #include &lt;windows.h&gt; int main() { ...

Логарифм - C++
Помогите представить алгоритм в С++ коде...Завтра сдавать неуспеваю. вещ алгоритм логарифм(вх: вещ x, вещ a, вещ eps) | дано: x &gt; 0,...

Логарифм - C++
Знаю что пишу не по теме.... но помогите пожалуйста вопрос жизни и смерти..... не надо писать програму, напишите пожалуйста...

Логарифм - C++
Блин народ нfпишите плиззз рабочий код к программе считающей выражение y=lg(8x^2-6x). ОЧЕНЬ НАДООО!!!

Логарифм m по основанию n - C++
Написать функцию, которая по целым n и m вычисляет и возвращает .(логарифм m по основе n).


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

Или воспользуйтесь поиском по форуму:
cibertronic
256 / 143 / 13
Регистрация: 27.12.2009
Сообщений: 893
01.02.2010, 16:14  [ТС]     натуральный логарифм #12
мужики))) не ругайтесь)) борлад не борланд)) мне просто интересно было почему логарифм может не то выводить, оказывается что тип нужно явно указать, а если я математическую функцию спрашивал, то естественно знаю что для sqrt(),pow(),log() и тп нужно включать <math.h>))
думаютема исчерпана. всем спасибо)
Yandex
Объявления
01.02.2010, 16:14     натуральный логарифм
Ответ Создать тему
Опции темы

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