Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > момогите исправить ошибку(график функции)


Автор: ackiy 4.12.2009, 22:12
помогите исправит проблему: не могу толком нарисовать линии графика и неправильно он как то строится
суть задачи: построить график функции 3*pow(x,2) (3x(в кварате))


Код:

Код

#include <conio.h>
#include <graphics.h>
#include <math.h>
#include <stdio.h>
main()
{
      int x,a,b,n;
      printf("a,b,n");
      scanf("%d,%d,%d",&a,&b,&n);
      x=a;
      
      double h=(b-a)/(n-1);
      
      double y;
      initwindow(800,600);
      line(399,0,399,599);
      line(0,299,799,299);
      y= 3* (pow(x,2));
      moveto(399+x,299-y);
      for(int i=0;i<50;i++){
              y= 3* (pow(x,2));
              lineto(399+x,299-y);
              x+=h;
              
              putpixel((int)x+399,299-(int)y,15);
              putpixel((int)399-x,299-(int)y,15);
              
              }
                        
      
      getch();
      closegraph();
      }

Автор: bsa 5.12.2009, 00:02
А что такое initwindow()? Где initgraph()?
Зачем 2 putpixel? Попробуй убрать второй.

Автор: xvr 7.12.2009, 16:45
Отнормируй свою функцию. В каких пределах должны были меняться x и 3*pow(x,2)? А в каких они меняются у тебя?
Hint: Экран не резиновый, и за своими краями рисовать не умеет  smile 

Автор: chaos 9.12.2009, 11:43
не много не в тему, но все же:
переделал бы данную программу:
Код


typedef double (*F)(double);

void plot_graph(double x1, double x2, F f)
{
    ....
}


int main()
{
    ...
    plot_graph(-1, 1, sin);
    ...
}



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)