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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.07.2011, 11:42   #1
Amid1990
Пользователь
 
Регистрация: 15.11.2010
Сообщений: 17
По умолчанию Построить график функции

условие задачи
Построить график функции, нарисовав систему координат
y=1/2*arctg(x+3*pi/4)
Вот что вышло

Код:
Program D8;
uses GraphABC;
var x,y:integer;
begin
line(500,0,500,500);
line(0,250,1000,250);
for x:=0 to 200 do
begin
y:=2*arctan(x+3*pi/4);
setPixel(x+500,250-y,RGB(0,0,0));
x:=x+1
end
end.
Не работает так как возникает ошибка
попытка присвоить переменой integer выражение типа real
То есть выходит что координаты точки не могут быть дробными числами, но после расчета функции y получается дробным числом.
Как решить эту проблему?
Amid1990 вне форума Ответить с цитированием
Старый 06.07.2011, 12:11   #2
l1pton17
Пользователь
 
Аватар для l1pton17
 
Регистрация: 01.11.2010
Сообщений: 75
По умолчанию

Надо округлять. Если все значения y имеют дробную часть с совпадающей целой частью(13.3434, 13.4523, и т.д), то в таком случае надо "масштабировать".
l1pton17 вне форума Ответить с цитированием
Старый 06.07.2011, 12:16   #3
Amid1990
Пользователь
 
Регистрация: 15.11.2010
Сообщений: 17
По умолчанию

Округлить не получится, в итоге выходит почти прямая линия
Amid1990 вне форума Ответить с цитированием
Старый 06.07.2011, 14:07   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1) для начала решите В ЧЕМ задаётся X ? в градусах или радианах?
(поверьте мне, график от этого будет отличаться)

2) так не пойдёт?
Код:
Program D8;
uses GraphABC;
var x,y: real;
begin
SetWindowSize(1000,500);
line(500,0,500,500);
line(0,250,1000,250);
x := -500;
while x <= 100 do begin
  y:=2*arctan(x+3*pi/4)*50;
  setPixel(round(x*10)+500,250-round(y),RGB(0,200,0));
  x:=x+0.01;
end
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 06.07.2011, 22:06   #5
Amid1990
Пользователь
 
Регистрация: 15.11.2010
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
1) для начала решите В ЧЕМ задаётся X ? в градусах или радианах?
(поверьте мне, график от этого будет отличаться)

2) так не пойдёт?
Код:
Program D8;
uses GraphABC;
var x,y: real;
begin
SetWindowSize(1000,500);
line(500,0,500,500);
line(0,250,1000,250);
x := -500;
while x <= 100 do begin
  y:=2*arctan(x+3*pi/4)*50;
  setPixel(round(x*10)+500,250-round(y),RGB(0,200,0));
  x:=x+0.01;
end
end.
Ну вроди график правильные вырисовывается.
Только не пойму как он вырисовывается зачем y*50 а x*10?
Amid1990 вне форума Ответить с цитированием
Старый 06.07.2011, 23:15   #6
l1pton17
Пользователь
 
Аватар для l1pton17
 
Регистрация: 01.11.2010
Сообщений: 75
По умолчанию

"масштабируем" график функции)
l1pton17 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
построить график функции Катюшка_92 Microsoft Office Excel 2 19.09.2010 10:17
за $ построить график функции c# NastyaL Фриланс 3 12.08.2010 08:57
Построить график функции Horknee Паскаль, Turbo Pascal, PascalABC.NET 15 23.09.2008 09:50