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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2011, 10:00   #1
Restinpeace
Новичок
Джуниор
 
Регистрация: 30.05.2011
Сообщений: 1
По умолчанию График вычисления интегралла методом прямоугольника.

Нужно сделать ось 0Y и подписать крайние точки осей. Помогите пожалуйста. С осью вроде разобралась, а вот с подписями не могу. Помогите пожалуйста
Код:
#include<iostream.h>
#include<fstream.h>
#include<conio.h>
#include<graphics.h>
#include<math.h>

#define xkol 600
#define ykol 400
#define xstart 20
#define ystart 50

double a,b,c,p1,p2,s,t;
double stepx,stepy,maxy,miny;
double f(double);
int gdriver = DETECT, gmode, errorcode;
int vid,y0,n,end;
void in(),maxmin(),ox(),graf_f(),pryamoug();

int main()
{
clrscr();
initgraph(&gdriver, &gmode, "");
in();
bar(xstart-10,ystart-10,xkol+xstart+10,ykol+ystart+10);	//oboznachenie rabochej oblasti
maxmin();
if(end==1)return 0;

///// os' OX
setcolor(4);
line(xstart,y0,xstart+xkol,y0);
line(xstart+xkol,y0,xstart+xkol-5,y0-5);
line(xstart+xkol,y0,xstart+xkol-5,y0+5);


////// grafik
setcolor(2);
for(int q=0;q<=xkol;q++)
	{
	line(q+xstart,y0-(int)( f(p1+(q*stepx))/stepy ),q+1+xstart,y0-(int)( f(p1+((q+1)*stepx))/stepy ));
	}
getch();

//////pryamougolniki

double step,d;
step=(p2-p1)/n;
setcolor(4);
for(d=step;d<p2-p1+step/2;d+=step)
	{
	line(xstart+(int)(d/stepx),y0,
	     xstart+(int)(d/stepx),y0-(int)(f(d+p1-step)/stepy));
	line(xstart+(int)((d-step)/stepx),y0,
	     xstart+(int)((d-step)/stepx),y0-(int)(f(d+p1-step)/stepy));
	line(xstart+(int)(d/stepx),y0-(int)(f(d+p1-step)/stepy),
	     xstart+(int)((d-step)/stepx),y0-(int)(f(d+p1-step)/stepy));
	getch();
	}
cout<<"\nNazhmite lubuju klavishu dlya vihoda";
getch();

return 0;
}

void maxmin()
{
stepx=(p2-p1)/xkol;
if(stepx==0){cout<<"Grafik nevozmozhno postroit'";end=1;getch();}
maxy=f(p1);
miny=f(p1);	//vichislenie maksimuma i minimuma
for(double q=p1;q<=p2;q+=stepx)
	{if(maxy<=f(q))maxy=f(q);
	 if(miny>=f(q))miny=f(q);
	}
if(maxy<=0)
	{maxy=0;
	y0=ystart;
	}
if(miny>=0)
	{miny=0;
	y0=ykol+ystart;
	}
stepy=(maxy-miny)/ykol;

if(stepy==0){cout<<"Grafik nevozmozhno postroit'";end=1;getch();}
if(0>miny&&0<maxy)
	y0=(int)(fabs(maxy)/stepy+ystart);
cout<<"Nazhmite lubuju klavishu dlya prodolzheniya";
}

void in()
{
fstream fin;
fin.open("temp.txt",ios::in);
fin>>vid>>a>>b>>c>>p1>>p2>>n>>s>>t;
fin.close();
}

double f(double x)
{
if(vid==1)
	return a*x*x*x+b*x+c;
if(vid==2)
	return a*sin(x+b)+c;
if(vid==3)
	return a/(x+b)+c;
}
Restinpeace вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение нелинейных уравнений методом хорд и методом простой итерации(С++) Foralberg Помощь студентам 9 31.01.2011 01:33
Разработка алгоритма вычисления параметрического интеграла методом Симпсона killbore Помощь студентам 3 09.04.2010 01:37
написать блок схему определённого интегралла посчитанного методом прямоугольников Зимний Помощь студентам 3 04.02.2010 01:27
Помогите создать програму для вычисления определенного интеграла Методом Симпсона Сергей Человек Помощь студентам 11 06.07.2009 16:15
Решение уравнения методом деления отрезка пополам. Методом секущей. Panda196 Паскаль, Turbo Pascal, PascalABC.NET 3 25.11.2008 09:06