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

Подправте код... - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.75
Shady3000rf
2 / 2 / 0
Регистрация: 17.09.2010
Сообщений: 38
17.09.2010, 19:36     Подправте код... #1
Вот код:
//---------------------------------------------------------------------------

#pragma hdrstop
#include <stdio.h>
#include <conio.h>
#include <math.h>
//---------------------------------------------------------------------------

#pragma argsused
int main()
{ float y,z,a=1.14,x=1.42;
y=ln(abs(a-1))+cos(pow(x,3)/2);
z=abs(y)+sin(pow(a,3));
printf("y=%f z=%f\n",y,z);
getch();
return 0;
}
//---------------------------------------------------------------------------
с++ ругается [C++ Error] Unit1.cpp(12): E2268 Call to undefined function 'ln'
как я понял ln записывается по другому? Подскажите что не так.
Если что вот само уравнение:
y=ln|a-1|+cos(x^3\2)
z=|y|+sin(a^3)
, при а=1.14, ч=1.42 Ну код вроде сам правильный, только с этим ln запара(
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
17.09.2010, 19:39     Подправте код... #2
Shady3000rf,
Натуральный логарифм - log()
Qwerty_coder
29 / 29 / 2
Регистрация: 14.12.2009
Сообщений: 79
17.09.2010, 19:41     Подправте код... #3
Shady3000rf, вместо ln пропиши log

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#pragma hdrstop
#include <stdio.h>
#include <conio.h>
#include <math.h>
//---------------------------------------------------------------------------
 
#pragma argsused
int main()
{ float y,z,a=1.14,x=1.42;
y=log(abs(a-1))+cos(pow(x,3)/2);
z=abs(y)+sin(pow(a,3));
printf("y=%f z=%f\n",y,z);
getch();
return 0;
}
Shady3000rf
2 / 2 / 0
Регистрация: 17.09.2010
Сообщений: 38
17.09.2010, 19:46  [ТС]     Подправте код... #4
Цитата Сообщение от silent_1991 Посмотреть сообщение
Shady3000rf,
Натуральный логарифм - log()
так ведь, если я не ошибаюсь, log отличается от ln
Натуральные:ln , основание: e (число Эйлера или экспонента).
Десятичные: lg, основание: число 10.
Двоичные: log b основание: число 2(например)


только это вспомнил))

или мне всё таки так и записывать
y=log(abs(a-1))

о уже ответили, спасибо!)


эм......теперь при вычислении такое:
log: SING error
y=-INF z=0.996020

или это просто уравнение такое?
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
17.09.2010, 19:51     Подправте код... #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#pragma hdrstop
#include <stdio.h>
#include <conio.h>
#include <math.h>
//---------------------------------------------------------------------------
 
#pragma argsused
int main()
{ float y,z,a=1.14,x=1.42;
y=log(fabs(a-1))+cos(pow(x,3)/2);
z=fabs(y)+sin(pow(a,3));
printf("y=%f z=%f\n",y,z);
getch();
return 0;
}
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
17.09.2010, 19:56     Подправте код... #6
Shady3000rf,
Поверьте, функция log(x) возвращает натуральный логарифм x. Если нужно log_b(a) (логарифм a по основанию b), то нужно записать log(a)/log(b)
А на счёт двоичных - я не видел для них особого обозначения, так и пишут log_2(a)

Добавлено через 4 минуты
Shady3000rf,
Надеюсь, в качестве a не единицу вводите?
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
17.09.2010, 19:57     Подправте код... #7
silent_1991, Почти.
a=1.14
Shady3000rf
2 / 2 / 0
Регистрация: 17.09.2010
Сообщений: 38
17.09.2010, 19:57  [ТС]     Подправте код... #8
Цитата Сообщение от silent_1991 Посмотреть сообщение
Надеюсь, в качестве a не единицу вводите?
Хы нет конешно) Ну и а у меня задана: { float y,z,a=1.14,x=1.42;

а с кодом Lavroff норм вычисляет)
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
17.09.2010, 20:00     Подправте код... #9
Shady3000rf,
да, не заметил...
Странно, у меня всё считает... код Lavroff. Но z не такой вывел, как у вас...
Shady3000rf
2 / 2 / 0
Регистрация: 17.09.2010
Сообщений: 38
17.09.2010, 20:04  [ТС]     Подправте код... #10
Не с кодом Lavroff у меня такие значения:
y=-1.827409 z=2.823429

а эти значения: log: SING error
y=-INF z=0.996020
были при y=log(abs(a-1))....
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.09.2010, 20:10     Подправте код...
Еще ссылки по теме:

код, который прекрасно выполняет Code::Blocks не выполняеться в Студии, как сделатьь так чтобы Студия воспринимала этот код?? C++
перевод десятичного вещественного в машинный код(двоичный код) C++
Перевести код программы Паскаля в код С++ C++

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

Или воспользуйтесь поиском по форуму:
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
17.09.2010, 20:10     Подправте код... #11
Shady3000rf,
Используйте fabs(), а не abs().
Код Lavroff был верен, значения правильные. А у вас вообще не понятно, как z посчитался, если при его вычислении используется значение y, которое мусор...
Yandex
Объявления
17.09.2010, 20:10     Подправте код...
Ответ Создать тему
Опции темы

Текущее время: 03:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru