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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2009, 19:14   #1
beliy13
 
Регистрация: 29.11.2009
Сообщений: 9
По умолчанию Помогите понять где ошибка !!!

Вот такое задание Написать программу на языке Pascal, которая изображает на экране дисплея график функции y=Alg(x)cos(x) (A принимает значения: –1, 0.5, 1, 1.5; x:=[0.2, 25]).

Код:
 program EvgeniiSp;
uses GraphABC, Events;
 
//------- Solution ------//
 function Solution(a,x: real): real;
  begin
   result:=a*ln(x)/ln(10)*cos(x);
  end;
 
//-------- Drawing_graph ------//
 procedure Drawing_graph(color: integer);
  const
   da = 0.5; an = -1; ak = 1.5;
   dx = 0.1; xn = 0.2; xk = 25;
  var
   ww,wh,xs,ys: integer;
   x,y,ymax,xmax,a: real;
 
 //------- Conversion_y ------//
  function LogicToScreen_y(y: real): real;
   begin
    result:=(wh div 2)*y/ymax;
   end;
 
 //------- Conversion_x ------//
  function LogicToScreen_x(x: real): real;
   begin
    result:=(ww div 2)*x/xmax;
   end;
 
  begin
   y:=0;
   SetPenWidth(1);
   ww:=WindowWidth;
   wh:=WindowHeight;
   SetPenColor(clGray);
   TextOut((ww div 2)-10,(wh div 2)+4,'0');
   moveTo(0,wh div 2);
   lineTo(ww,wh div 2);
   TextOut(ww-12,(wh div 2)+3,'X');
   moveTo(ww div 2,0);
   lineTo(ww div 2,wh);
   TextOut((ww div 2)+5,3,'Y');
//-------------------------
   x:=xn;
   a:=an;
   ymax:=0;
   xmax:=0;
   while a <= ak do
    begin
     while x <= xk do
      begin
       y:=Solution(a,x);
       if abs(y) > ymax then ymax:=abs(y);
       if abs(x) > xmax then xmax:=abs(x);
       x:=x+dx;
      end;
     x:=xn;
     a:=a+da;
    end;
//-------------------------
   x:=xn;
   a:=da;
   SetPenWidth(1);
   SetPenColor(color);
   while a <= ak do
    begin
     while x <= xk do
      begin
       y:=Solution(a,x);
       ys:=Round(LogicToScreen_y(y));
       xs:=Round(LogicToScreen_x(x));
       if x = xn then moveTo((ww div 2)+xs,(wh div 2)-ys)
          else lineTo((ww div 2)+xs,(wh div 2)-ys);
       x:=x+dx;
      end;
     x:=xn;
     a:=a+da;
    end;
   Redraw;
  end;
 
//-------- Resize ------//
 procedure Resize;
  begin
   ClearWindow;
   Drawing_graph(clRed);
   Redraw;
  end;
 
begin
 SetWindowCaption('График функции.');
 SetWindowSize(700,500);
 LockDrawing;
 CenterWindow;
 Drawing_graph(clRed);
 OnResize:=Resize;
end.
beliy13 вне форума Ответить с цитированием
Старый 12.12.2009, 19:21   #2
goblinyara
Форумчанин
 
Аватар для goblinyara
 
Регистрация: 02.01.2009
Сообщений: 340
По умолчанию

хмм... а какая ошибка-то?
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=)
Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
goblinyara вне форума Ответить с цитированием
Старый 12.12.2009, 20:22   #3
beliy13
 
Регистрация: 29.11.2009
Сообщений: 9
По умолчанию

Пишит что не знает что такое GrpphABs, events, setpetwindow, result!!! Помогите пожалуйста очень надо :'(((
beliy13 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу понять, где утечка памяти (9 строчек) dueram Win Api 1 24.11.2009 19:56
Не могу понять где ошибка в коде SeRhy Общие вопросы C/C++ 5 20.09.2009 13:10
Ошибка в цикле , не могу понять в чем! Помогите пожалуйста. Алексей_xXx Помощь студентам 1 29.05.2009 00:37
Помогите понять в чем ошибка (работа со строками) Edimus Общие вопросы C/C++ 1 22.11.2007 14:09