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

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

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

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

17.09.2010, 19:36. Просмотров 1029. Ответов 10
Метки нет (Все метки)

Вот код:
//---------------------------------------------------------------------------

#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 запара(
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.09.2010, 19:36     Подправте код...
Посмотрите здесь:

C++ Подправте пожалуйста код
C++ В чем разница между exit(код возврата) и ExitProcess (код возврата)?
C++ Подправте код проги, С++
C++ Подправте, пожалуйста, ошибки линкера (MVS2008) !
Пытаюсь переписать код с циклом for, в код с циклом while, но не совсем получается C++
Нужно засунуть код инструкции в 4 char'a так, чтобы в памяти это был код инструкции. C++
перевести код на С++ или написать свой код C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт С++
4956 / 3032 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 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
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 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
Эксперт С++
4956 / 3032 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 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
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 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
Эксперт С++
4956 / 3032 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 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))....
silent_1991
Эксперт С++
4956 / 3032 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
17.09.2010, 20:10     Подправте код... #11
Shady3000rf,
Используйте fabs(), а не abs().
Код Lavroff был верен, значения правильные. А у вас вообще не понятно, как z посчитался, если при его вычислении используется значение y, которое мусор...
Yandex
Объявления
17.09.2010, 20:10     Подправте код...
Ответ Создать тему
Опции темы

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