zela [ Konsul ]
Rysowanie funkcji kwadratowej. problem
Chcę poprawić ocenę z programowania na semestr. Nauczycielka poprosiła żebym zrobił program który rysuje funkcje kwadratową. W szkole miałem tylko algorytmy a pascala sam się uczyłem.
Mój program nie chce się skompilować. Nie wiem co to za błędy. w moim pomyśle było że sam sobie wybierasz zakres "X-sów" i ich gęstość na osi. W trybie graficznym 640 na 480. Wykres funkcji sam się do pasowała do rozdzielczości(przeskalował).
Tu mój kod:
USES CRT,GRAPH;
VAR
a,b,c,d,e,k,l,zakres1,zakres2,i,z,ix,ox,oy,ster,tryb:real; może być ich mniej??
yo,xo:LongInt; jakie typy zmiennych przypisać??
x:array [1..1000] of LongInt;
fx:array [1..1000] of integer;
gx:array [1..1000] of integer;
gy:array [1..1000] of integer;
px,py:array [1..1000] of integer;
Begin
writeln('Oto program ktory rysuje wykres funkcji kwadrotowej');
writeLN('f(x)=ax^2+bx+c');
repeat
Writeln('Podaj a. a=');
read(a);
until (a=0);
writeln('Podaj b. b=');
read(b);
writeln('Podaj c. c=');
d:=0;
d:=b*b-4*a*b;
if (d<0)
then
begin
writeln('brak rozwiazan');
readln;
halt;
end
ELSE
begin
repeat
writeln('Podaj zakres argumetow.'); zakres
writeln('x od=');
read(zakres1);
write(' do=');
read(zakres2);
if (zakres1>zakres2) then writeln('Zly zakres!!!');
until (zakres1>zakres2);
writeln('Jaki krok miedzy argumetami');
read(i);
z:=zakres2-zakres1;
ix:=(z)div(i)+1;
k:=1;
x[k]:=zakres1;
fx[k]:=a*x[k]*x[k]+b*x[k]+c; tu jest error
repeat
k:=k+1;
zakres1:=zakres1+i;
x[k]:=zakres1;
fx[k]:=a*x*x+b*x+c;
until (k<>ix);
if (x[1]<0) and (x[k]>1) osi x
then
if (x[1]<0)
then
yo:=-x[1];
oy:=(440*yo)/z;
else
else
if (x[1]>0);
then
ox:=20;
else
ox:=620;
if (fx[1]<0) and (fx[k]>0); osi y
then
if (fx1<0);
then
xo:=-fx1;
ox:=600*x0/z
else
xo:=x1;
ox:=600*x0/z
if (fx1>0);
then
oy:=20;
else
oy:=460;
if (zakres1=0);
then
e:=0;
repeat
e:=e+1; przeskalowanie
px[e]:=600*x[e]/z;
py[e]:=440*fx[e]/z;
until (e<>ix);
else
e:=0;
repeat
e:=e+1;
x[e]:=x[e]-x1;
fx[e]:=fx[e]-fx1;
px[e]:=600*x[e]/z;
py[e]:=440*fx[e]/z;
until(e<>ix);
e:=0;
repeat
e:=e+1; nie wiem jak zaokrąglać do całości!!
gx[e]:=(px[e])mod(1);
if (gx[e]+0,5>px[e]);
then gx[e]:=gx[e];
else gx[e]:=gx[e]+1;
k:=0;
e:=0;
ster:=VGA; tryb:=VGAHi;
InitGraph(ster,tryb,'C:/bp/bgi');
repeat
k:=k+1;
e:=k+1;
line(gx[k],gy[k],gx[e],gy[e]);
until (e=ix);
delay(5000);
closegraph;
end;
end.
Za błędy przepraszam. Pomóżcie Ludzie.
zela [ Konsul ]
łup /\/\
kastore [ Troll Slayer ]
Średnio mi sie chce to kopiować i kompilować, napisz jaki błąd dostajesz?
zela [ Konsul ]
Może ktoś wie jak zaokrąglić liczby w pascalu
Qbaa [ Senator ]
round(zmienna)
jeśli dobrze pamiętam...
program już działa?
zela [ Konsul ]
Tak działa. Dzięki za pomoc