Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2011, 10:04   #1
dimaua2
Пользователь
 
Регистрация: 25.09.2011
Сообщений: 13
По умолчанию

Y:=Exp((1/5)*ln(1-5*sqr(x)))/Exp(sin(x)/cos(x)*2);
что тут неправильно?
выражение такое

знал бы как написать тут написал (не знаю как писать степень и дробь)

Y:=Exp((1/5)*(1-5*sqr(x)*2))/Exp(sin(x)/cos(x)*2); вроде получилось...но игрик у меня почему-то 0 правильно ли я формулу составил?

Последний раз редактировалось Stilet; 17.10.2011 в 08:29.
dimaua2 вне форума Ответить с цитированием
Старый 15.10.2011, 21:43   #2
Leshii
Форумчанин
 
Регистрация: 26.07.2011
Сообщений: 376
По умолчанию

Код:
Program lin;
Uses crt;
var x,y:real;
begin
clrscr;
writeln('Vvedite x: ');
readln(x);
y:=(Exp(1/5*ln(1-(exp(2*x)*ln(5))/(exp(2*x)*ln(sin(x)/cos(x)))))));
writeln(y:1:1);
readln;
end.
Вводи числа где-то от 0.1 и до 0.8. Ты немного не той формулой пользовался для примеров a^b (а в степени б), записывается так:
Код:
a^b=exp(b*ln(a))
Люблю на ты.Я человек простой

Последний раз редактировалось Leshii; 15.10.2011 в 21:45. Причина: Ошибка
Leshii вне форума Ответить с цитированием
Старый 16.10.2011, 19:51   #3
dimaua2
Пользователь
 
Регистрация: 25.09.2011
Сообщений: 13
По умолчанию

чот нам немного не так объясняли
Код:
Program 2;
 uses CRT;
 var x,y:real;
 begin
 clrscr;
 x:=3;
 while x<=5 do
 begin
 Y:=Exp((1/5)*(1-5*sqr(x)*2))/Exp(sin(x)/cos(x)*2);
 writeln('x= ',x:3:2,' Y= ',Y:3:2);
 x:=x+0.2;
 end;
 readln;
 end.
вот что я пытался сделать

ваша формула выдает ошибочку 207

Последний раз редактировалось Stilet; 17.10.2011 в 08:30.
dimaua2 вне форума Ответить с цитированием
Старый 16.10.2011, 20:15   #4
_Alerter_
Пользователь
 
Регистрация: 25.05.2011
Сообщений: 89
По умолчанию

Цитата:
y:=(Exp(1/5*ln(1-(exp(2*x)*ln(5))/(exp(2*x)*ln(sin(x)/cos(x)))))));
По-моему, последняя скобка лишняя
_Alerter_ вне форума Ответить с цитированием
Старый 16.10.2011, 20:25   #5
Leshii
Форумчанин
 
Регистрация: 26.07.2011
Сообщений: 376
По умолчанию

Цитата:
Сообщение от dimaua2 Посмотреть сообщение
чот нам немного не так объясняли
Чот ты тогда немного задание не дописал... если уже в след посте цыкл появился.Ты написал пример.Спросил где ошибка,вот тебе и ответ.Что тебе объясняли я и ведать не ведаю.
Касательно скобочки да=)Просто это причуды моего компилятора.
Люблю на ты.Я человек простой
Leshii вне форума Ответить с цитированием
Старый 16.10.2011, 20:48   #6
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Выражение будет иметь следующий вид:
Код:
y := exp(0.2*ln(1-exp(2*x*ln(5)))) / exp(2*x*ln(sin(x)/cos(x)))
Кстати, формула для возведения числа a в степень b может быть выведена так:

Обозначим: a^b = c
возьмём натуральный логарифм от обеих частей: ln(a^b) = ln(C)
Перенося показатель степени у левого логарифма перед ним, получаем: b*ln(a) = ln(c) или
ln(c) = b*ln(a)

Привлекаем определения логарифма и задаём себе вопрос: в какую степень надо возвести число e (это основание натурального логарифма), чтобы получить C? Ответ: его надо возвести в степень b*ln(a), то есть e^b*ln(a) = c, или Exp(b*ln(a)) = c

А пользуясь тем, что мы обозначили a^b = c, окончательно заключаем:
a^b = Exp(b*ln(a))

Последний раз редактировалось Вадим Мошев; 16.10.2011 в 20:56.
Вадим Мошев вне форума Ответить с цитированием
Старый 16.10.2011, 23:47   #7
dimaua2
Пользователь
 
Регистрация: 25.09.2011
Сообщений: 13
По умолчанию

Leshii и Вадим Мошев пробовал ваши формулы
но я не пойму почему у меня выдает ошибку 207
dimaua2 вне форума Ответить с цитированием
Старый 17.10.2011, 07:42   #8
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Сообщение от dimaua2 Посмотреть сообщение
Leshii и Вадим Мошев пробовал ваши формулы
но я не пойму почему у меня выдает ошибку 207
Согласно ресурсу http://wiki.sources.ru/doku.php?id=pascal:error_codes
ошибка 207 - это Invalid floating point operation (Недопустимая операция с плавающей запятой) .

Она возникает при попытке извлечь корень чётной степени из отрицательного числа или взять логарифм от нуля или отрицательного числа.

Смотрим на формулу:
exp(0.2*ln(1-exp(2*x*ln(5)))) / exp(2*x*ln(sin(x)/cos(x)))

При некоторых x аргументы у логарифмов получаются меньше либо равны нулю. В связи с этим здесь имеется одна тонкость: прямое вычисление "в лоб" при некоторых иксах в тех местах, где при его подстановке в принимающее отрицательное значение после подстановки выражение, из которого извлекается корень, произойдёт ошибка, хотя на самом деле формула даёт при этих числах действительные числа, то есть вычисляется без проблем.
Видимо, в этом и кроется подвох. Тем не менее, можно сделать так, чтобы всё было хорошо.

Автор, при каких значениях икса у вас возникает ошибка?
Вадим Мошев вне форума Ответить с цитированием
Старый 19.10.2011, 22:38   #9
dimaua2
Пользователь
 
Регистрация: 25.09.2011
Сообщений: 13
По умолчанию

uses CRT;
var
x,y:real;
begin
clrscr;
x:=3;
while x<=5 do
begin
if x<0 then
y:= Exp((1/5)*Ln(1-Exp(2*x*Ln(5))))/Exp(x*Ln(sqr(Sin(x)/Cos(x))))
else
if x>0 then
y:= -Exp((1/5)*Ln(Exp(2*x*Ln(5))-1))/Exp(x*Ln(sqr(Sin(x)/Cos(x))))
else
y:=0;
writeln('x= ',x:3:2,' Y= ',Y:3:2);
x:=x+0.2;
end;
readln;
end.


вот нашел решение...подсказали
dimaua2 вне форума Ответить с цитированием
Старый 20.10.2011, 19:06   #10
warca
Пользователь
 
Регистрация: 14.10.2011
Сообщений: 51
По умолчанию

Код:
uses CRT;
var
x,y:real;
begin
clrscr;
x:=3;
while x<=5 do
begin
if x<0 then
y:= Exp((1/5)*Ln(1-Exp(2*x*Ln(5))))/Exp(x*Ln(sqr(Sin(x)/Cos(x))))
else
if x>0 then
y:= -Exp((1/5)*Ln(Exp(2*x*Ln(5))-1))/Exp(x*Ln(sqr(Sin(x)/Cos(x))))
else
y:=0;
writeln('x= ',x:3:2,' Y= ',Y:3:2);
x:=x+0.2;
end;
readln;
end.

Оформляйте в код алгоритм задачи(на будующее)
warca вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не получается создать выражение в запросе Dmitriy_Egorov Microsoft Office Access 5 15.05.2011 01:49
Пытаюсь кодом создать элемент - Делфи ругается... почему? Coder01 Общие вопросы Delphi 5 24.08.2010 12:57
Сопроцессор, пытаюсь вычислить выражение... yukas Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 7 13.05.2010 09:44
Пытаюсь создать приложение, закрашивающее bitmap Евгений4 Помощь студентам 10 24.08.2009 18:02
Пытаюсь создать Dll для своей проги Parcenson Общие вопросы Delphi 6 30.09.2008 20:36