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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2010, 16:45   #1
ac1d_buRn
Пользователь
 
Регистрация: 05.06.2009
Сообщений: 37
По умолчанию Построение графиков

Разработать программу для построения графиков одной из пяти выбранных функций от одной переменной



Паскаль

Последний раз редактировалось ac1d_buRn; 15.12.2010 в 17:03.
ac1d_buRn вне форума Ответить с цитированием
Старый 15.12.2010, 16:50   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

ac1d_buRn
язык то укажи! телепаты вымерли!
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 15.12.2010, 18:34   #3
ac1d_buRn
Пользователь
 
Регистрация: 05.06.2009
Сообщений: 37
По умолчанию

Цитата:
Сообщение от Mad_Cat Посмотреть сообщение
ac1d_buRn
язык то укажи! телепаты вымерли!
на паскале
ac1d_buRn вне форума Ответить с цитированием
Старый 15.12.2010, 18:48   #4
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

(*да чего я из тебя все вытягиваю*)
функции какие? на каком промежутке?
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 15.12.2010, 18:51   #5
ac1d_buRn
Пользователь
 
Регистрация: 05.06.2009
Сообщений: 37
По умолчанию

Цитата:
Сообщение от Mad_Cat Посмотреть сообщение
(*да чего я из тебя все вытягиваю*)
функции какие? на каком промежутке?
да функции любые, Синус, Косинус... Синус + 2... Промежуток любой.
ac1d_buRn вне форума Ответить с цитированием
Старый 15.12.2010, 19:03   #6
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Паскаль ABC
Код:
uses GraphABC,Events,crt;

type FUN = function (x: real): real;

function f(x: real): real;
begin
  Result:=x*sin(x)*exp(-0.1*x);
end;
function f2(x:real):real;
begin
  result:=x*x;
end;
function f3(x:real):real;
begin
  result:=x*x*x;
end;
function f4(x:real):real;
begin
  result:=x*x*x*x;
end;
function f5(x:real):real;
begin
  result:=1/x;
end;

// l (logical) - логические координаты
// s (screen) - физические координаты
procedure drawGraph(x1,x2: real; f: FUN);
 var
  xl,xl0,wl,yl,yl0,hl: real;
  xs0,ws,ys0,hs: integer;
 function LtoSx(xl: real): integer;
 begin
   Result:=round(ws/wl*(xl-xl0)+xs0);
 end;
 function LtoSy(yl: real): integer;
 begin
   Result:=round(hs/hl*(yl-yl0)+ys0);
 end;
 function StoLx(xs: integer): real;
 begin
   Result:=wl/ws*(xs-xs0)+xl0;
 end;
 var xi: integer;
     yi: array [0..1600] of real;
     min,max,y: real;
begin // drawGraph
  xs0:=0;
  ys0:=WindowHeight-1;
  ws:=WindowWidth;
  hs:=WindowHeight-1;

  xl0:=x1;
  wl:=x2-x1;

  min:=1e300;
  max:=-1e300;
  for xi:=0 to ws do
  begin
    yi[xi]:=f(StoLx(xi+xs0));
    if yi[xi]<min then min:=yi[xi];
    if yi[xi]>max then max:=yi[xi];
  end;
  yl0:=min;
  hl:=-(max-min);

  MoveTo(0,LtoSy(0));
  LineTo(ws,LtoSy(0));

  MoveTo(LtoSx(0),0);
  LineTo(LtoSx(0),hs);

  SetPenColor(clBlue);
  MoveTo(xs0,LtoSy(yi[0]));
  for xi:=xs0+1 to xs0+ws do
    LineTo(xi,LtoSy(yi[xi-xs0]));
end;

procedure Resize;
begin
  ClearWindow;
  drawGraph(0,60,f);
  Redraw;
end;
var op:integer;
begin
  writeln('1: x*sin(x)*exp(-0.1*x)');
  writeln('2: x^2');
  writeln('3: x^3');
  writeln('4: x^4)');
  writeln('5: 1/x');
  readln(op);
  LockDrawing;
  SetWindowCaption('График функции: масштабирование');
  case op of
  1: drawGraph(1,60,f);
  2: drawGraph(1,60,f2);
  3: drawGraph(1,60,f3);
  4: drawGraph(1,60,f4);
  5: drawGraph(1,60,f5);
  end;
  Redraw;
  OnResize:=Resize;
end.
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 20.12.2010, 05:17   #7
ac1d_buRn
Пользователь
 
Регистрация: 05.06.2009
Сообщений: 37
По умолчанию

Mad_Cat, благодарю =)
ac1d_buRn вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
построение графиков Алёна Microsoft Office Excel 9 27.02.2016 10:00
построение графиков на ВБ Kracozebr Помощь студентам 1 17.07.2010 13:27
Построение графиков Vitul'k Помощь студентам 15 18.05.2009 17:37
построение графиков zetrix Microsoft Office Excel 4 17.06.2008 14:06
Построение графиков на C# TheGuardian123 Общие вопросы .NET 2 29.01.2008 14:50