Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.85/126: Рейтинг темы: голосов - 126, средняя оценка - 4.85
andrey3
0 / 0 / 0
Регистрация: 30.09.2011
Сообщений: 59
1

Вычисление логарифма по основанию

11.10.2011, 11:05. Просмотров 24177. Ответов 13
Метки нет (Все метки)

Здравствуйте, как в языке си вычисляется логарифм по основанию?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2011, 11:05
Ответы с готовыми решениями:

Вычисление целочисленного логарифма по основанию 2
Напишите программу для вычисления целочисленного логарифма по основанию 2. На...

Как в С++ оформить запись ln (логарифма по основанию е (экспонента)
Здравствуйте, собственно вопрос описан ещё в заголовке, добавить могу только...

Вычисление логарифма разложением в ряд Тейлора
В чем у меня ошибка? Задание:Написать программу для вычисления...

Вычисление площадь треугольника по известным основанию и проведенной к нему высоте
2. Написать программу для вычисления площадь треугольника по известнным...

Перевод из системы по основанию 10 в систему по основанию 4 и в обратно из 4 в 10 ую
Перевод из системы по основанию 10 в систему по основанию 4 и в обратно из 4 в...

13
easybudda
Модератор
Эксперт CЭксперт С++
10107 / 6016 / 1507
Регистрация: 25.07.2009
Сообщений: 11,404
11.10.2011, 11:22 2
andrey3, основные свойства логарифмов помните?
http://www.cyberforum.ru/cgi-bin/latex.cgi?\log_{a}b\, =\, \frac{\log_{c}b}{\log_{c}a}

В стандартном С определён натуральный логарифм - функция log() в math.h и по основанию 10 - log10(). Угадайте, что на что делить прийдётся?
2
sandye51
программист С++
833 / 592 / 147
Регистрация: 19.12.2010
Сообщений: 2,016
11.10.2011, 11:24 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <cstdlib>
#include <cmath>
 
double log(double a, double b)
{
    return log(b) / log(a);
}
 
int main()
{
    std::cout << log(4, 16);
    return EXIT_SUCCESS;
}
1
andrey3
0 / 0 / 0
Регистрация: 30.09.2011
Сообщений: 59
11.10.2011, 11:36  [ТС] 4
sandye51, мне нужно на Си.
0
aeshes
442 / 205 / 21
Регистрация: 07.10.2011
Сообщений: 462
11.10.2011, 11:37 5
ну замени cout на printf и будет тебе счастье. функция логарифма никак не поменяется
1
andrey3
11.10.2011, 11:49  [ТС]
  #6

Не по теме:

А что означает exp, в lg(exp(100))

0
aeshes
442 / 205 / 21
Регистрация: 07.10.2011
Сообщений: 462
11.10.2011, 11:51 7
это вызов функции вычисления экспоненты (e в степени х. в вашем случае - в степени 100)
1
andrey3
0 / 0 / 0
Регистрация: 30.09.2011
Сообщений: 59
11.10.2011, 11:58  [ТС] 8
Цитата Сообщение от aeshes Посмотреть сообщение
это вызов функции вычисления экспоненты (e в степени х. в вашем случае - в степени 100)
Можете объяснить, как ее рассчитать? По заданию нужно ее рассчитать, пользуясь стандартными функциями математической библиотеки (math.h).
0
Nameless One
Эксперт С++
5786 / 3435 / 351
Регистрация: 08.02.2010
Сообщений: 7,448
11.10.2011, 13:36 9
Цитата Сообщение от andrey3 Посмотреть сообщение
Можете объяснить, как ее рассчитать?
В C99 есть семейство функций вычисления экспоненты (expf, expl). В С89 есть exp. А так ее можно вычислить через разложение в ряд
1
aeshes
442 / 205 / 21
Регистрация: 07.10.2011
Сообщений: 462
11.10.2011, 13:59 10
вызов exp(x) - это и так вычисление экспоненты средствами math.h. Можете привести задание полностью, а то не понятно совсем, что вам надо найти
1
andrey3
0 / 0 / 0
Регистрация: 30.09.2011
Сообщений: 59
11.10.2011, 14:54  [ТС] 11
Цитата Сообщение от aeshes Посмотреть сообщение
вызов exp(x) - это и так вычисление экспоненты средствами math.h. Можете привести задание полностью, а то не понятно совсем, что вам надо найти
Дан пример программы с кодом решения:
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
25
26
27
28
29
30
31
#include <stdio.h>
#include <conio.h>
 
// Для числа пи 
#define _USE_MATH_DEFINES
#include <math.h>
 
#include <limits.h>
#include <float.h>
 
int main (void)
{
double R;
double Sr, Lr;
 
printf("\n Enter a real greater than zero: ");
scanf_s("%lf", &R);
Sr = M_PI*R*R;
Lr = 2*M_PI*R;
printf("\n Area of a circle of radius R = %g is %g", R, Sr);
printf("\n The length of a circle of radius R = %g is %g",R,Lr);
puts("");
 
printf("\n  Maximum integer: %d\n ", INT_MAX);
printf(" Maximum real number of float: %g\n ", FLT_MAX);
printf("Maximum real number type double: %g\n ", DBL_MAX);
 
printf("\n Press any key: ");
    _getch();
    return 0;
}
К этому примеру нужно выполнить задание.
Задание следующие:
1. Напишите программу по вычислению площади эллипса. Данные для расчета должны вводиться с клавиатуры пользователем.
2. Рассчитайте величины lg(exp(100) и ln(exp(100), пользуясь стандартными функциями математической библиотеки (math.h) .
3. Используя справочную документацию компилятора, в программе предусмотреть вывод минимальных значений указанных типов данных.
4. Используя справочную документацию компилятора, в программе предусмотреть вывод максимальных и минимальных значений для следующих типов даны: char, short int, long int.
0
aeshes
442 / 205 / 21
Регистрация: 07.10.2011
Сообщений: 462
11.10.2011, 14:59 12
ln(exp(100)) - записываете в программе как log(exp(100))

lg(exp(100)) - записываете как log(exp(100))/log(10)
1
Nameless One
Эксперт С++
5786 / 3435 / 351
Регистрация: 08.02.2010
Сообщений: 7,448
11.10.2011, 15:01 13
Цитата Сообщение от andrey3 Посмотреть сообщение
ln(exp(100)
тут даже считать ничего не надо, 100 получится
1
aeshes
11.10.2011, 15:04     Вычисление логарифма по основанию
  #14

Не по теме:

Nameless One, это специально, чтоб преподу проверять было легче) он увидит, что с параметром 100 работает и успокоится)

0
11.10.2011, 15:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.10.2011, 15:04
Привет! Вот еще темы с ответами:

Перевод из системы по основанию 8 в систему по основанию 10.
Помогите сделать программу в C++ Вот услловие: Перевод из системы по...

Перевод из системы по основанию 16 в систему по основанию 10
Перевод из системы по основанию 16 в систему по основанию 10 Добавлено...

Перевод из системы по основанию 16 в систему по основанию 10
Помогите написать программу перевода из системы по основанию 16 в систему по...


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

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

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