Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 919

/ вопрос открыт /

Доброго времени суток, уважаемые эксперты!

Помогите перевести уравнения на язык DELPHI.
Уравнения в файле

К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)

Приложение:
  1.  


Marime Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задала: Marime (статус: Посетитель)
Вопрос отправлен: 16 января 2011, 01:35
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 45; последнее сообщение — 20 января 2011, 08:17; участников в обсуждении: 5.

Страницы: [1] [2] [3] [Следующая »]

min@y™

min@y™ (статус: Доктор наук), 16 января 2011, 10:10 [#1]:

Цитата (Marime):

Помогите перевести уравнения на язык DELPHI.

Чем помочь-то?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Marime

Marime (статус: Посетитель), 16 января 2011, 20:57 [#2]:

как записать эти уравнения в delphi,что бы он расчитал их.
min@y™

min@y™ (статус: Доктор наук), 16 января 2011, 21:23 [#3]:

Примени следующее:

  • Ln(x) -> Логарифм натуральный;
  • Exp(x) -> ex;
  • Abs(x) -> |x|;
  • Sqr(x) -> x2;
  • x * Sqr(x) -> x3;
  • Sqr(Sqr(x)) -> x4;
  • x * Sqr(Sqr(x)) -> x5;
  • Sqrt(x) -> x1/2 (кв. корень);
  • Exp(Ln(x) * y) -> xy;
  • 3! = 6;
  • 5! = 120.

Вроде, ничего не забыл?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
DNK

DNK (статус: Студент), 16 января 2011, 21:37 [#4]:

Стоило бы заметить, что это не уравнения, а выражения.
"Digital Networked Knight"
Marime

Marime (статус: Посетитель), 17 января 2011, 20:03 [#5]:

1 выражение: Ln(sqrt(exp(x-y))+exp(abs(Ln(x))+z)
2 выражение:x-(exp(3)*Ln(x))/(1*2*3))+(exp(5)*Ln(x)/(1*2*3*4*5))
ТАК???
min@y™

min@y™ (статус: Доктор наук), 17 января 2011, 20:09 [#6]:

Похоже, но проверять не буду.
Замени только заранее известные вещи на числа:
1*2*3 = 6
1*2*3*4*5 = 120
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
DNK

DNK (статус: Студент), 17 января 2011, 20:44 [#7]:

Цитата (min@y™):

Замени только заранее известные вещи на числа:
1*2*3 = 6
1*2*3*4*5 = 120
Умные компиляторы должны сами делать такую замену.
"Digital Networked Knight"
min@y™

min@y™ (статус: Доктор наук), 17 января 2011, 21:06 [#8]:

Цитата (DNK):

Умные компиляторы должны сами делать такую замену.

Совершенно верно, никто и не спорит. Однако, смотрится противно.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Вадим К

Вадим К (статус: Академик), 17 января 2011, 23:30 [#9]:

Компилятор делфи не всегда, но умеет делать простые оптимизации.
(2 + 4), если включить оптимизацию он заменит на 6.
Галочка "подтверждения прочтения" - вселенское зло.
Marime

Marime (статус: Посетитель), 18 января 2011, 00:08 [#10]:

а как записать через функцию степени?
Function Stepeny (a,b:Double):Double;
begin
Result:=exp(a*ln(b));
а выражения как записать через такую функцию? помогите пжл.
прост когда через эту функцию пишу то расчет не совпадает с предыдущими расчетами(((
1 выражение:Result:=x-(Stepeny(3,x))/(6)+(Stepeny(5,x))/(120);
2 выражение:Result:=Ln(sqrt(exp(x-y))+exp(abs(Ln(x))+z));
так??
min@y™

min@y™ (статус: Доктор наук), 18 января 2011, 08:14 [#11]:

Цитата (Marime):

не совпадает с предыдущими расчетами

Так ты проверь, как отрабатывает твоя функция Stepeny() отдельно. Stepeny - идиотское название, тьфу!..
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Marime

Marime (статус: Посетитель), 18 января 2011, 22:16 [#12]:

так я и спрашиваю,как правильно записать эти выражения через функцию степени....
min@y™

min@y™ (статус: Доктор наук), 19 января 2011, 08:28 [#13]:

Цитата (Marime):

так я и спрашиваю,как правильно записать эти выражения через функцию степени....

Может без функции лучше? Глянь, что у меня получилось:
const
  X = 1.542;
  Y = -3.26;
  Z = 80.05;
var
  A, B: Real;
begin
  A:= Ln(Abs(Sqrt(Exp(X - Y)) + Exp(Ln(X) * Abs(Y)) + Z));
  B:= X * (1 - Sqr(X) / 6 + Sqr(Sqr(X)) / 120); // вынес Х за скобку, чтоб степени стали чётными
end;
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
mirt.steelwater

mirt.steelwater (статус: Посетитель), 19 января 2011, 10:01 [#14]:

хм..
мне все же кажется, что степень будет работать быстрее, чем sqr(x)*x или sqr(sqr(x))*x
Ⓐ свобода сопротивление солидарность
Вадим К

Вадим К (статус: Академик), 19 января 2011, 10:25 [#15]:

два-три умножения против расчёта логарифма и экспоненты? Думаю, умножение все таки быстрее, так как логарифмы то не табличные берутся, а рассчитываются. А тот кто знает, как это делается, не будет утверждать обратного.
Галочка "подтверждения прочтения" - вселенское зло.
min@y™

min@y™ (статус: Доктор наук), 19 января 2011, 10:35 [#16]:

Цитата (mirt.steelwater):

мне все же кажется, что степень будет работать быстрее

Поверь, тебе это только кажется, а всё как раз наоборот.
Если хочешь проверить скорость, прогони в циклах 100000 раз один вариант решения, а затем другой, замеряя время.
К тому же, тут не скорость важна, а правильный результат.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Вадим К

Вадим К (статус: Академик), 19 января 2011, 11:11 [#17]:

это известный синдром - преждевременная оптимизация.
Галочка "подтверждения прочтения" - вселенское зло.
min@y™

min@y™ (статус: Доктор наук), 19 января 2011, 11:24 [#18]:

Цитата (Вадим К):

это известный синдром - преждевременная оптимизация.

Это ты про меня?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Вадим К

Вадим К (статус: Академик), 19 января 2011, 11:34 [#19]:

:) нет конечно. это я о mirt.steelwater - который хочет оптимизировать там, где это никак не нужно.
Галочка "подтверждения прочтения" - вселенское зло.
min@y™

min@y™ (статус: Доктор наук), 19 января 2011, 11:45 [#20]:

Цитата (Вадим К):

:) нет конечно. это я о mirt.steelwater - который хочет оптимизировать там, где это никак не нужно.

А... Я-то думал, что то, что я вынес Х за скобку - это преждевременная оптимизация.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

Страницы: [1] [2] [3] [Следующая »]

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:39
Выполнено за 0.02 сек.