Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/19: Рейтинг темы: голосов - 19, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 15.09.2011
Сообщений: 27

Графики функций y=(x+1)^0.5 и y=-(x-3)^2 + 5

18.05.2012, 16:35. Показов 3503. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе время суток, уважаемые программисты
Помогите, пожалуйста, сделать программу:

1) построить координатные оси и сделать их разметку
2) построить графики: y=(x+1)^0,5; y=-(x-3)^2 + 5
3) найти точки пересечения графиков
4) заштриховать образованную замкнутую область
5) вычислить площадь этой области

Заранее благодарю
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.05.2012, 16:35
Ответы с готовыми решениями:

построить ГРАФИКИ двух функций
Задание:

Графики функций
Доброго времени суток! Помогите пожалуйста с задачами: 1. Построить график функции...

Построить графики функций с обозначением
Последние 4 задачки, помогите решить плз: 1. Построить графики функций с обозначением осей...

3
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
18.05.2012, 22:10
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
uses graph;
type func=function(x:real):real;
{$F+} {функции по условию}
function F1(x:real):real;
begin
F1:=sqrt(x+1);
end;
function F2(x:real):real;
begin
F2:=-sqr(x-3)+5;
end;
{$F-}
{вычисление интеграла методом трапеций}
function Integral(f:func;a,b,e:real):real;
var k,s:real;
    n,i:longint;
begin
s:=(f(a)+f(b))/2;
k:=a;
n:=round((b-a)/e);
for i:=0 to n-1 do
 begin
  k:=k+e;
  s:=s+f(k);
 end;
Integral:=s*e;
end;
var xn,xk,max,min,mx,my,dx:real;
    x,x1,x2,xz,yz,p1,p2,p:real;
    n,x0,y0,i,k:integer;
    s:string;
begin
x0:=0;
initgraph(x0,y0,'');
xn:=0.5;xk:=5.5;{интервал по Х}
{найдем максимум и минимум для масштаба по У
а также абциссы точек пересечения графиков х1,х2}
x:=xn;
max:=F1(xn);min:=F1(xn);
dx:=0.001;
k:=0;
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)<min then min:=F1(x);
  if F2(x)<min then min:=F2(x);
  if (abs(F1(x)-F2(x))<2*dx) and(k=0) then
   begin
    k:=1;
    x1:=x;{первое пересечение}
   end
  else if (abs(F1(x)-F2(x))<2*dx) and(k=1)
  then x2:=x; {второе}
  x:=x+dx;
 end;
{определим площадь фигуры}
p1:=Integral(F1,x1,x2,dx);
p2:=Integral(F2,x1,x2,dx);
p:=abs(p1-p2);
x0:=50;
mx:=(getmaxX-x0-30)/xk;{масштаб по Х}
y0:=round(getmaxY*max/(max-min));
my:=(y0-20)/max;{по У}
if xk>max then n:=trunc(xk)+1{количество засечек по осям}
else n:=trunc(max)+1;
if trunc(-min)+1>n then n:=trunc(-min)+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),x0+3,y0-round(i*my));{засечки на оси У}
    line(x0-3,y0+round(i*my),x0+3,y0+round(i*my));
    line(x0+round(i*mx),y0-3,x0+round(i*mx),Y0+3); {засечки на оси Х}
    {подпись оси У}
    str(i,s);
    outtextXY(x0-35,y0-round(i*my),s);{соответственно засечкам}
    outtextXY(x0-35,y0+round(i*my),'-'+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),9);
  putpixel(x0+round(x*mx),y0-round(F2(x)*my),12);
  x:=x+dx;
 end;
{название}
outtextXY(x0+20,20,'Grafiki functij');
setcolor(9);
outtextXY(x0+20,40,'y=(x+1)^0.5');
setcolor(12);
outtextXY(x0+20,60,'y=(x-3)^2+5');
setcolor(8);
outtextXY(x0+20,80,'na intervale [0.5;5.5]');
{область перекрытия}
setcolor(13);
x:=x1-10*dx;{рисуем линию по 1 графику}
moveto(x0+round(x*mx),y0-round(F1(x)*my));
while x<=x2+10*dx do
 begin
  lineto(x0+round(x*mx),y0-round(F1(x)*my));
  x:=x+dx;
 end;
{то же по 2}
x:=x1-10*dx;
moveto(x0+round(x*mx),y0-round(F1(x)*my));
while x<=x2+10*dx do
 begin
  lineto(x0+round(x*mx),y0-round(F2(x)*my));
  x:=x+dx;
 end;
{заливаем}
xz:=(x2+x1)/2;
yz:=F1(xz);
setfillstyle(3,13);
floodfill(x0+round(xz*mx),y0-round(yz*my)-10,13);
str(p:0:2,s);
settextstyle(0,0,2);
outtextXY(x0+round(xz*mx),y0-round(yz*my)-100,'S='+s);
readln
end.
1
0 / 0 / 0
Регистрация: 15.09.2011
Сообщений: 27
21.05.2012, 14:21  [ТС]
Как переписать эту программу под Pascal ABC?
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
21.05.2012, 15:06
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
uses graphABC;
type func=function(x:real):real;
{$F+} {функции по условию}
function F1(x:real):real;
begin
F1:=sqrt(x+1);
end;
function F2(x:real):real;
begin
F2:=-sqr(x-3)+5;
end;
{$F-}
{вычисление интеграла методом трапеций}
function Integral(f:func;a,b,e:real):real;
var k,s:real;
    n,i:longint;
begin
s:=(f(a)+f(b))/2;
k:=a;
n:=round((b-a)/e);
for i:=0 to n-1 do
 begin
  k:=k+e;
  s:=s+f(k);
 end;
Integral:=s*e;
end;
var xn,xk,max,min,mx,my,dx:real;
    x,x1,x2,xz,yz,p1,p2,p:real;
    n,x0,y0,i,k:integer;
    s:string;
begin
xn:=0.5;xk:=5.5;{интервал по Х}
{найдем максимум и минимум для масштаба по У
а также абциссы точек пересечения графиков х1,х2}
x:=xn;
max:=F1(xn);min:=F1(xn);
dx:=0.001;
k:=0;
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)<min then min:=F1(x);
  if F2(x)<min then min:=F2(x);
  if (abs(F1(x)-F2(x))<2*dx) and(k=0) then
   begin
    k:=1;
    x1:=x;{первое пересечение}
   end
  else if (abs(F1(x)-F2(x))<2*dx) and(k=1)
  then x2:=x; {второе}
  x:=x+dx;
 end;
{определим площадь фигуры}
p1:=Integral(F1,x1,x2,dx);
p2:=Integral(F2,x1,x2,dx);
p:=abs(p1-p2);
x0:=50;
mx:=(windowwidth-x0-30)/xk;{масштаб по Х}
y0:=round(windowheight*max/(max-min));
my:=(y0-20)/max;{по У}
if xk>max then n:=trunc(xk)+1{количество засечек по осям}
else n:=trunc(max)+1;
if trunc(-min)+1>n then n:=trunc(-min)+1;
line(0,y0,windowwidth,y0);{оси}
line(x0,0,X0,windowheight);
for i:=1 to n do{максимальное количество засечек в одну сторону}
  begin
    line(x0-3,y0-round(i*my),x0+3,y0-round(i*my));{засечки на оси У}
    line(x0-3,y0+round(i*my),x0+3,y0+round(i*my));
    line(x0+round(i*mx),y0-3,x0+round(i*mx),Y0+3); {засечки на оси Х}
    {подпись оси У}
    str(i,s);
    textout(x0-35,y0-round(i*my),s);{соответственно засечкам}
    textout(x0-35,y0+round(i*my),'-'+s);
    {подпись оси Х}
    textout(x0+round(i*mx),y0+10,s);
  end;
{центр}
textout(x0+5,y0+10,'0');
{подписи концов осей}
textout(windowwidth-10,y0-10,'X');
textout(x0+5,10, 'Y');
{графики}
x:=xn;
while x<=xk do
 begin
  setpixel(x0+round(x*mx),y0-round(F1(x)*my),clBlue);
  setpixel(x0+round(x*mx),y0-round(F2(x)*my),clRed);
  x:=x+dx;
 end;
{название}
textout(x0+20,20,'Графики функций');
setfontcolor(clBlue);
textout(x0+20,40,'y=(x+1)^0.5');
setfontcolor(clRed);
textout(x0+20,60,'y=(x-3)^2+5');
setfontcolor(clBlack);
textout(x0+20,80,'на интервале [0.5;5.5]');
{область перекрытия}
setpencolor(clBrown);
x:=x1-10*dx;{рисуем линию по 1 графику}
moveto(x0+round(x*mx),y0-round(F1(x)*my));
while x<=x2+10*dx do
 begin
  lineto(x0+round(x*mx),y0-round(F1(x)*my));
  x:=x+dx;
 end;
{то же по 2}
x:=x1-10*dx;
moveto(x0+round(x*mx),y0-round(F1(x)*my));
while x<=x2+10*dx do
 begin
  lineto(x0+round(x*mx),y0-round(F2(x)*my));
  x:=x+dx;
 end;
{заливаем}
xz:=(x2+x1)/2;
yz:=F1(xz);
setbrushstyle(bsBDiagonal);
setbrushcolor(clBrown);
floodfill(x0+round(xz*mx),y0-round(yz*my)-10,bsBDiagonal );
str(p:0:2,s);
setfontsize(12);
setfontcolor(clRed);
textout(x0+round(xz*mx),y0-round(yz*my)-100,'S='+s);
end.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.05.2012, 15:06
Помогаю со студенческими работами здесь

Изобразить на экране дисплея графики следующих функций
Как построить график? Первое изображение И нарисовать паровозик ))

Построить графики функций
Необходимо построить графики функций.В паскале ABC. Помогите пожалуйста! Y=2*(1/X-1/X2) y=cos(x) ...

Построить графики функций
Построить графики функций: y = - x2 + 4x – 5 на отрезке

Построить графики функций
Построить графики функций: y = - x2 + 4x – 5 на отрезке

Построить графики функций
Построить графики функций: y = - x2 + 4x – 5 на отрезке


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 19.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru