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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2017, 20:40   #1
ElizDart
Новичок
Джуниор
 
Регистрация: 07.06.2017
Сообщений: 3
По умолчанию табулирование функции(только звучит страшно)

Люди! Помогите пожалуйста! Не работает программа
Код:
program tabbbb;
const Xn=-0.5;
      Xk=3.5;
      h=0.5;
var
 D,x,y,A,N:Real;
begin
x:=Xn;
while x<=Xk do
begin
D:=x/21 ;
N:=cos(x)/2;
A:=2*ln(D);
if (D<>1) and (D>0) and ((A+N)>0)then
begin
y:=1+sqrt(A+N);
writeln ('x= ',x:4:1, ' y= ',y:4:1)
end
else
writeln ('x= ',x:4:1, ' y=function_doesnot_exist');
x:=x+h;
end
End.
Знаю что есть ошибки,но вообще не понимаю как исправить!
Пишет либо y=function_doesnot_exist, либо y=NaN.
Помогите!!!

Последний раз редактировалось BDA; 07.06.2017 в 20:50.
ElizDart вне форума Ответить с цитированием
Старый 07.06.2017, 21:00   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Не нужно брать логарифм от неположительных чисел, то есть нужно сначала проверять D, а потом рассчитывать ln(D). Во-вторых, тут функция, похоже, не существует на всем рассматриваемом отрезке.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 07.06.2017, 21:10   #3
ElizDart
Новичок
Джуниор
 
Регистрация: 07.06.2017
Сообщений: 3
По умолчанию

Хорошо,сейчас попробую!Спасибо)

Код:
program bred;
const
    xn=-0.5;
    xk=3.5;
    h=0.5;
var
   x,y: real;
   r,q,l,c: real;
Begin
x:=xn;
  while x<=xk do
   begin
    r:=x/21;
    if (r<=0) then
     writeln('x= ', x:4:1, ' y - не существует') else
     begin
      l:=2*ln(r);
      c:=0.5*cos(x);
      q:=(l+c);
      if q>0 then
         begin
       y:=(1+sqrt(q));
       writeln('x= ', x:4:1, ' y= ', y:8:2) end else
      writeln('x= ', x:4:1, ' y - не существует');
     end;
    x:=x+h;
   end;
End.
будет ли такое решение правильным?

Последний раз редактировалось Вадим Мошев; 07.06.2017 в 22:20.
ElizDart вне форума Ответить с цитированием
Старый 07.06.2017, 21:36   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Да, похоже на правду. Используйте кнопочку для оформления кода. Еще неплохо бы увидеть функцию, которую необходимо было протабулировать.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 07.06.2017, 21:42   #5
ElizDart
Новичок
Джуниор
 
Регистрация: 07.06.2017
Сообщений: 3
По умолчанию

1.12
Изображения
Тип файла: jpg загружено.jpg (14.4 Кб, 127 просмотров)
ElizDart вне форума Ответить с цитированием
Старый 07.06.2017, 22:59   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Да, всё хорошо.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Табулирование заданной функции и определение максимального и минимального значения функции в таблице Марина1986 C/C++ Сетевое программирование 0 07.05.2013 11:31
Табулирование функции Lotesse Помощь студентам 0 08.12.2011 14:18
Табулирование функции LARIK62rus Паскаль, Turbo Pascal, PascalABC.NET 1 30.11.2010 20:59
Табулирование функции lubov_morkov Помощь студентам 7 27.10.2010 09:40