Konačno je kompajlirao, bez greške (kada sam stavio round(x) i (y)). Sada kad pokrenem program ubaci uvijek jedno rešenje.
To je jedna tačkica, uvijek na istom mjestu.
Da li pod petljanjem podrazumijevaš "if t>t0 then repeat until t=1000;"?
To je ponavljanje funkcije, da bi se računalo, u zavisnosti od vremena (u datom sekundu).
Naime u programu se unose konstante (amplitude, frekfrencije, početna faza). Kada ih unesemo, program treba da izračuna koordinate za prvi sekund, i da ih na grafiku predstavi tačkom. Nakon toga, računa za drugu sekundu, dobijamo druga rešenja (koordinate), i iscrtava se druga tačka, onda se računa treća sekunda, i tako u krug, dok ne dobijemo grafik.
Profesor je program ispisao valjda u basicu.
On je za petlju iskoristio komandu goto, koje nema u pascalu. Napisao je if t<t0, then goto 100. 100 je red u kome piše X:=x0*sin(2*pi*NI1*T).
Mislim (gotovo sam siguran) da je greška i kod petlje zato što mi postavlja samo jednu tačku, a ne niz (krivulju).
Ako može biti od koristi, evo program koji je on ispisao:
Code:
10 print "unesi amplitude (do 100)";
20 input x0,y0
30 print "unesi frekfrencije";
40 input ni1,ni2
50 print "unesi početnu fazu (u stepenima)";
60 input fi
61 pi:3.14
62 fi=fi*pi/180
64 x1=250 : y1=100
70 t=0
90 cls
100 X=x0*sin(2*pi*NI1*T)
110 y=y0*sin(2*pi*NI2*T+fi)
115 x=x1+x : y=y1+y
120 screen 2 : circle (x,y),0
125 if ni1<ni2 then t0=1/ni1 else t0=1/ni2
126 dt=r0/10000
127 t=dt+t
128 if t<t0 then goto 100
140 end
Dakle, treba da iscrta više tačaka (da se popravi petlja), a rešenje je uvijek isto (mislim da će da se promijeni, kad se ispravi petlja, jer je t=0 u početku, a tek u sledećem sekundu je veće od nule).
Šta predlažete za petlju?
I da, umalo da zaboravim, veliko hvala mVeliki.