Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 1
Регистрация: 23.09.2017
Сообщений: 64
1

Вывести кривую на координатную плоскость

05.12.2017, 21:12. Просмотров 880. Ответов 5
Метки нет (Все метки)


Пытаюсь разобраться с GrafABC, но не понимаю. Дана кривая в виде кубического уравнения: y=4*х^3 + (43)*х^2 + (404)*x + 1269, корни (х1=0, х2=-4.33). Нашел вариант программы на форуме, переделываю под свою задачу. Пока не пытаюсь строить график - работает, рисует оси, подписывает.....Как только пытаюсь описать график - программа завершается аварийно. Помогите, пожалуйста:
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
uses graphABC;
function F1(x:real):real;
begin
F1 := 4 * x * x * x + 43 * x * x + 404 * x + 1269;
end;
 
var x,mx,my:real;
    a,b,x0,y0,i:integer;
    s:string;
begin
setwindowsize(900,800);
a:=0;//интервал по Х
b:=20;
x0:=50;//начало координат
y0:=windowheight div 2;
mx:=(windowwidth-x0-30)/b;//масштаб по Х
my:=2*(y0-30)/b;//по Y
line(0,y0,windowwidth,y0);//оси
line(x0,0,x0,windowheight);
for i:=1 to b do//создаем оси координат
 begin
  line(x0+round(i*mx),y0-3,x0+round(i*mx),y0+3); //засечки на оси Х
  line(x0-3,y0+round(i*my),x0+3,y0+round(i*my)); //засечки на оси Y
  line(x0-3,y0-round(i*my),x0+3,y0-round(i*my));
  //подпись оси Х
  textout(x0+round(i*mx),y0+10,inttostr(i));
   //подпись оси Y
  textout(x0-25,y0-round(i*my),inttostr(i));
  textout(x0-20,y0+round(i*my),inttostr(-i));
 end;
//центр
textout(x0+5,y0+10,'0');
//подписи концов осей
textout(windowwidth-10,y0-15,'X');
textout(x0+5,10, 'Y');
//график
x:=a;
while x<=b do
 begin
  if x<=0 then  setpixel(x0+round(x*mx),y0-round(F1(x)*my),clBlue);
    x:=x-0.001;
 end;
//название
setfontsize(12);
setfontcolor(clBlue);
textout(x0+50,10,'y=4*х^3 + (43)*х^2 + (404)*x + 1269');
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.12.2017, 21:12
Ответы с готовыми решениями:

Нарисовать координатную плоскость и треугольник на ней
Program tri_tochki; uses GraphABC; function postroenie(var x1,x2,y1,y2:real):real; begin...

Отобразить координатную плоскость и построить график функции
Вывести на экран график функции Отобразить координатную плоскость. Вывод графика производить...

Прямая l разбивает координатную плоскость на две полуплоскости. Выяснить, верно ли, что точки (a,b) и (c,d) принадлежат разным полуплоскостям.
Даны действительные числа a, b, c, d, s, t, u (s и t одновременно не равны нулю). Известно, что...

Как сделать координатную плоскость
Всем привет! Задача такая: Нужно нарисовать 4 графика по типу (x-cos(x)), и сделать 2 способами ,...

5
Модератор
62884 / 46920 / 32338
Регистрация: 18.05.2008
Сообщений: 113,698
06.12.2017, 10:05 2
Цитата Сообщение от GMax Посмотреть сообщение
корни (х1=0, х2=-4.33).
При х=0 y=1269
И вообще строить график уравнения с такими коэффициентами в Паскале дело не благодарное.
0
0 / 0 / 1
Регистрация: 23.09.2017
Сообщений: 64
06.12.2017, 11:08  [ТС] 3
Не получится?
0
0 / 0 / 1
Регистрация: 23.09.2017
Сообщений: 64
07.12.2017, 21:31  [ТС] 4
Пожалуйста, помогите построить координатные оси. Не понимаю, как опустить ось X. У них должно быть независимое масштабирование. И начало координат в правом нижнем углу, т.к. ось Х нужна от -5 до 0, а Y от 0 до 1269:
х1= -4,33; Y1=0
x2=0; y2=1269

Вид графика (по Advanced Grapher ) во вложении.
0
Миниатюры
Вывести кривую на координатную плоскость  
Модератор
62884 / 46920 / 32338
Регистрация: 18.05.2008
Сообщений: 113,698
08.12.2017, 10:12 5
Цитата Сообщение от GMax Посмотреть сообщение
ось Х нужна от -5 до 0, а Y от 0 до 1269:
х1= -4,33; Y1=0
x2=0; y2=1269
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
uses graphABC;
function F1(x:real):real;
begin
F1:=4*x*x*x+43*x*x+404*x+1269;
end;
 
var x,mx,my:real;
    a,b,ymx,x0,y0,i:integer;
    s:string;
begin
setwindowsize(900,700);
centerwindow;
a:=-5;//интервал по Х
b:=0;
ymx:=1270;
x0:=windowwidth-50;//начало координат
y0:=windowheight-50;
mx:=(x0-30)/-a;//масштаб по Х
my:=(y0-50)/ymx;//по Y
line(0,y0,windowwidth,y0);//оси
line(x0,0,x0,windowheight);
for i:=1 to trunc(-a*5) do//создаем ось Х
 begin
  line(x0-round(i*mx/5),y0-3,x0-round(i*mx/5),y0+3); //засечки
  textout(x0-round(i*mx/5)-5,y0+10,floattostr(-i/5));//подписи
 end;
for i:=1 to trunc(ymx/50)+1 do//создаем ось Y
 begin
  line(x0-3,y0-round(i*my*50),x0+3,y0-round(i*my*50)); //засечки на оси Y
  textout(x0+15,y0-round(i*my*50)-5,inttostr(i*50)); //подписи
 end;
//центр
textout(x0+5,y0,'0');
//подписи концов осей
textout(15,y0-25,'X');
textout(x0+10,10, 'Y');
//график
setpencolor(clBlue);
x:=a;
i:=0;
while x<=b do
 begin
  x:=x+0.01;
  if f1(x)>=0 then
   begin
    inc(i);
    if i=1 then moveto(x0+round(x*mx),y0-round(F1(x)*my))
    else lineto(x0+round(x*mx),y0-round(F1(x)*my));
   end;
 end;
//название
setfontsize(12);
setfontcolor(clBlue);
textout(50,10,'y=4*х^3+43х^2+404*x+1269');
end.
0
0 / 0 / 1
Регистрация: 23.09.2017
Сообщений: 64
09.12.2017, 12:42  [ТС] 6
Большое вам спасибо!!!!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.12.2017, 12:42

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

Вставить в одну координатную плоскость несколько графиков функций
Добрый день. Не получается вставить в одну координатную плоскость график интерполянты, исходной...

Через точку провести плоскость, пересекающую кривую под прямым углом
Через точку K(1,2,1) провести плоскость пересекающую кривую x=t,y=t^2, z =-t под прямым углом

Вывести на экран оцифрованную координатную сетку
Написать программу, которая выводит на экран оцифрованную координатную сетку.

Вывести в консоль оцифрованную координатную сетку
Написать программу, которая выводит на экран оцифрованную координатную сетку. ( в консоли )...

Вывести на экран оцифрованную координатную сетку
Помогите пожалуйста, как написать программу которая выводит на экран оцифрованную координатную...

Вывести кривую Гильберта (glut.h)
Помогите нарисовать кривую Гильберта


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

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

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