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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.02.2012, 18:43   #1
Shuler
 
Регистрация: 18.12.2011
Сообщений: 7
По умолчанию Решение Математических Уравнений в Pascalе

Вот Текст Задачи, но При Любом Значение Ввода Пишет, Что y=не сущ.
Код:
    
     var
     x,y:real;
     begin
     readln(x);
     if ((x*x-16)>=0) and ((9+x)>=0) and ((sqrt(9+x))-(sqrt(x*x-16))<>0)
     then begin
     y:=exp(1/5*ln((sqrt(9+x))-(sqrt(x*x-16))));
     writeln('y=', y:10:5);
      end
      else
      writeln('y NO');
      readln;
      end.
Shuler вне форума Ответить с цитированием
Старый 02.02.2012, 18:49   #2
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

вводите е те значения... введите к примеру 5... 4.6 ... на то оно и уравнение что не все подойдет... будьте впредь повнимательнее...
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 02.02.2012, 20:34   #3
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Не мешало бы разрисовать область допустимых значений для x.
(думаю, что это не составит труда ...)

В частности, условие:
(sqrt(9+x))-(sqrt(x*x-16))<>0
может дать и отрицательное число и тогда выражение
ln((sqrt(9+x))-(sqrt(x*x-16)))
сформирует ошибку
Попробуйте посчитать для x = -5

Т.е. выражение должно быть таким:
(sqrt(9+x))-(sqrt(x*x-16))>0

Как-то так ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 03.02.2012, 22:20   #4
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Подумал, и решил поправить.
Поскольку ищется корень 5-ой степени, то при
(sqrt(9+x))-(sqrt(x*x-16)) < 0
следует поправить знак результата.
Т.е.
Код:
if ((x*x-16)>=0) and ((9+x)>=0) and ((sqrt(9+x))-(sqrt(x*x-16))<>0)
     then begin
     y:=exp(1/5*ln(abs((sqrt(9+x))-(sqrt(x*x-16)))));
...
и затем:
Код:
if (sqrt(9+x))-(sqrt(x*x-16)) < 0 then y := -y;
Так подумалось ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение Математических Уравнений Shuler Паскаль, Turbo Pascal, PascalABC.NET 2 29.01.2012 18:31
Решение уравнений за $ djendalf Фриланс 0 25.12.2010 18:06
Решение уравнений Guzal Помощь студентам 2 29.09.2010 10:21
Решение уравнений delete Общие вопросы C/C++ 0 01.10.2009 23:06
решение трансцендениных уравнений DjRog Паскаль, Turbo Pascal, PascalABC.NET 2 03.04.2008 13:20