Форум программистов, компьютерный форум, киберфорум
Наши страницы

Turbo Pascal

Войти
Регистрация
Восстановить пароль
 
PiratBolot
0 / 0 / 0
Регистрация: 12.12.2014
Сообщений: 2
#1

Ошибка при построении графика параболы в модуле Graph - Turbo Pascal

11.12.2015, 20:11. Просмотров 218. Ответов 0
Метки нет (Все метки)

Нужно было написать программу, которая строит графики функций с помощью модуля graph (пользователь сам выбирает, какой график построить из 8 предложенных):
1- y=sin(x)
2- y=cos(x)
3- y=tg(x)
4- y= sqrt(x)
5- y= x2
6- y= x3
7- y=ax2+bx+c (коэффициенты a,b и c запрашиваются у пользователя через модуль crt)
8- Построить систему уравнений и найти точки пересечения: y=ax2+bx+c и y=rx+b'.

С первыми шестью графиками я справился. Но 7 (парабола) работает только для a>0. Я много раз прогонял программу, пытался поменять способ решения, но это не дало результатов. Помогите, пожалуйста, понять, где я наврал. Направьте
в нужном направлении.
P.S парабола строится с помощью процедуры yrovnenie
Вот то, что есть на данный момент:
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
uses graph,crt;
procedure reshenie_yrovneniya(A_int,B_int,C_int,G_int,B1_int:byte);
var discriminant,X1:real;
Koren:string;
begin
discriminant:=sqr(B_int-G_int)-4*(C_int-B1_int);
if discriminant<0 then OutTextXY(10,10,'Korney NET');
if discriminant=0 then begin X1:=(G_int-B_int)/(2*A_int); str(X1,koren);
OutTextXY(10,10,'Odin Koren: X= '+Koren); end;
end;
procedure primaya(G_int,B1_int:byte);
var x7,y7:real;
begin
x7:=-3*pi;
while x7<3*pi do begin
y7:=G_int*x7+B1_int;
putpixel(round(x7*50)+getmaxX div 2,-round(y7*50)+getmaxY div 2,9);
x7:=x7+0.0001;
end;
end;
procedure yrovnenie(A_int,B_int,C_int:byte);
var x6,y6:real;
begin
x6:=-3*pi;
while x6<3*pi do begin
y6:=A_int*x6*x6+B_int*x6+C_int;
putpixel(round(x6*25)+getmaxX div 2,-round(y6*25)+getmaxY div 2,5);
x6:=x6+0.0001;
end;
end;
procedure koren(f:char);
var x5,y5:real;
begin
x5:=0;
while x5<3*pi do begin
y5:=sqrt(x5);
putpixel(round(x5*100)+getmaxX div 2,-round(y5*100)+getmaxY div 2,5);
x5:=x5+0.0001;
end;
end;
procedure kyb(f:char);
var x4,y4:real;
begin
x4:=-2*pi;
while x4<2*pi do begin
y4:=x4*x4*x4;
putpixel(round(x4*100)+getmaxX div 2,-round(y4*100)+getmaxY div 2,5);
x4:=x4+0.0001;
end;
end;
procedure kvadrat(F:char);
var x3,y3:real;
begin
x3:=-2*pi;
while x3<2*pi do begin
y3:=x3*x3;
putpixel(round(x3*150)+getmaxX div 2,-round(y3*150)+getmaxY div 2,5);
x3:=x3+0.0001;
end;
end;
procedure cosinus(F:char);
var x2,y2,n2:real;
begin
x2:=-2*pi;
n2:=1;
while x2<2*pi do begin
y2:=cos(x2);
putpixel(round(x2*150)+getmaxX div 2,-round(y2*150)+getmaxY div 2,5);
x2:=x2+0.0001;
end;
end;
procedure sinus(F:char);
var x1,y1,n1:real;
begin
x1:=-2*pi;
n1:=1;
while x1<2*pi do begin
y1:=sin(x1);
putpixel(round(x1*150)+getmaxX div 2,-round(y1*150)+getmaxY div 2,5);
x1:=x1+0.0001;
end;
end;
procedure tan(F:char);
var x,y,n:real;
begin
x:=-2*pi;
n:=1;
while x<2*pi do begin
if sin(x)/cos(x)>pi then begin x:=-2*pi+pi*n/2+pi/180; n:=n+1; end;
y:=sin(x)/cos(x);
putpixel(round(x*150)+getmaxX div 2,-round(y*150)+getmaxY div 2,5);
x:=x+0.0001;
end;
end;
var r,i,q,p,n:integer;
F:char;
a,b,c,g,b1:string;
A_int,B_int,C_int:byte;
G_int,B1_int,ost:integer;
begin
ClrScr;
TextColor(7);
GotoXY(25,12);
writeln('What kind of graph you want to build?');
writeln;
writeln('1 - sin(x), 2 - cos(x), 3 - tg(x)');
writeln;
writeln('4 - sqrt(x), 5 - x^2, 6 - x^3');
writeln;
writeln('7 - ax^2+bx+c, 8 - System');
writeln;
readln(F);
if F='7' then begin writeln('Enter the coefficients a,b and c');
readln(a);
readln(b);
readln(c);
val(a,A_int,ost);
val(b,B_int,ost);
val(c,C_int,ost);
end;
if F='8'  then begin writeln('Enter the coefficients a,b and c. ');
readln(a);
readln(b);
readln(c);
writeln('Enter coefficients g and b1');
readln(g);
readln(b1);
val(a,A_int,ost);
val(b,B_int,ost);
val(c,C_int,ost);
val(g,G_int,ost);
val(b1,B1_int,ost);
end;
 
initgraph(q,p,'');
line(getmaxX div 2,0,getmaxX div 2,getmaxY);
line(0,getmaxY div 2,getmaxX,getmaxY div 2);
for r:=0 to 90 do begin
i:=i+10;
line((getmaxX div 2)-5,i,(getmaxX div 2)+5,i);
end;
r:=0; i:=0;
for r:=0 to 169 do begin
i:=i+10;
line(i,(getmaxY div 2)-5,i,(getmaxY div 2)+5);
end;
line(getmaxX,getmaxY div 2,GetmaxX-15,(getmaxY div 2)-15);
line(getmaxX,getmaxy div 2,getmaxx-15,(getmaxy div 2)+15);
line(getmaxx div 2,0,(getmaxx div 2)-15,10);
line(getmaxx div 2,0,(getmaxx div 2)+15,10);
if F='3' then tan(f);
if F='1' then sinus(f);
if F='2' then cosinus(f);
if F='5' then kvadrat(f);
if F='6' then kyb(f);
if F='4' then koren(f);
if F='7' then yrovnenie(A_int,B_int,C_int);
if F='8' then begin yrovnenie(A_int,B_int,C_int); primaya(G_int,B1_int);
reshenie_yrovneniya(A_int,B_int,C_int,G_int,B1_int); end;
readln;
closegraph;
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2015, 20:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка при построении графика параболы в модуле Graph (Turbo Pascal):

Ошибка при построении графика функции - Turbo Pascal
График функции е в степени х в паскале, выбивает вот такую вот ошибку, помогите пожалуйста

Ошибка при построении графика - Pascal
Народ подскажите ,пожалуйста,почему выскакивает ошибка(( Invalid Floating Operation Заранее благодарю Вас! это программа построения...

Ошибка в построении графика функции - Turbo Pascal
program laba_7; uses graph; var gd,gm:integer; x0,y0:integer; x,y,dx:real; begin gd:=0; initgraph(gd,gm,''); x0:=getmaxX div 2;...

Неправильное вычисление масштабного коэффициента при построении графика - Turbo Pascal
В большинстве примеров построения графиков масштабный коэффициент вычисляют по формуле ky=height/abs(y_max-y_min). Что эта формула не...

Разработка эскиза, алгоритма и программы в модуле Graph - Turbo Pascal
Разработка эскиза, алгоритма и программы в модуле Graf Задача, сделать такой рисунок в Pascal.

Установить название вида линий в модуле graph - Turbo Pascal
Установить название вида линий в модуле graph паскаля его номеру например 0-сплошная ,1-точечная и т.д.

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2015, 20:11
Привет! Вот еще темы с ответами:

Можно ли сделать в модуле graph удаление рисунка(группы рисунков)) - Pascal
Доброго вечера дорогие форумчане начал писать свою игру на Паскале и столкнулся с такой проблемой можно ли сделать в модуле graph удаление...

Ошибка при работе с модулем Graph - Turbo Pascal
govorit kaka9to owibka''unit expendet'' togda 9 piwy ''unit'' on gvorit ''interface expendet'' i neho4et rabotat v 4em...

ошибка при запуске программ с модулем Graph - Pascal
Люди подскажите пожалуйста что значят эти ошибки и как с ними бороться(появляются только при модуле graph):

Найти ошибки в построении графика - Turbo Pascal
Приведенная ниже программа построить графики функций, но строить наоборот. Помогите, как исправить ошибку, чтобы она построила правильно. ...


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

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

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