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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2014, 22:34   #1
Sting95
Пользователь
 
Регистрация: 13.08.2013
Сообщений: 23
По умолчанию Подправьте пожалуйста код. Паскаль.

Задание: Провести табуляцию функции на промежутке.

y=sqrt(x-x^3), x є [-2;2]

Проблема в том, что не высчитывает y.

Вот код:

Код:
uses crt;
const a=-2;
      b=2;
      
Procedure zagolovok;
 begin
  writeln('┌───────────┬──────────┐');
  writeln('│     x     │     y    │');
  writeln('└───────────┘──────────┘');
 end;
 
Function F(x:real):real;
  begin
  F:=sqrt(x-(exp(ln(x)*3)));
  end;

var x,y,c:real;
    n:byte;
begin   
    write('Введiть кiлькiсть аргументiв n=');
    readln(n);
    c:=(b-a)/n; //высчитывание шага//
    writeln('Табуляцiя функцiї');
    x:=a+c;
    zagolovok;
    while x<=b do begin
    writeln('│───────────│──────────│');
    writeln(' x=',x:5:2,'     y=',F(x):3:2);
    writeln('│           │          │');
    x:=x+c;
    readkey;
   end;
    writeln('└───────────┘──────────┘');
    readln;
    readkey;
    clrscr;
end.

Последний раз редактировалось Sting95; 11.04.2014 в 00:29.
Sting95 вне форума Ответить с цитированием
Старый 11.04.2014, 06:29   #2
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Результат для PascalABC.Net:
Цитата:
Введiть кiлькiсть аргументiв n=10
Табуляцiя функцiї
┌───────────┬──────────┐
│ x │ y │
└───────────┘──────────┘
|x=-1.60 |y= NaN|
|x=-1.20 |y= NaN|
|x=-0.80 |y= NaN|
|x=-0.40 |y= NaN|
|x= 0.00 |y= NaN|
|x= 0.40 |y= 0.58|
|x= 0.80 |y= 0.54|
|x= 1.20 |y= NaN|
|x= 1.60 |y= NaN|
|x= 2.00 |y= NaN|
└───────────┘──────────┘
Чуть чуть поправленный исходник для него же:
Код:
const a=-2;
      b=2;
      
Procedure zagolovok;
 begin
  writeln('┌───────────┬──────────┐');
  writeln('│     x     │     y    │');
  writeln('└───────────┘──────────┘');
 end;
 
Function F(x:real):real;
  begin
  F:=sqrt(x-(exp(ln(x)*3)));
  end;

var x,y,c:real;
    n:byte;
begin   
    write('Введiть кiлькiсть аргументiв n=');
    readln(n);
    c:=(b-a)/n; //высчитывание шага//
    writeln('Табуляцiя функцiї');
    x:=a+c;
    zagolovok;
    while x<=b do begin
//    writeln('│───────────│──────────│');
    writeln('|x=',x:5:2,'    |y=',F(x):8:2,'|');
//    writeln('│           │          │');
    x:=x+c;
//    readln;
   end;
    writeln('└───────────┘──────────┘');
    readln;
end.
И думается мне, что проблема в логирифме от отрицательного числа + корне квадратном из, опять же, отрицательного числа.
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подправьте код strannick Microsoft Office Excel 10 17.08.2012 07:52
Подправьте код! naboman Microsoft Office Excel 3 03.06.2011 01:03
подправьте код Delphi 7 savra Помощь студентам 0 14.12.2009 10:41
Подправьте мой код пожалуйста Volchara Общие вопросы C/C++ 5 06.04.2009 17:05