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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.07.2020, 12:36   #1
tarhun69
Новичок
Джуниор
 
Регистрация: 20.07.2020
Сообщений: 7
По умолчанию График функции в PascalABC

Построить график функции гиперболы (1/x)
Заранее спасибо!
tarhun69 вне форума Ответить с цитированием
Старый 21.07.2020, 13:31   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,544
По умолчанию

Построил. Не благодарите.

Arigato вне форума Ответить с цитированием
Старый 21.07.2020, 13:44   #3
tarhun69
Новичок
Джуниор
 
Регистрация: 20.07.2020
Сообщений: 7
По умолчанию

Arigato, Здравствуйте, ну в общем то я пытался, но всегда выходит ошибка:
Ошибка времени выполнения: Значение было недопустимо малым или недопустимо большим для Int32.
tarhun69 вне форума Ответить с цитированием
Старый 21.07.2020, 13:50   #4
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,544
По умолчанию

Скорее всего у вас возникало деление на 0. Покажите свой код.
Arigato вне форума Ответить с цитированием
Старый 21.07.2020, 13:55   #5
tarhun69
Новичок
Джуниор
 
Регистрация: 20.07.2020
Сообщений: 7
По умолчанию

Arigato,
Код:
uses graphABC;
function f1(x:real):real;
begin
f1:=1/x
end;
var c,i:integer;
    x1,x2,x3,x4,x,m:real;
begin
setwindowsize(500,500);
centerwindow;
c:=windowwidth div 2;
m:=(c-20)/3;
line(0,c,2*c-10,c);
setpenwidth(1);
line(c,10,c,2*c);
for i:=1 to 3 do
 begin
  line(c+round(i*m),c-3,c+round(i*m),c+3);
  line(c-round(i*m),c-3,c-round(i*m),c+3);
  textout(c+round(i*m),c+10,inttostr(i));
  textout(c-round(i*m)+5,c+10,inttostr(-i));
  line(c-3,c-round(i*m),c+3,c-round(i*m));
  line(c-3,c+round(i*m),c+3,c+round(i*m));
  textout(c-20,c-round(i*m),inttostr(i));
  textout(c-25,c+round(i*m),inttostr(-i));
 end;
x:=x1;
moveto(c+round(x*m),c-round(f1(x)*m));
while x<=x2 do
 begin
  lineto(c+round(x*m),c-round(f1(x)*m));
  x:=x+0.01;
 end;
x:=x3;
moveto(c+round(x*m),c-round(f1(x)*m));
while x<=x4 do
 begin
  lineto(c+round(x*m),c-round(f1(x)*m));
  x:=x+0.01;
 end;

end.

Последний раз редактировалось tarhun69; 21.07.2020 в 13:58.
tarhun69 вне форума Ответить с цитированием
Старый 21.07.2020, 14:40   #6
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,544
По умолчанию

Поправил в вашем коде:
Код:
uses graphABC;
function f1(x:real):real;
begin
f1:=1/x
end;
var c,i:integer;
    x1,x2,x3,x4,x,m:real;
    b: boolean;
begin
setwindowsize(500,500);
centerwindow;
c:=windowwidth div 2;
m:=(c-20)/3;
line(0,c,2*c-10,c);
setpenwidth(1);
line(c,10,c,2*c);
for i:=1 to 3 do
 begin
  line(c+round(i*m),c-3,c+round(i*m),c+3);
  line(c-round(i*m),c-3,c-round(i*m),c+3);
  textout(c+round(i*m),c+10,inttostr(i));
  textout(c-round(i*m)+5,c+10,inttostr(-i));
  line(c-3,c-round(i*m),c+3,c-round(i*m));
  line(c-3,c+round(i*m),c+3,c+round(i*m));
  textout(c-20,c-round(i*m),inttostr(i));
  textout(c-25,c+round(i*m),inttostr(-i));
 end;
x1:=-3; x2:=3;
x:=x1;
b:=true;
while x<=x2 do
 begin
  if x<>0 then begin
    if b then begin
      moveto(c+round(x*m),c-round(f1(x)*m));
      b:=false;
    end else lineto(c+round(x*m),c-round(f1(x)*m));
  end else b:=true;
  x:=x+0.01;
 end;
{x:=x3;
moveto(c+round(x*m),c-round(f1(x)*m));
while x<=x4 do
 begin
  lineto(c+round(x*m),c-round(f1(x)*m));
  x:=x+0.01;
 end;}

end.
Arigato вне форума Ответить с цитированием
Старый 21.07.2020, 15:17   #7
tarhun69
Новичок
Джуниор
 
Регистрация: 20.07.2020
Сообщений: 7
По умолчанию

Arigato, Спасибо большое, ошибка все еще выходила, но как я понял PascalABC.net выламывается при близких значениях к 0 , скачал PascalABC и все работает)
tarhun69 вне форума Ответить с цитированием
Старый 21.07.2020, 15:19   #8
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,544
По умолчанию

Цитата:
Сообщение от tarhun69 Посмотреть сообщение
как я понял PascalABC.net выламывается при близких значениях к 0 , скачал PascalABC и все работает
Так это вообще разные Паскали...
Arigato вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Построить график функции y=x^2. График строится из отрезков и алгоритма Брезенхема Robert_ Помощь студентам 0 20.02.2017 22:37
Затабулировать функцию. график указанной функции и график касательной к ней в точке с абсциссой AntonKalinin01 Помощь студентам 0 26.05.2013 07:18
Bывести на экран монитора и напечатать таблицу значений аргумента и функции, а также график функции средствами Exel IgorMyakota Помощь студентам 1 24.11.2012 02:46
Построить график функции F(x) на заданном интервале с заданным шагом и вывести значения х и функции F(x) в таблицу в графическом р Proskurina Паскаль, Turbo Pascal, PascalABC.NET 8 12.11.2012 21:57
График функции в PascalABC VLacid Паскаль, Turbo Pascal, PascalABC.NET 0 26.06.2010 14:47