|
[ peromalosutra @ 29.06.2005. 08:28 ] @
| Pravim jednostavan program koji treba da crta grafik kvadratne funkcije. U pocetku je cak i radio, ali kada sam ga malo preuredio.... ne radi nikako. Kompajler mi prijavljuje gresku na 37,17: overloaded identifier GRAFIK isn't function, a na 58,7: . expected, but ; found (valjda imam previse end-ova, ali gdje?).
Code:
program grafik;
uses crt,graph;
var a,b,c:real;
x,y,xs,ys:integer;
procedure inicijalizacija;
var driver,mode:integer;
begin
clrscr;
driver:=detect;
initgraph(driver,mode,'');
end;
procedure unos;
begin
write ('a=');
readln (a);
write ('b=');
readln (b);
write ('c=');
readln (c);
end;
procedure ordinate;
var i:integer;
begin
line (0,380,1024,380);
line (510,0,510,768);
for i:=0 to 1024 do
if i mod 10=0 then
line (i,378,i,382);
for i:=0 to 768 do
if i mod 10=0 then
line (508,i,512,i);
end;
procedure grafik;
begin
for x:=1 to 10 do
begin
y:=round(a*sqr(x)+b*x+c); {racuna y tacku grafika funkcije}
x:=x+510; {prikazuje x i y odnosu na novi}
y:=-y+380; {koordinatni pocetak (510,380) }
if xs<>0 then
line (xs,ys,x,y);
xs:=x; {xs,ys- prethodne koordinate za x,y}
ys:=y;
write ('x=',x);
writeln ('y=',y);
end;
end;
begin
clrscr;
unos;
inicijalizacija;
ordinate;
grafik;
readln;
closegraph;
end.
Kod jos nije gotov, htio sam uvesti i nekoliko novih opcija, ali prvo treba ovo da mi proradi. |
[ Toyo @ 29.06.2005. 09:12 ] @
Kao prvo promeni ili ime procedure grafik, ili naziv programa. Ne moze isto.
Koristi GetMaxX i GetMaxY za uzimanje sirine i visine u grafickom modu.
Nesto ovako: line(0, GetMaxY div 2, GetMaxX, GetMaxY div 2)
[Ovu poruku je menjao Toyo dana 29.06.2005. u 10:24 GMT+1]
[ peromalosutra @ 30.06.2005. 12:51 ] @
Preradio sam program, sad radi sa (gotovo) svim podacima, ostalo cu pogledati poslije. Toyo, meni ne radi maxX i maxY, koju biblioteku da koristim (trebalo bi graph). Evo koda:
Code:
program grafik_funk;
uses crt,graph;
var a,b,c:real;
x,y:array[-1000..1000] of integer;
procedure inicijalizacija;
var driver,mode:integer;
begin
clrscr;
driver:=detect;
initgraph(driver,mode,'');
end;
procedure unos;
begin
write ('a=');
readln (a);
write ('b=');
readln (b);
write ('c=');
readln (c);
end;
procedure ordinate;
var i:integer;
begin
line (0,380,1024,380);
line (510,0,510,768);
for i:=0 to 1024 do
if i mod 10=0 then
line (i,378,i,382);
for i:=0 to 768 do
if i mod 10=0 then
line (508,i,512,i);
end;
procedure grafik;
const pauza=100;
var i:integer;
function presjek (x:integer):integer;
var y:real;
begin
y:=a*sqr(x)+b*x+c;
presjek:=round(y);
end;
begin
i:=0;
while (x[i]<1024) and (y[i]>=0) and (y[i]<768) do
begin
inc(i,1);
y[i]:=presjek (i);
writeln ('x=',i,' y=',y[i]);
x[i]:=i+510;
y[i]:=-y[i]+380;
if i>1 then
line (x[i-1],y[i-1],x[i],y[i]);
delay(pauza);
end;
i:=0;
while (x[i]>=0) and (y[i]>=0) and (y[i]<768) do
begin
inc(i,-1);
y[i]:=presjek (i);
gotoxy (20,-i);
write ('x=',i,' y=',y[i]);
x[i]:=i+510;
y[i]:=-y[i]+380;
if i<-1 then
line (x[i+1],y[i+1],x[i],y[i]);
delay(pauza);
end;
end;
begin
clrscr;
unos;
inicijalizacija;
ordinate;
grafik;
readln;
closegraph;
write ('program zavrsen');
readln;
end.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|