GRY-Online.pl --> Archiwum Forum

Rysowanie funkcji kwadratowej. problem

03.01.2007
08:21
smile
[1]

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.

03.01.2007
08:54
smile
[2]

zela [ Konsul ]

łup /\/\

03.01.2007
09:30
[3]

kastore [ Troll Slayer ]

Średnio mi sie chce to kopiować i kompilować, napisz jaki błąd dostajesz?

03.01.2007
20:34
[4]

zela [ Konsul ]

Może ktoś wie jak zaokrąglić liczby w pascalu

03.01.2007
21:06
[5]

Qbaa [ Senator ]

round(zmienna)
jeśli dobrze pamiętam...
program już działa?

05.01.2007
09:27
smile
[6]

zela [ Konsul ]

Tak działa. Dzięki za pomoc

© 2000-2024 GRY-OnLine S.A.