Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 27.06.2011
Сообщений: 4
1

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

27.06.2011, 15:11. Показов 991. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пожалуйста помогите! Используя графические возможности языка Паскаль построить графики заданных функций y=4-x^2, y=x^2-2x и залить ограниченную данными функциями область каким-либо цветом.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.06.2011, 15:11
Ответы с готовыми решениями:

Построить графики неявно заданных функций
1) x2-3xy+2y2 =0 пробовала написать так: ezplot ('x.^2-3*x.*y+2*y.^2') но неправильно =( 2)...

Построить графики заданных функций на Canvas
Добрый вечер, нужна помощь. В канвасе плохо разбираюсь, нужно построить графики y=|cos(x)*x| и...

Построить графики функций y=y(x), заданных параметрически
Всем привет! Помогите пожалуйста построить график. Буду очень благодарен, если опишете алгоритм...

Исследовать область определения функций и построить их графики
РАБОТА С ГРАФИКОЙ ВОТ ЗАДАЧА: Исследовать область определения функций и построить их графики для...

2
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
27.06.2011, 15:50 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
uses graph;
function F1(x:real):real;
begin
F1:=4-x*x;
end;
function F2(x:real):real;
begin
F2:=x*x-2*x;
end;
var xn,xk,max,min,mx,my,dx:real;
    x,x1,x2:real;
    n,x0,y0,i:integer;
    s:string;
begin
x0:=0;
initgraph(x0,y0,'');
xn:=-4;xk:=4;{интервал по Х}
{найдем максимум и минимум для масштаба по У
а также абциссы точек пересечения графиков х1,х2}
x:=xn;
max:=F1(xn);min:=F1(xn);
dx:=0.001;
while x<=xk+dx do
 begin
  if F1(x)>max then max:=F1(x);
  if F2(x)>max then max:=F2(x);
  if F1(x)>max then max:=F1(x);
  if F2(x)>max then max:=F2(x);
  if abs(F1(x)-F2(x))<dx then
  if x<0 then x1:=x else x2:=x;
  x:=x+dx;
 end;
x0:=getmaxX div 2;
mx:=(x0-30)/xk;{масштаб по Х}
y0:=getmaxY div 2;
if max>-min then my:=(y0-20)/max{по У}
else  my:=-(y0-20)/min;
n:=round(xk);{количество засечек по осям}
if max/5>xk then n:=round(max/5)+1;
if -min/5>xk then n:=round(-min/5)+1;
setbkcolor(15);{цвет фона}
setcolor(8);{цвет линий}
line(0,y0,getmaxX,y0);{оси}
line(x0,0,X0,getmaxY);
for i:=1 to n do{максимальное количество засечек в одну сторону}
  begin
    line(x0-3,y0-round(i*my*5),x0+3,y0-round(i*my*5));{засечки на оси У}
    line(x0-3,y0+round(i*my*5),x0+3,y0+round(i*my*5));
    line(x0+round(i*mx),y0-3,x0+round(i*mx),Y0+3); {засечки на оси Х}
    line(x0-round(i*mx),y0-3,x0-round(i*mx),Y0+3);
    {подпись оси У}
    str(i*5,s);
    outtextXY(x0-35,y0-round(i*my*5),s);{соответственно засечкам}
    outtextXY(x0-35,y0+round(i*my*5),'-'+s);
    {подпись оси Х}
    str(i,s);
    outtextXY(x0+round(i*mx),y0+10,s);
    outtextXY(x0-round(i*mx),y0+10,'-'+s);
  end;
{центр}
outtextXY(x0+5,y0+10,'0');
{подписи концов осей}
outtextXY(getmaxX-10,y0-10,'X');
outtextXY(x0+5,10, 'Y');
{графики}
x:=xn;
while x<=xk do
 begin
  putpixel(x0+round(x*mx),y0-round(F1(x)*my),1);
  putpixel(x0+round(x*mx),y0-round(F2(x)*my),4);
  x:=x+dx;
 end;
{название}
outtextXY(x0+50,20,'Grafiki functij');
outtextXY(x0+70,40,'y=4-x^2');
outtextXY(x0+70,60,'y=x^2-2x');
outtextXY(x0+50,80,'na intervale [-4;4]');
{область перекрытия}
setcolor(10);
x:=x1;{рисуем линию по 1 графику}
moveto(x0+round(x*mx),y0-round(F1(x)*my));
while x<=x2 do
 begin
  lineto(x0+round(x*mx),y0-round(F1(x)*my));
  x:=x+dx;
 end;
{то же по 2}
x:=x1;
moveto(x0+round(x*mx),y0-round(F1(x)*my));
while x<=x2 do
 begin
  lineto(x0+round(x*mx),y0-round(F2(x)*my));
  x:=x+dx;
 end;
{заливаем}
setfillstyle(1,10);
floodfill(x0,y0-3,10);
readln
end.
0
0 / 0 / 0
Регистрация: 27.06.2011
Сообщений: 4
27.06.2011, 17:04  [ТС] 3
это гениально!!! спасибо!!
0
27.06.2011, 17:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.06.2011, 17:04
Помогаю со студенческими работами здесь

Исследовать область определения и построить графики функций
Исследовать область определения и построить графики следующих функций (1)/(x^2+2x+1) Помогите...

Исследовать область определения и построить графики следующих функций:
Исследовать область определения и построить графики следующих функций: y:=(x+3)/(x-2);

Построить графики и численно найти нули заданных функций
Решите пожалуйста задачу...Построить графики и численно найти нули следующих функций (координатные...

Исследовав область определения и выбрав расположение координатных осей на экране и масштаб, построить графики функций
Здравствуйте! Пожалуйста помогите написать программу Вот условие: Исследовав область определения и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru