Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 07.10.2015
Сообщений: 80
1

Сделать так чтобы график имел координатнаую сетку, и график был в виде точек, а не кривой

03.12.2015, 23:06. Просмотров 780. Ответов 1
Метки нет (Все метки)


сделать так чтобы была координатная сетка, и график был в виде точек, а не кривой
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
{$R-}
uses graph;
function F(x:real):real;
begin
F:=x*x*sin(3*x)*sin(3*x);
end;
var xn,xk,max,min,x,y,mx,my,dx:real;
    x0,y0,i:integer;
    s:string;
begin
initgraph(x0,y0,'');
xn:=0;xk:=1.6;
x0:=getmaxX div 2;
mx:=(x0-40)/xk;
max:=F(xn);
min:=max;
x:=xn;
while x<=xk do
 begin
  x:=x+0.01;
  if F(x)>max then max:=F(x)
  else if F(x)<min then min:=F(x);
 end;
y0:=round(getmaxY*max/(max-min));
if max>abs(min) then my:=(y0-60)/max
else my:=(y0-60)/abs(min);
line(0,y0,getmaxX,y0);
line(x0,0,x0,getmaxY);
setcolor(red);
setlinestyle(0,1,2);
for i:=1 to trunc (xk) do
  begin
    line(x0-3,y0+round(500*i*my),x0+3,y0+round(500*i*my));
    line(x0-3,y0-round(500*i*my),x0+3,y0-round(500*i*my));
    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*500,s);
    outtextXY(x0-45,y0+round(500*i*my),'-'+s);
    outtextXY(x0-40,y0-round(500*i*my),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-10,10, 'Y');
x:=xn;
dx:=0.001;
while x<=xk do
 begin
  putpixel(x0+round(x*mx),y0-round(F(x)*my),12);
  x:=x+dx;
 end;
setcolor(12);
outtextXY(x0+50,20,'y=x*x*sin(3*x)*sin(3*x)');
outtextXY(x0+50,40,'interval [0;1.6]');
readln
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.12.2015, 23:06
Ответы с готовыми решениями:

Исправить код так, чтобы график имел вид функции arctg
Данная программа строит график не до конца. Помогите исправить так, чтобы график имел вид функции...

Чтобы построить график в виде ступенчатой кривой, в виде огибающей в Маткаде, какие нужно выбрать графики?
Скажите,чтобы построить график в виде ступенчатой кривой,в виде огибающей в Маткарде,какие нужно...

Сделать так, чтобы вводилась функция и сразу же строился график
Пытаюсь сделать так , чтобы вводилась функция и сразу же строился график , рационален ли код и в...

Как сделать так, чтобы график занимал не всю форму, а лишь определенную часть
Здравствуйте, Как сделать так, чтобы график занимал не всю форму, а лишь определенную часть,...

1
Модератор
62884 / 46920 / 32338
Регистрация: 18.05.2008
Сообщений: 113,701
04.12.2015, 00: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
uses graph;
function F(x:real):real;
begin
F:=x*x*sin(3*x)*sin(3*x);
end;
var xn,xk,max,min,x,y,mx,my,dx:real;
    x0,y0,i:integer;
    s:string;
begin
initgraph(x0,y0,'');
xn:=0;xk:=1.6;
x0:=50;
mx:=(getmaxX-x0-10)/xk;
max:=F(xn);
x:=xn;
while x<=xk do
 begin
  x:=x+0.01;
  if F(x)>max then max:=F(x)
 end;
y0:=getmaxY-50;
my:=(y0-30)/max;
line(0,y0,getmaxX,y0);
line(x0,0,x0,getmaxY);
setlinestyle(0,1,2);
for i:=1 to trunc (max*10)+1 do
  begin
    line(x0-3,y0-round(i*my/10),x0+3,y0-round(i*my/10));
    line(x0+round(i*mx/10),y0-3,x0+round(i*mx/10),y0+3);
    str(i/10:0:1,s);
    if i mod 2=0 then
     begin
      settextstyle(0,0,1);
      outtextXY(x0-30,y0-round(i*my/10),s);
     end;
    settextstyle(0,1,1);
    outtextXY(x0+round(i*mx/10),y0+10,s);
  end;
settextstyle(0,0,1);
outtextXY(getmaxX-20,y0-20,'X');
outtextXY(x0+10,10, 'Y');
outtextXY(x0-10,y0+10,'0');
x:=xn;
dx:=0.01;
setcolor(12);
setfillstyle(1,12);
while x<=xk do
 begin
  fillellipse(x0+round(x*mx),y0-round(F(x)*my),1,1);
  x:=x+dx;
 end;
setcolor(12);
outtextXY(getmaxX div 2-100,20,'y=x*x*sin(3*x)*sin(3*x)');
outtextXY(getmaxX div 2-100,40,'interval [0;1.6]');
readln
end.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.12.2015, 00:50

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Как сделать так чтобы подсписок списка имел свой стиль?
Здравствуйте, Как сделать так чтобы подсписок списка имел свой стиль? Пример: &lt;ul...

Сделать так, чтобы объект UserForm отображался панели задач и рядом с кнопкой [X] имел кнопку [-] (скрыть)
Нужно, что я мог скрывать свой объект userform, чтобы он не мешался, но по необходимости нажимал на...

Как сделать, чтобы вывод ответа был в виде матрицы?
Program B5; Var B:array of Real; i,j,f,h:integer; Begin Writeln('Введите размер матрицы B');...

Построить график,так чтобы были названы оси
В функции Chart следует построить график,так чтобы были названы оси (ось x и ось y)(как в...

Как сделать график в виде бесконечности
Добрый день подскажите как сделать график, в виде бесконечности я не понимаю как такое можно...

Как сделать так, чтобы планшет был подключен к прокси
Здравствуйте! Есть одна проблема... При подключении к школьному wifi(edu tatar) через учительский...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.