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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.04.2016, 23:01   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

проблема в том, что функция логарифма не определена на всём множестве чисел.
допишите перед Y := ....

Код:
  WriteLn('ln(x)=',ln(x));
  WriteLn(' выражение LN(...) = LN(',abs(exp(3*ln(x)))-exp(4*ln(x)),')');
и Вы увидите, что при X=1 выражение превращается в ноль.
Напомните, в какую степень нужно возвести e, чтобы получилось ноль?
(чему равен логарифм натуральный от нуля?)

а если ввести X=2
то выражение превращается вообще в -8
логарифм натуральный от отрицательных чисел так же неопределён.

вот и возникает ваша ошибка.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.04.2016, 23:02   #12
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Не обращайте на это внимания, Смит о чём-то своём..
Ты не прав. Когда я об этом начинал писать ответ, была просто пустая строка. Сейчас глянул, появилась и формула. И в ней, ещё пока не разобрался. Разберусь, а ТС её изменит, во - засада!
И опять я буду виноват .
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 19.04.2016 в 23:04.
Smitt&Wesson вне форума Ответить с цитированием
Старый 19.04.2016, 23:08   #13
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
Ты не прав. Когда я об этом начинал писать ответ, была просто пустая строка. Сейчас глянул, появилась и формула. И в ней, ещё пока не разобрался. Разберусь, а ТС её изменит, во - засада!
Сейчас строка не пустая?
Теперь ваш совет насчёт присвоения нуля можно игнорировать?
вот я об этом сразу и сказал.

Да уже всё ясно, либо формула неверно составлена,
либо автор забыл, что вводить X нужно строго от нуля до 1 ( 0 < x < 1)
(неравенства строгие, граничные значения недопустимы)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.04.2016, 23:15   #14
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Misapapa Посмотреть сообщение
Здравствуйте. Меня попросили написать программу, но почему-то после ввода х, Паскаль выдает ошибку: Неправильная вещественная операция в строке 9.
1.Program Dopolnitelno;
2.Var
3.Y,b,a,x:Real;
4.Begin
5.Writeln('Введите x');
6.read(x);
7.a:=sin(exp(10));
8.b:=ln(30)/ln(2);
9.Y:=(ln(abs(exp(3*ln(x)))-exp(4*ln(x)))+7/ln(10)+cos(3/5*2)/sin(3/5*2)/sqr(cos(pi/4))+sin(pi/8)/cos(pi/8)+exp(-2*a*ln(b)));
10.Writeln('Y=', Y:7:2);
11.End.
Где в этой строке ошибка?

2.Ниже уравнение, по которому нужно было написать программу. Может так будет понятней моя ошибка?
Кто Вам такие задачки задаёт? Вы, даже представить себе не можете, что такое экспонента в 10-й степени. Во-Вселенной, не то-что столько атомов нет, но и кварков на порядок меньше. О_оооо!
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 19.04.2016, 23:20   #15
Misapapa
Пользователь
 
Регистрация: 19.04.2016
Сообщений: 10
По умолчанию

Это нам дают в Институте на 1-м курсе
Misapapa вне форума Ответить с цитированием
Старый 19.04.2016, 23:22   #16
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Misapapa, вы мой ответ выше прочитали?
вопрос закрыт?


Смит, кончайте уже, а...
какие атомы, какие кварки?!!
exp(10)= 22026.4657948067165
22 тысячи 26. Это огромное число?
У Вас что, калькулятор украли?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.04.2016, 23:23   #17
Misapapa
Пользователь
 
Регистрация: 19.04.2016
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
проблема в том, что функция логарифма не определена на всём множестве чисел.
допишите перед Y := ....

Код:
  WriteLn('ln(x)=',ln(x));
  WriteLn(' выражение LN(...) = LN(',abs(exp(3*ln(x)))-exp(4*ln(x)),')');
и Вы увидите, что при X=1 выражение превращается в ноль.
Напомните, в какую степень нужно возвести e, чтобы получилось ноль?
(чему равен логарифм натуральный от нуля?)

а если ввести X=2
то выражение превращается вообще в -8
логарифм натуральный от отрицательных чисел так же неопределён.

вот и возникает ваша ошибка.
Это все равно не помогло. Видимо я не правильно написал программу по формуле. Если можно, то помогите ее правильно составить.
Misapapa вне форума Ответить с цитированием
Старый 19.04.2016, 23:29   #18
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Misapapa Посмотреть сообщение
Это все равно не помогло. Видимо я не правильно написал программу по формуле. Если можно, то помогите ее правильно составить.
конечно, неправильно.
даже с самого начала. в первом же логарифме первым слагаемым идёт b
где это у Вас?!
ну и со скобками всё перепутано.
мой Вам совет - разбивайте выражение на отдельные элементы и отдельно их вычисляйте.
потом сложите полученное.
иначе легко запутаться.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.04.2016, 23:31   #19
Misapapa
Пользователь
 
Регистрация: 19.04.2016
Сообщений: 10
По умолчанию

Хорошо. Спасибо. Я попробую разбить на части
Misapapa вне форума Ответить с цитированием
Старый 19.04.2016, 23:32   #20
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

и лучше функции тангенса и котангенса вынести отдельно:

Код:
function tg (x : real) : real;
begin
  tg := sin(x)/cos(x);
end;

function ctg (x : real) : real;
begin
  ctg := cos(x)/sin(x);
end;
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Неверная вещественная операция и деление на ноль, как исправить? Sting95 Помощь студентам 1 22.10.2013 01:13
Неверная конвертация из CSV DAV7772 Microsoft Office Excel 5 20.12.2011 22:37
Неверная вещественная операция PascalABC notter Помощь студентам 0 24.05.2011 17:30
Неверная запись Golovastik HTML и CSS 1 26.07.2010 21:34
Неверная ссылка на профиль AlDelta О форуме и сайтах клуба 2 27.10.2007 21:03