Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 11.03.2009
Сообщений: 16

график функции...

21.10.2009, 20:21. Показов 834. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
помогите пожалуйста переделать код программы!
надо переделать график под f=ln(x)
самому сделать знаний не хватает...
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
Program grafik;
Uses Graph;
 
Var GrD,GrM,x0,y0,xl,yl,xr,yr,xgr,xgr1,ygr,ygr1,dygr,i,j,k,l,p,q,s:integer;
y,x,dx1,dx,xmx,xmn,ymx,ymn,mx,my,cx,cy:real;
stl,stlu,strd,stxl,styl,stxr,styr,stF,stxmn,stxmx,stymn,stymx:string;
 
Function F(x:real):real;
Begin
F:=cos(x);
End;
 
Begin
stF:='y=f(x)=cos(x)';
xl:=50;
yl:=50;
xr:=589;
yr:=429;
GrD:=Detect;
InitGraph(GrD,GrM,'c:\BP\BGI');
x0:=GetMaxX;
y0:=GetMaxY;
RestoreCRTMode;
Writeln('MaxX: ',x0,' MaxY: ',y0);
Writeln('Vvedite interval issledovania: ');
 
Repeat
Begin
Readln(xmn);
Readln(xmx);
if xmn>=xmx then
Writeln('Neverno vveden interval!')
end;
Until xmn<xmx;
 
SetGraphMode(GetGraphMode);
dx:=(xmx-xmn)/(xr-xl+1);
x:=xmn;
ymx:=F(x);
ymn:=F(x);
 
{Oblast izmenenia F(x)---}
Repeat
Begin
x:=x+dx;
y:=F(x);
If y>ymx then ymx:=y;
If y<ymn then ymn:=y;
end;
Until x>xmx;
 
{koeff perehoda----------}
x:=xmn;
mx:=(xr-xl)/(xmx-xmn);
cx:=xl-mx*xmn;
my:=(yl-yr)/(ymx-ymn);
cy:=yl-my*ymx;
 
{XoY,--------------------}
k:=0;
j:=0;
y0:=trunc(cy);
x0:=trunc(cx);
if (xmn*xmx)<=0 then
if (x0>xl+5) and (x0<xr-10) then
begin
line(x0,yr+2,x0,yl);
line(x0,yl,x0-4,yl+8);
line(x0,yl,x0+4,yl+8);
OutTextXY(x0+6,yl+2,'Y');
Inc(k);
end;
if (ymn*ymx)<=0 then
if y0<(yr-15) then
begin
inc(j);
line(xr,y0,xl-2,y0);
line(xr,y0,xr-8,y0-4);
line(xr,y0,xr-8,y0+4);
OutTextXY(xr-8,y0+6,'X');
end;
if (k=1) and (j=1) then OutTextXY(x0+3,y0+3,'0');
 
{Chertezh grafika--------}
Repeat
Begin
xgr:=trunc(mx*x+cx);
ygr:=trunc(my*F(x)+cy);
xgr1:=trunc(mx*(x+dx)+cx);
ygr1:=trunc(my*F(x+dx)+cy);
dygr:=ygr1-ygr;
if (dygr>1) or (dygr<-1) then line(xgr,ygr,xgr1,ygr1);
PutPixel(xgr,ygr,white);
x:=x+dx;
end;
until x>xmx;
{obrabotka---------------}
Rectangle(xl-2,yl-2,xr+2,yr+2);
str(xmn:5:2,stxmn);
str(xmx:5:2,stxmx);
str(ymn:6:3,stymn);
str(ymx:6:3,stymx);
str(xl,stxl);
str(yl,styl);
str(xr,stxr);
str(yr,styr);
{---delete probel & lishnie nuli---}
i:=0;
Repeat
Begin
i:=pos(' ',stxmn);
if i>0 then delete(stxmn,i,1);
end;
Until i=0;
Repeat
Begin
i:=pos(' ',stxmx);
if i>0 then delete(stxmx,i,1);
end;
Until i=0;
Repeat
Begin
i:=pos(' ',stymn);
if i>0 then delete(stymn,i,1);
end;
Until i=0;
Repeat
Begin
i:=pos(' ',stymx);
if i>0 then delete(stymx,i,1);
end;
Until i=0;
 
j:=0;
i:=length(stxmn);
q:=Pos('.',stxmn);
if q<>0 then
for j:=q to i do
begin
stl:=stxmn[j];
if stl<>'0' then s:=j+1;
end;
delete(stxmn,s,i-s+1);
i:=length(stxmn);
if stxmn[i]='.' then delete(stxmn,i,1);
 
j:=0;
i:=length(stxmx);
q:=Pos('.',stxmx);
if q<>0 then
for j:=q to i do
begin
stl:=stxmx[j];
if stl<>'0' then s:=j+1;
end;
delete(stxmx,s,i-s+1);
i:=length(stxmx);
if stxmx[i]='.' then delete(stxmx,i,1);
 
j:=0;
i:=length(stymn);
q:=Pos('.',stymn);
if q<>0 then
for j:=q to i do
begin
stl:=stymn[j];
if stl<>'0' then s:=j+1;
end;
delete(stymn,s,i-s+1);
i:=length(stymn);
if stymn[i]='.' then delete(stymn,i,1);
 
j:=0;
i:=length(stymx);
q:=Pos('.',stymx);
if q<>0 then
for j:=q to i do
begin
stl:=stymx[j];
if stl<>'0' then s:=j+1;
end;
delete(stymx,s,i-s+1);
i:=length(stymx);
if stymx[i]='.' then delete(stymx,i,1);
{----------------------}
 
stlu:='('+stxl+';'+styl+')'+' '+stF+' '+stxmn+'<x<'+stxmx+' ; '+stymn+'<y<'+stymx;
strd:='('+stxr+';'+styr+')';
 
OutTextXY(xl-29,yl-15,stlu);
OutTextXY(xr-32,yr+9,strd);
Readln;
CloseGraph;
 
End.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.10.2009, 20:21
Ответы с готовыми решениями:

Построить график функции. вычислить и построить все асимптоты для этой функции
Помогите пожалуйста... Устал с ней возиться... Задание: Построить график функции,вычислить и построить все асимптоты для этой функции. ...

график функции lg(x)
Скажите, пожалуйста, как построить график функции lg(x)

график функции
вот такой вот график Y=2^cosx не очень понимаю как сделать((

2
Программист 1С
 Аватар для Давид
859 / 647 / 187
Регистрация: 03.03.2009
Сообщений: 1,154
21.10.2009, 21:32
AHUN, Попробуйте так!
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
uses graph;
var gd,gm:integer;
    x0,y0:integer;
    y,x,dx:real;
begin
gd:=0;
initgraph(gd,gm,'');
x0:=getmaxX div 2;
y0:=getmaxY div 2;
line(10,y0,630,y0);
outtextXY(625,y0+10,'X');
line(x0,0,x0,460);
outtextXY(x0+5,0,'Y');
outtextXY(x0+5,y0+10,'0');
line(x0-3,y0-100,x0+3,y0-100);
outtextXY(x0+5,y0-100,'5');
line(x0-50,y0-3,x0-50,y0+3);
outtextXY(x0-50,y0+10,'-2.5');
x:=-20;
dx:=0.001;
while x<=20 do
 begin
  y:=ln(x);
  putpixel(x0+round(x*20),round(y0-round(y*20)),12);
  x:=x+dx;
 end;
readln;
closegraph;
end.
0
0 / 0 / 0
Регистрация: 11.03.2009
Сообщений: 16
21.10.2009, 22:06  [ТС]
не, так уже пытался сдать, но нам по алгоритму надо сделать:
1)
подключение к Вашей программе модуля Graph;
2)
задание вида изображаемой функции (через Function);
3)
ввод пределов изменения аргумента функции: Xmin и Xmax;
4)
переход в графический режим;
5)
определение с помощью GetMaxX и GetMaxY максимальных графиче-ских координат дисплея;
6)
восстановление текстового режима (RestoreCRTMode);
7)
вывод на экран максимальных графических координат дисплея;
8)
задание координат прямоугольного окна, в котором должна быть изо-бражена функция. Окно задается графическими координатами верхне-го левого угла (xl, yl) и правого нижнего угла (xr, yr);
9)
определение (в подпрограмме) крайних значений изменения функции Ymin и Ymax в заданном диапазоне изменения аргумента с учётом по-пиксельного изображения функции в окне (т.е. число точек графика равно xr−xl+1);
10)
выполняются действия, связанные с преобразованием координат при переходе от математических координат к графическим;
11)
возвращение в графический режим (SetGraphMode(GetGraphmode));
12)
чертятся оси координат (если они попадают на изображаемый участок) и наносятся их обозначения;
13)
в окно над графиком выводится формула изображаемой функции, а также пределы изменения ее аргумента;
14)
рисуется график функции (точками или отрезками прямой);
15)
организуется возвращение в текстовый режим (CloseGraph).

тут сделано все по этому алгоритму, но надо чуть изменить программу, так как ln(x) определён только в положительной часть оси Х, а я не знаю как...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.10.2009, 22:06
Помогаю со студенческими работами здесь

График функции
Нужно построить синусоиду, параболу и прямую на одной оси координат. Что-то вообще не доганяю с графиками, помогите пожалуйста!

График функции
я что-то не могу определить,где ошибка!вроде программа написана верно,но графики не такие должны быть.помогите Изобразить на экране...

График функции
Помогите пожалуйста нарисовать график функции. y=-16/x; Заранее благодарен.

График функции
x=(R+r)cosA-r*cos(D+(R+r)/r*A); y=(R+r)sinA-r*sin(D+(R+r)/r*A); ПОМОГИТЕ ПОЖАЛУЙСТА!

График функции
Построить график функции на заданном промежутке с заданным шагом: Y=2sin cosx+ln(x*x*x), x принадлежит , h=1.


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru